diff --git a/.env b/.env index b1bbd9f67..5b4ee9aa0 100644 --- a/.env +++ b/.env @@ -1,7 +1,7 @@ #PORT NUMBERS: If any of these ports are already in use by a different app, please pick a new number between 1 and 50000. -WEB_SERVER_PORT=34247 -WEB_SOCKETS_SERVER_PORT=8080 +WEB_SERVER_PORT=34248 +WEB_SOCKETS_SERVER_PORT=8081 # TASK MANAGER VARIABLES: @@ -13,9 +13,14 @@ TASK_SERVER_PATH=./TaskServer INTER_PROCESS_FILES_PATH=./Inter-Process-Files STORAGE_PATH=./Data-Storage PLOTTERS_PATH=./Legacy-Code -DATA_MINES_PATH=./Data-Mines -TRADING_SYSTEMS_PATH=./Trading-Systems -SUPER_SCRIPTS_PATH=./Super-Scripts + +DATA_MINES_PATH=./Includes/Data-Mines +TRADING_MINES_PATH=./Includes/Trading-Mines +TRADING_SYSTEMS_PATH=./Includes/Trading-Systems +SUPER_SCRIPTS_PATH=./Includes/Super-Scripts +TRADING_ENGINES_PATH=./Includes/Trading-Engines +TUTORIALS_PATH=./Includes/Tutorials +WORKSPACES_PATH=./Includes/Workspaces WRITE_LOGS_TO_FILES=true BOTS_PATH=./Legacy-Code @@ -34,5 +39,8 @@ PATH_TO_FILES_COMPONENT=./Files-Component/src PATH_TO_WEB_SERVER=./BackendServers/ APP_SCHEMA_PATH=./ -WORKSPACE_PATH=./ -MY_WORKSPACES_PATH=./My-Workspaces \ No newline at end of file +DOC_SCHEMA_PATH=./ +CONCEPT_SCHEMA_PATH=./ +DEFAULT_WORKSPACE_PATH=./Includes/Workspaces +MY_WORKSPACES_PATH=./My-Workspaces +PATH_TO_FONTS=./BackendServers/WebServer/Fonts \ No newline at end of file diff --git a/.gitignore b/.gitignore index fc4a02769..b6723d2d5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ Data-Storage -Log-Files \ No newline at end of file +Log-Files +My-Workspaces \ No newline at end of file diff --git a/AppSchema.json b/AppSchema.json index 6b8ec9ff6..e8358efc1 100644 --- a/AppSchema.json +++ b/AppSchema.json @@ -1,7 +1,6 @@ [ { "type": "Plotter Module", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#plotter-module", "properties": [ { "name": "javascriptCode", @@ -19,15 +18,75 @@ "type": "array", "childType": "Plotter Panel", "autoAdd": true + }, + { + "name": "nodesValues", + "type": "node", + "childType": "Nodes Values", + "autoAdd": false + }, + { + "name": "nodesHighlights", + "type": "node", + "childType": "Nodes Highlights", + "autoAdd": false + }, + { + "name": "nodesErrors", + "type": "node", + "childType": "Nodes Errors", + "autoAdd": false + }, + { + "name": "nodesWarnings", + "type": "node", + "childType": "Nodes Warnings", + "autoAdd": false + }, + { + "name": "nodesInfos", + "type": "node", + "childType": "Nodes Infos", + "autoAdd": false + }, + { + "name": "nodesStatus", + "type": "node", + "childType": "Nodes Status", + "autoAdd": false + }, + { + "name": "nodesProgress", + "type": "node", + "childType": "Nodes Progress", + "autoAdd": false + }, + { + "name": "nodesRunning", + "type": "node", + "childType": "Nodes Running", + "autoAdd": false + }, + { + "name": "nodesAnnouncements", + "type": "node", + "childType": "Nodes Announcements", + "autoAdd": false + }, + { + "name": "recordValues", + "type": "node", + "childType": "Record Values", + "autoAdd": false } ], "menuItems": [ { - "action": "Config Plotter Module", + "action": "Configure", "actionFunction": "uiObject.configEditor.activate", - "label": "Config Plotter Module", - "iconPathOn": "html", - "iconPathOff": "html" + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" }, { "action": "Add UI Object", @@ -51,12 +110,18 @@ "label": "Add Plotter Panel", "relatedUiObject": "Plotter Panel" }, + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", "actionFunction": "payload.onMenuItemClick", - "label": "Delete Plotter Panel", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete" } @@ -64,7 +129,7 @@ "isTitleAllwaysVisible": true, "addLeftIcons": true, "initialValues": { - "code": "{ \n\"codeName\": \"\"\n}" + "config": "{ \n \"codeName\": \"Module-Name\", \n \"icon\": \"histogram|band|moving-average|oscillator|trend\"\n}" }, "editors": { "config": true @@ -73,13 +138,220 @@ "chainAttachesTo": { "compatibleTypes": "->Plotter->" }, - "icon": "plotter-module", "propertyNameAtParent": "modules" }, + { + "type": "Nodes Values", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.onMenuItemClick", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Plotter Module->" + }, + "icon": "expand", + "propertyNameAtParent": "nodesValues" + }, + { + "type": "Nodes Highlights", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.onMenuItemClick", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Plotter Module->" + }, + "icon": "expand", + "propertyNameAtParent": "nodesHighlights" + }, + { + "type": "Nodes Errors", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.onMenuItemClick", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Plotter Module->" + }, + "icon": "expand", + "propertyNameAtParent": "nodesErrors" + }, + { + "type": "Nodes Warnings", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.onMenuItemClick", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Plotter Module->" + }, + "icon": "expand", + "propertyNameAtParent": "nodesWarnings" + }, + { + "type": "Nodes Infos", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.onMenuItemClick", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Plotter Module->" + }, + "icon": "expand", + "propertyNameAtParent": "nodesInfos" + }, + { + "type": "Nodes Status", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.onMenuItemClick", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Plotter Module->" + }, + "icon": "expand", + "propertyNameAtParent": "nodesStatus" + }, + { + "type": "Nodes Progress", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.onMenuItemClick", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Plotter Module->" + }, + "icon": "expand", + "propertyNameAtParent": "nodesProgress" + }, + { + "type": "Nodes Running", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.onMenuItemClick", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Plotter Module->" + }, + "icon": "expand", + "propertyNameAtParent": "nodesRunning" + }, + { + "type": "Nodes Announcements", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.onMenuItemClick", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Plotter Module->" + }, + "icon": "expand", + "propertyNameAtParent": "nodesAnnouncements" + }, + { + "type": "Record Values", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.onMenuItemClick", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Plotter Module->" + }, + "icon": "expand", + "propertyNameAtParent": "recordValues" + }, { "type": "Shapes", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#shapes", - "icon": "shapes", "level": 4, "propertyNameAtParent": "shapes", "chainAttachesTo": { @@ -97,6 +369,18 @@ "type": "array", "childType": "Polygon", "autoAdd": true + }, + { + "name": "images", + "type": "array", + "childType": "Image", + "autoAdd": false + }, + { + "name": "texts", + "type": "array", + "childType": "Text", + "autoAdd": false } ], "menuItems": [ @@ -112,12 +396,24 @@ "label": "Add Polygon", "relatedUiObject": "Polygon" }, + { + "action": "Add UI Object", + "actionFunction": "payload.onMenuItemClick", + "label": "Add Image", + "relatedUiObject": "Image" + }, + { + "action": "Add UI Object", + "actionFunction": "payload.onMenuItemClick", + "label": "Add Text", + "relatedUiObject": "Text" + }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", "actionFunction": "payload.onMenuItemClick", - "label": "Delete Shapes", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete" } @@ -126,16 +422,13 @@ }, { "type": "Plotter Panel", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#plotter-panel", - "icon": "plotter-panel", "level": 4, - "isTitleAllwaysVisible": true, "propertyNameAtParent": "panels", "chainAttachesTo": { "compatibleTypes": "->Plotter Module->" }, "initialValues": { - "code": "{ \n\"codeName\": \"\"\n}" + "config": "{ \n \"codeName\": \"\"\n}" }, "editors": { "config": true @@ -155,11 +448,11 @@ ], "menuItems": [ { - "action": "Config Plotter Panel", + "action": "Configure", "actionFunction": "uiObject.configEditor.activate", - "label": "Config Plotter Panel", - "iconPathOn": "html", - "iconPathOff": "html" + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" }, { "action": "Add UI Object", @@ -180,7 +473,7 @@ "askConfirmation": true, "confirmationLabel": "Confirm to Delete", "actionFunction": "payload.onMenuItemClick", - "label": "Delete Plotter Panel", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete" } @@ -189,11 +482,8 @@ }, { "type": "Panel Data", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#panel-data", - "icon": "data-entry", "level": 4, "propertyNameAtParent": "panelData", - "isTitleAllwaysVisible": true, "editors": { "config": true }, @@ -201,7 +491,7 @@ "compatibleTypes": "->Plotter Panel->" }, "initialValues": { - "code": "{\n \"valueDecimals\": 2\n}" + "config": "{\n \"valueDecimals\": 2\n}" }, "properties": [ { @@ -209,15 +499,21 @@ "type": "node", "childType": "Data Formula", "autoAdd": true + }, + { + "name": "textStyle", + "type": "node", + "childType": "Text Style", + "autoAdd": true } ], "menuItems": [ { - "action": "Config Panel Data", + "action": "Configure", "actionFunction": "uiObject.configEditor.activate", - "label": "Config Panel Data", - "iconPathOn": "html", - "iconPathOff": "html" + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" }, { "action": "Add UI Object", @@ -227,12 +523,20 @@ "label": "Add Data Formula", "relatedUiObject": "Data Formula" }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "textStyle", + "actionFunction": "payload.onMenuItemClick", + "label": "Add Text Style", + "relatedUiObject": "Text Style" + }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", "actionFunction": "payload.onMenuItemClick", - "label": "Delete Panel Data", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete" } @@ -241,33 +545,31 @@ }, { "type": "Data Formula", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#data-formula", - "icon": "data-formula", "level": 4, "propertyNameAtParent": "dataFormula", "editors": { "formula": true }, "initialValues": { - "code": "// Type you code here" + "code": "// Type you code" }, "chainAttachesTo": { "compatibleTypes": "->Panel Data->" }, "menuItems": [ { - "action": "Edit Formula", + "action": "Edit", "actionFunction": "uiObject.formulaEditor.activate", - "label": "Edit Formula", - "iconPathOn": "html", - "iconPathOff": "html" + "label": "Edit", + "iconPathOn": "javascript-code", + "iconPathOff": "javascript-code" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", "actionFunction": "payload.onMenuItemClick", - "label": "Delete Data Formula", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete" } @@ -276,33 +578,31 @@ }, { "type": "Javascript Code", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#javascript-code", - "icon": "html", "level": 4, "propertyNameAtParent": "javascriptCode", "editors": { "code": true }, "initialValues": { - "code": "// Type you code here" + "code": "// Type you code" }, "chainAttachesTo": { "compatibleTypes": "->Condition->Procedure Initialization->Procedure Loop->Plotter Module->Plotter Panel->Master Script->" }, "menuItems": [ { - "action": "Edit Code", + "action": "Edit", "actionFunction": "uiObject.codeEditor.activate", - "label": "Edit Code", - "iconPathOn": "html", - "iconPathOff": "html" + "label": "Edit", + "iconPathOn": "javascript-code", + "iconPathOff": "javascript-code" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", "actionFunction": "payload.onMenuItemClick", - "label": "Delete Javascript Code", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete" } @@ -311,11 +611,8 @@ }, { "type": "Chart Points", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#chart-points", - "icon": "chart-points", "level": 4, "propertyNameAtParent": "chartPoints", - "isTitleAllwaysVisible": true, "chainAttachesTo": { "compatibleTypes": "->Shapes->" }, @@ -339,7 +636,7 @@ "askConfirmation": true, "confirmationLabel": "Confirm to Delete", "actionFunction": "payload.onMenuItemClick", - "label": "Delete Chart Points", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete" } @@ -348,12 +645,8 @@ }, { "type": "Point", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#point", - "icon": "chart-point", "level": 4, "propertyNameAtParent": "points", - "isTitleAllwaysVisible": true, - "isReferenceParent": true, "chainAttachesTo": { "compatibleTypes": "->Chart Points->" }, @@ -379,7 +672,7 @@ "askConfirmation": true, "confirmationLabel": "Confirm to Delete", "actionFunction": "payload.onMenuItemClick", - "label": "Delete Point", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete" } @@ -388,8 +681,6 @@ }, { "type": "Point Formula", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#point-formula", - "icon": "chart-point-formula", "level": 4, "propertyNameAtParent": "pointFormula", "chainAttachesTo": { @@ -399,22 +690,377 @@ "formula": true }, "initialValues": { - "code": "x = record.begin\ny = record.propertyA" + "code": "x = record.begin\ny = record.property" }, "menuItems": [ { - "action": "Edit Formula", + "action": "Edit", "actionFunction": "uiObject.formulaEditor.activate", - "label": "Edit Formula", - "iconPathOn": "html", - "iconPathOff": "html" + "label": "Edit", + "iconPathOn": "javascript-code", + "iconPathOff": "javascript-code" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", "actionFunction": "payload.onMenuItemClick", - "label": "Delete Point", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "addLeftIcons": true + }, + { + "type": "Image", + "level": 3, + "propertyNameAtParent": "images", + "chainAttachesTo": { + "compatibleTypes": "->Shapes->" + }, + "editors": { + "config": true + }, + "initialValues": { + "config": "{ \n\"codeName\": \"\", \n\"size\": 10\n}" + }, + "menuItems": [ + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "imageCondition", + "actionFunction": "payload.onMenuItemClick", + "label": "Add Image Condition", + "relatedUiObject": "Image Condition" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "imagePosition", + "actionFunction": "payload.onMenuItemClick", + "label": "Add Image Position", + "relatedUiObject": "Image Position" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.onMenuItemClick", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "properties": [ + { + "name": "imageCondition", + "type": "node", + "childType": "Image Condition", + "autoAdd": true + }, + { + "name": "imagePosition", + "type": "node", + "childType": "Image Position", + "autoAdd": true + } + ], + "addLeftIcons": true + }, + { + "type": "Image Condition", + "level": 4, + "propertyNameAtParent": "imageCondition", + "chainAttachesTo": { + "compatibleTypes": "->Image->" + }, + "editors": { + "code": true + }, + "initialValues": { + "code": "" + }, + "properties": [], + "menuItems": [ + { + "action": "Edit", + "actionFunction": "uiObject.codeEditor.activate", + "label": "Edit", + "iconPathOn": "javascript-code", + "iconPathOff": "javascript-code" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.onMenuItemClick", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "addLeftIcons": true + }, + { + "type": "Image Position", + "level": 4, + "propertyNameAtParent": "imagePosition", + "chainAttachesTo": { + "compatibleTypes": "->Image->" + }, + "properties": [], + "referenceAttachesTo": { + "compatibleTypes": "->Point->" + }, + "editors": { + "config": true + }, + "title": [ + "Use Reference Parent" + ], + "initialValues": { + "config": "{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }" + }, + "menuItems": [ + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.onMenuItemClick", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "addLeftIcons": true + }, + { + "type": "Text", + "level": 3, + "propertyNameAtParent": "texts", + "chainAttachesTo": { + "compatibleTypes": "->Shapes->" + }, + "menuItems": [ + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "textCondition", + "actionFunction": "payload.onMenuItemClick", + "label": "Add Text Condition", + "relatedUiObject": "Text Condition" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "textPosition", + "actionFunction": "payload.onMenuItemClick", + "label": "Add Text Position", + "relatedUiObject": "Text Position" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "textFormula", + "actionFunction": "payload.onMenuItemClick", + "label": "Add Text Formula", + "relatedUiObject": "Text Formula" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "textStyle", + "actionFunction": "payload.onMenuItemClick", + "label": "Add Text Style", + "relatedUiObject": "Text Style" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.onMenuItemClick", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "properties": [ + { + "name": "textCondition", + "type": "node", + "childType": "Text Condition", + "autoAdd": true + }, + { + "name": "textPosition", + "type": "node", + "childType": "Text Position", + "autoAdd": true + }, + { + "name": "textFormula", + "type": "node", + "childType": "Text Formula", + "autoAdd": true + }, + { + "name": "textStyle", + "type": "node", + "childType": "Text Style", + "autoAdd": true + } + ], + "addLeftIcons": true + }, + { + "type": "Text Style", + "level": 4, + "propertyNameAtParent": "textStyle", + "chainAttachesTo": { + "compatibleTypes": "->Text->Panel Data->" + }, + "editors": { + "config": true + }, + "initialValues": { + "config": "{ \n\"configuration\": \"Get the appropriate configuration from the documentation\"\n}" + }, + "menuItems": [ + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.onMenuItemClick", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "addLeftIcons": true + }, + { + "type": "Text Condition", + "level": 4, + "propertyNameAtParent": "textCondition", + "chainAttachesTo": { + "compatibleTypes": "->Text->" + }, + "editors": { + "code": true + }, + "initialValues": { + "code": "" + }, + "properties": [], + "menuItems": [ + { + "action": "Edit", + "actionFunction": "uiObject.codeEditor.activate", + "label": "Edit", + "iconPathOn": "javascript-code", + "iconPathOff": "javascript-code" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.onMenuItemClick", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "addLeftIcons": true + }, + { + "type": "Text Position", + "level": 4, + "propertyNameAtParent": "textPosition", + "chainAttachesTo": { + "compatibleTypes": "->Text->" + }, + "properties": [], + "referenceAttachesTo": { + "compatibleTypes": "->Point->" + }, + "editors": { + "config": true + }, + "title": [ + "Use Reference Parent" + ], + "initialValues": { + "config": "{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }" + }, + "menuItems": [ + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.onMenuItemClick", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "addLeftIcons": true + }, + { + "type": "Text Formula", + "level": 4, + "propertyNameAtParent": "textFormula", + "chainAttachesTo": { + "compatibleTypes": "->Text->" + }, + "editors": { + "formula": true + }, + "initialValues": { + "code": "record.property" + }, + "menuItems": [ + { + "action": "Edit", + "actionFunction": "uiObject.formulaEditor.activate", + "label": "Edit", + "iconPathOn": "javascript-code", + "iconPathOff": "javascript-code" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.onMenuItemClick", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete" } @@ -423,11 +1069,8 @@ }, { "type": "Polygon", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#polygon", - "icon": "shapes-polygon", "level": 3, "propertyNameAtParent": "polygons", - "isTitleAllwaysVisible": true, "chainAttachesTo": { "compatibleTypes": "->Shapes->" }, @@ -435,7 +1078,8 @@ { "name": "polygonCondition", "type": "node", - "childType": "Polygon Condition" + "childType": "Polygon Condition", + "autoAdd": false }, { "name": "polygonBody", @@ -492,7 +1136,7 @@ "askConfirmation": true, "confirmationLabel": "Confirm to Delete", "actionFunction": "payload.onMenuItemClick", - "label": "Delete Polygon", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete" } @@ -501,7 +1145,6 @@ }, { "type": "Polygon Condition", - "icon": "style-condition", "level": 4, "propertyNameAtParent": "polygonCondition", "chainAttachesTo": { @@ -516,18 +1159,18 @@ "properties": [], "menuItems": [ { - "action": "Edit Condition", + "action": "Edit", "actionFunction": "uiObject.codeEditor.activate", - "label": "Edit Condition", - "iconPathOn": "html", - "iconPathOff": "html" + "label": "Edit", + "iconPathOn": "javascript-code", + "iconPathOff": "javascript-code" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", "actionFunction": "payload.onMenuItemClick", - "label": "Delete Style Condition", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete" } @@ -536,8 +1179,6 @@ }, { "type": "Polygon Body", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#polygon-body", - "icon": "shapes-polygon-body", "level": 4, "propertyNameAtParent": "polygonBody", "chainAttachesTo": { @@ -576,7 +1217,7 @@ "askConfirmation": true, "confirmationLabel": "Confirm to Delete", "actionFunction": "payload.onMenuItemClick", - "label": "Delete Polygon Body", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete" } @@ -585,8 +1226,6 @@ }, { "type": "Polygon Border", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#polygon-border", - "icon": "shapes-polygon-border", "level": 4, "propertyNameAtParent": "polygonBorder", "chainAttachesTo": { @@ -625,7 +1264,7 @@ "askConfirmation": true, "confirmationLabel": "Confirm to Delete", "actionFunction": "payload.onMenuItemClick", - "label": "Delete Polygon Border", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete" } @@ -634,8 +1273,6 @@ }, { "type": "Style Condition", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#style-condition", - "icon": "style-condition", "level": 4, "propertyNameAtParent": "styleConditions", "chainAttachesTo": { @@ -657,11 +1294,11 @@ ], "menuItems": [ { - "action": "Edit Condition", + "action": "Edit", "actionFunction": "uiObject.codeEditor.activate", - "label": "Edit Condition", - "iconPathOn": "html", - "iconPathOff": "html" + "label": "Edit", + "iconPathOn": "javascript-code", + "iconPathOff": "javascript-code" }, { "action": "Add UI Object", @@ -676,7 +1313,7 @@ "askConfirmation": true, "confirmationLabel": "Confirm to Delete", "actionFunction": "payload.onMenuItemClick", - "label": "Delete Style Condition", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete" } @@ -685,8 +1322,6 @@ }, { "type": "Style", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#style", - "icon": "style", "level": 4, "propertyNameAtParent": "style", "chainAttachesTo": { @@ -696,22 +1331,22 @@ "config": true }, "initialValues": { - "code": "{}" + "config": "{ \n\"configuration\": \"Get the appropriate configuration from the documentation\"\n}" }, "menuItems": [ { - "action": "Configure Style", + "action": "Configure", "actionFunction": "uiObject.configEditor.activate", - "label": "Configure Style", - "iconPathOn": "html", - "iconPathOff": "html" + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", "actionFunction": "payload.onMenuItemClick", - "label": "Delete Style", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete" } @@ -720,8 +1355,6 @@ }, { "type": "Polygon Vertex", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#polygon-vertex", - "icon": "shapes-polygon-vertex", "level": 4, "propertyNameAtParent": "polygonVertexes", "isReferenceChildren": true, @@ -740,7 +1373,7 @@ "askConfirmation": true, "confirmationLabel": "Confirm to Delete", "actionFunction": "payload.onMenuItemClick", - "label": "Delete Polygon Edge", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete" } @@ -753,25 +1386,25 @@ { "action": "Pin / Unpin", "currentStatus": true, - "iconPathOn": "menu-fix-unpinned", - "iconPathOff": "menu-fix-pinned", + "iconPathOn": "unpinned", + "iconPathOff": "pinned", + "actionFunction": "payload.onMenuItemClick", + "ring": 1 + }, + { + "action": "Share Workspace", + "iconPathOn": "share", + "iconPathOff": "share", "actionFunction": "payload.onMenuItemClick", "ring": 1 }, { "action": "Backup Workspace", - "iconPathOn": "menu-backup", - "iconPathOff": "menu-backup", + "iconPathOn": "backup", + "iconPathOff": "backup", "actionFunction": "payload.onMenuItemClick", "ring": 1 }, - { - "action": "Configure Workspace", - "actionFunction": "uiObject.configEditor.activate", - "label": "Configure Workspace", - "iconPathOn": "html", - "iconPathOff": "html" - }, { "action": "Add UI Object", "label": "Add Trading System", @@ -790,6 +1423,12 @@ "relatedUiObject": "Data Mine", "actionFunction": "payload.onMenuItemClick" }, + { + "action": "Add UI Object", + "label": "Add Trading Mine", + "relatedUiObject": "Trading Mine", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Add UI Object", "label": "Add Super Scripts", @@ -797,25 +1436,31 @@ "actionFunction": "payload.onMenuItemClick" }, { - "action": "Share Workspace", - "label": "Share", - "iconPathOn": "menu-share", - "iconPathOff": "menu-share", + "action": "Add UI Object", + "label": "Add Trading Engine", + "relatedUiObject": "Trading Engine", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Tutorial", + "relatedUiObject": "Tutorial", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Includes", + "relatedUiObject": "Includes", "actionFunction": "payload.onMenuItemClick" } ], "isTitleAllwaysVisible": true, "addLeftIcons": false, "isPinned": true, - "positionLocked": true, - "icon": "design-tool", - "editors": { - "config": true - } + "positionLocked": true }, { "type": "Situation", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#situation", "menuItems": [ { "action": "Add UI Object", @@ -823,40 +1468,51 @@ "relatedUiObject": "Condition", "actionFunction": "payload.onMenuItemClick" }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "formula", + "label": "Add Formula", + "relatedUiObject": "Formula", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This Situation", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], "addLeftIcons": true, - "level": 0, + "level": 1, "chainAttachesTo": { - "compatibleTypes": "->Take Position Event->Trigger On Event->Trigger Off Event->Next Phase Event->Move to Phase Event->" + "compatibleTypes": "->Take Position Event->Trigger On Event->Trigger Off Event->Next Phase Event->Move To Phase Event->" }, - "icon": "pyramid", "properties": [ { "name": "conditions", "type": "array", "childType": "Condition", "autoAdd": true + }, + { + "name": "formula", + "type": "node", + "childType": "Formula" } ], "propertyNameAtParent": "situations" }, { "type": "Condition", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#condition", "menuItems": [ { - "action": "Edit Condition", + "action": "Edit", "actionFunction": "uiObject.conditionEditor.activate", - "label": "Edit Condition", + "label": "Edit", "relatedUiObject": "Condition" }, { @@ -883,7 +1539,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This Condition", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -897,7 +1553,6 @@ "chainAttachesTo": { "compatibleTypes": "->Situation->" }, - "icon": "testing", "properties": [ { "name": "javascriptCode", @@ -910,14 +1565,13 @@ }, { "type": "Super Scripts", - "docURL": "https://docs.superalgos.org/suite-hierarchy-super-scripts.html#super-scripts", "menuItems": [ { - "action": "Configure Super Scripts", + "action": "Configure", "actionFunction": "uiObject.configEditor.activate", - "label": "Configure Super Scripts", - "iconPathOn": "html", - "iconPathOff": "html" + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" }, { "action": "Add UI Object", @@ -931,7 +1585,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Super Scripts", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -940,13 +1594,12 @@ "isTitleAllwaysVisible": true, "isHierarchyHead": true, "addLeftIcons": true, - "level": 1, - "icon": "super-scripts", + "level": 0, "editors": { "config": true }, "initialValues": { - "code": "{ \n\"codeName\": \"\"\n}" + "config": "{ \n \"codeName\": \"\"\n}" }, "properties": [ { @@ -959,7 +1612,6 @@ }, { "type": "Scripts Library", - "docURL": "https://docs.superalgos.org/suite-hierarchy-super-scripts.html#scripts-library", "menuItems": [ { "action": "Add UI Object", @@ -971,7 +1623,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Scripts Library", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -984,7 +1636,6 @@ "chainAttachesTo": { "compatibleTypes": "->Super Scripts->" }, - "icon": "scripts-library", "properties": [ { "name": "masterScripts", @@ -996,7 +1647,6 @@ }, { "type": "Master Script", - "docURL": "https://docs.superalgos.org/suite-hierarchy-super-scripts.html#master-script", "menuItems": [ { "action": "Add UI Object", @@ -1016,7 +1666,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Master Script", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -1029,7 +1679,6 @@ "chainAttachesTo": { "compatibleTypes": "->Scripts Library->" }, - "icon": "master-script", "properties": [ { "name": "templateScripts", @@ -1046,7 +1695,6 @@ }, { "type": "Template Script", - "docURL": "https://docs.superalgos.org/suite-hierarchy-super-scripts.html#template-script", "menuItems": [ { "action": "Add UI Object", @@ -1076,7 +1724,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Template Script", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -1089,7 +1737,6 @@ "chainAttachesTo": { "compatibleTypes": "->Master Script->" }, - "icon": "template-script", "properties": [ { "name": "templateStructure", @@ -1113,13 +1760,12 @@ }, { "type": "Template Structure", - "docURL": "https://docs.superalgos.org/suite-hierarchy-super-scripts.html#template-structure", "menuItems": [ { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Template Structure", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -1132,7 +1778,6 @@ "chainAttachesTo": { "compatibleTypes": "->Template Script->" }, - "icon": "template-structure", "properties": [ { "name": "taskManagers", @@ -1140,9 +1785,9 @@ "childType": "Task Manager" }, { - "name": "singleMarketData", + "name": "marketDataProducts", "type": "node", - "childType": "Single Market Data" + "childType": "Market Data Products" }, { "name": "sessionReferences", @@ -1158,13 +1803,12 @@ }, { "type": "Template Target", - "docURL": "https://docs.superalgos.org/suite-hierarchy-super-scripts.html#template-target", "menuItems": [ { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Template Target", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -1178,14 +1822,12 @@ "compatibleTypes": "->Template Script->" }, "referenceAttachesTo": { - "compatibleTypes": "->Dashboard->Session Independent Data->Session Based Data->Data Mining->Testing Environment->Production Environment->" + "compatibleTypes": "->Dashboard->Data Mines Data->Trading Mines Data->Data Mining->Testing Environment->Production Environment->" }, - "icon": "template-target", "properties": [] }, { "type": "Super Action", - "docURL": "https://docs.superalgos.org/suite-hierarchy-super-scripts.html#super-action", "menuItems": [ { "action": "Run Super Action", @@ -1193,15 +1835,15 @@ "askConfirmation": true, "confirmationLabel": "Confirm to Run", "workDoneLabel": "Super Action Executed", - "iconPathOn": "paper-plane", - "iconPathOff": "paper-plane", + "iconPathOn": "run", + "iconPathOff": "run", "actionFunction": "payload.onMenuItemClick" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Super Action", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -1217,12 +1859,10 @@ "referenceAttachesTo": { "compatibleTypes": "->Master Script->" }, - "icon": "super-action", "properties": [] }, { "type": "Network", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#network", "menuItems": [ { "action": "Add UI Object", @@ -1234,17 +1874,15 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Network", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], - "isTitleAllwaysVisible": true, "isHierarchyHead": true, "addLeftIcons": true, - "level": 1, - "icon": "network", + "level": 0, "properties": [ { "name": "networkNodes", @@ -1255,24 +1893,15 @@ }, { "type": "Network Node", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#network-node", "menuItems": [ { - "action": "Configure Network Node", - "label": "Configure Network Node", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, - { - "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "dataStorage", - "label": "Add Data Storage", - "relatedUiObject": "Data Storage", - "actionFunction": "payload.onMenuItemClick" - }, { "action": "Add UI Object", "disableIfPropertyIsDefined": true, @@ -1297,11 +1926,19 @@ "relatedUiObject": "Production Environment", "actionFunction": "payload.onMenuItemClick" }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "dataStorage", + "label": "Add Data Storage", + "relatedUiObject": "Data Storage", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Network Node", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -1311,7 +1948,7 @@ "config": true }, "initialValues": { - "code": "{ \n\"host\": \"localhost\", \n\"webPort\": \"34247\", \n\"webSocketsPort\": \"8080\"\n}" + "config": "{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"8081\"\n}" }, "isTitleAllwaysVisible": true, "addLeftIcons": true, @@ -1319,14 +1956,7 @@ "chainAttachesTo": { "compatibleTypes": "->Network->" }, - "icon": "network-node", "properties": [ - { - "name": "dataStorage", - "type": "node", - "childType": "Data Storage", - "autoAdd": true - }, { "name": "dataMining", "type": "node", @@ -1344,13 +1974,18 @@ "type": "node", "childType": "Production Environment", "autoAdd": true + }, + { + "name": "dataStorage", + "type": "node", + "childType": "Data Storage", + "autoAdd": true } ], "propertyNameAtParent": "networkNodes" }, { "type": "Task Manager", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#task-manager", "menuItems": [ { "action": "Run All Tasks", @@ -1358,8 +1993,8 @@ "askConfirmation": true, "confirmationLabel": "Confirm to Run", "workDoneLabel": "Run Request Sent", - "iconPathOn": "paper-plane", - "iconPathOff": "paper-plane", + "iconPathOn": "run", + "iconPathOff": "run", "actionFunction": "payload.onMenuItemClick" }, { @@ -1382,24 +2017,23 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Task Manager", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], "addLeftIcons": true, - "level": 1, + "level": 2, "chainAttachesTo": { - "compatibleTypes": "->Exchange Tasks->Template Structure->" + "compatibleTypes": "->Data Mine Tasks->Trading Mine Tasks->" }, - "icon": "task-manager", "properties": [ { "name": "tasks", "type": "array", "childType": "Task", - "autoAdd": true, + "autoAdd": false, "monitorChildrenRunning": true } ], @@ -1407,7 +2041,6 @@ }, { "type": "Task", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#task", "menuItems": [ { "action": "Run Task", @@ -1421,8 +2054,8 @@ "secondaryWorkDoneLabel": "Task Stopped", "secondaryWorkFailedLabel": "Task Cannot be Stopped", "secondaryIcon": "stop", - "iconPathOn": "paper-plane", - "iconPathOff": "paper-plane", + "iconPathOn": "run", + "iconPathOff": "run", "actionFunction": "payload.onMenuItemClick" }, { @@ -1459,11 +2092,19 @@ "relatedUiObject": "Trading Bot Instance", "actionFunction": "payload.onMenuItemClick" }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "keyReference", + "label": "Add Key Reference", + "relatedUiObject": "Key Reference", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Task", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -1471,11 +2112,10 @@ ], "isTitleAllwaysVisible": true, "addLeftIcons": true, - "level": 1, + "level": 0, "chainAttachesTo": { "compatibleTypes": "->Task Manager->" }, - "icon": "timeline", "properties": [ { "name": "bot", @@ -1491,19 +2131,23 @@ "name": "bot", "type": "node", "childType": "Indicator Bot Instance" + }, + { + "name": "keyReference", + "type": "node", + "childType": "Key Reference" } ], "propertyNameAtParent": "tasks" }, { "type": "Trading Bot Instance", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#trading-bot-instance", "menuItems": [ { - "action": "Configure Bot Instance", - "label": "Configure Bot Instance", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, @@ -1517,7 +2161,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Bot Instance", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -1528,40 +2172,30 @@ "config": true }, "initialValues": { - "code": "{}" + "config": "{}" }, "level": 3, "chainAttachesTo": { "compatibleTypes": "->Task->" }, - "icon": "bot-trading", "properties": [ { "name": "processes", "type": "array", "childType": "Trading Process Instance", - "autoAdd": true + "autoAdd": false } ], "propertyNameAtParent": "bot" }, { "type": "Sensor Process Instance", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#sensor-process-instance", "menuItems": [ - { - "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "marketReference", - "label": "Add Market Reference", - "relatedUiObject": "Market Reference", - "actionFunction": "payload.onMenuItemClick" - }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Process Instance", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -1573,41 +2207,25 @@ "Use Reference Parent" ], "addLeftIcons": true, - "level": 3, + "level": 2, "referenceAttachesTo": { "compatibleTypes": "->Process Definition->" }, "chainAttachesTo": { "compatibleTypes": "->Sensor Bot Instance->" }, - "icon": "process", "properties": [ - { - "name": "marketReference", - "type": "node", - "childType": "Market Reference", - "autoAdd": true - } ], "propertyNameAtParent": "processes" }, { "type": "Indicator Process Instance", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#indicator-process-instance", "menuItems": [ - { - "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "marketReference", - "label": "Add Market Reference", - "relatedUiObject": "Market Reference", - "actionFunction": "payload.onMenuItemClick" - }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Process Instance", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -1619,36 +2237,20 @@ "Use Reference Parent" ], "addLeftIcons": true, - "level": 3, + "level": 2, "referenceAttachesTo": { "compatibleTypes": "->Process Definition->" }, "chainAttachesTo": { "compatibleTypes": "->Indicator Bot Instance->" }, - "icon": "process", "properties": [ - { - "name": "marketReference", - "type": "node", - "childType": "Market Reference", - "autoAdd": true - } ], "propertyNameAtParent": "processes" }, { "type": "Trading Process Instance", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#trading-process-instance", "menuItems": [ - { - "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "marketReference", - "label": "Add Market Reference", - "relatedUiObject": "Market Reference", - "actionFunction": "payload.onMenuItemClick" - }, { "action": "Add UI Object", "disableIfPropertyIsDefined": true, @@ -1681,11 +2283,19 @@ "relatedUiObject": "Paper Trading Session", "actionFunction": "payload.onMenuItemClick" }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "executionStartedEvent", + "label": "Add Execution Started Event", + "relatedUiObject": "Execution Started Event", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Process Instance", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -1697,14 +2307,13 @@ "Use Reference Parent" ], "addLeftIcons": true, - "level": 3, + "level": 2, "referenceAttachesTo": { "compatibleTypes": "->Process Definition->" }, "chainAttachesTo": { "compatibleTypes": "->Trading Bot Instance->" }, - "icon": "process", "properties": [ { "name": "session", @@ -1727,63 +2336,68 @@ "childType": "Live Trading Session" }, { - "name": "marketReference", + "name": "executionStartedEvent", "type": "node", - "childType": "Market Reference", - "autoAdd": true + "childType": "Execution Started Event", + "autoAdd": false } ], "propertyNameAtParent": "processes" }, { "type": "Backtesting Session", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#backtesting-session", "menuItems": [ { "action": "Run Session", "label": "Run", "workingLabel": "Run Request Sent", "workDoneLabel": "Session Running", - "workFailedLabel": "Session Cannot be Run", + "workFailedLabel": "Session Cannot be Ran", "secondaryAction": "Stop Session", "secondaryLabel": "Stop", "secondaryWorkingLabel": "Stopping...", "secondaryWorkDoneLabel": "Session Stopped", "secondaryWorkFailedLabel": "Session Cannot be Stopped", "secondaryIcon": "stop", - "iconPathOn": "paper-plane", - "iconPathOff": "paper-plane", + "iconPathOn": "run", + "iconPathOff": "run", "actionFunction": "payload.onMenuItemClick" }, { - "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "parameters", - "label": "Add Parameters", - "relatedUiObject": "Parameters", + "action": "Resume Session", + "label": "Resume", + "workingLabel": "Resume Request Sent", + "workDoneLabel": "Session Running", + "workFailedLabel": "Session Cannot be Resumed", + "secondaryAction": "Stop Session", + "secondaryLabel": "Stop", + "secondaryWorkingLabel": "Stopping...", + "secondaryWorkDoneLabel": "Session Stopped", + "secondaryWorkFailedLabel": "Session Cannot be Stopped", + "secondaryIcon": "stop", + "iconPathOn": "resume", + "iconPathOff": "resume", "actionFunction": "payload.onMenuItemClick" }, { - "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "socialBots", - "label": "Add Social Bots", - "relatedUiObject": "Social Bots", - "actionFunction": "payload.onMenuItemClick" - }, - { - "action": "Configure Session", - "label": "Configure Session", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Session", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -1791,20 +2405,16 @@ ], "isTitleAllwaysVisible": true, "initialValues": { - "code": "{ \n\"folderName\": \"Type here the folder name where you want the logs of this process to be stored to.\"\n}" + "config": "{ \n\"folderName\": \"\"\n}" }, "addLeftIcons": true, "editors": { "config": true }, "level": 2, - "referenceAttachesTo": { - "compatibleTypes": "->Trading System->" - }, "chainAttachesTo": { "compatibleTypes": "->Trading Process Instance->" }, - "icon": "session-backtesting", "properties": [ { "name": "parameters", @@ -1812,6 +2422,18 @@ "childType": "Parameters", "autoAdd": true }, + { + "name": "tradingSystemReference", + "type": "node", + "childType": "Trading System Reference", + "autoAdd": true + }, + { + "name": "tradingEngineReference", + "type": "node", + "childType": "Trading Engine Reference", + "autoAdd": true + }, { "name": "socialBots", "type": "node", @@ -1820,9 +2442,5138 @@ ], "propertyNameAtParent": "session" }, + { + "type": "Trading Engine", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Trading Engine", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "isHierarchyHead": true, + "addLeftIcons": true, + "level": 0, + "properties": [ + { + "name": "current", + "type": "node", + "childType": "Current", + "autoAdd": true + }, + { + "name": "last", + "type": "node", + "childType": "Last", + "autoAdd": true + }, + { + "name": "exchangeOrders", + "type": "node", + "childType": "Exchange Orders", + "autoAdd": true + } + ] + }, + { + "type": "Dynamic Indicators", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Indicator Function", + "relatedUiObject": "Indicator Function", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Trading System->" + }, + "propertyNameAtParent": "dynamicIndicators", + "properties": [ + { + "name": "indicatorFunctions", + "type": "array", + "childType": "Indicator Function", + "autoAdd": true + } + ], + "icon": "bitcoin" + }, + { + "type": "Indicator Function", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "formula", + "label": "Add Formula", + "relatedUiObject": "Formula", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{ \n \"codeName\": \"\"\n}" + }, + "addLeftIcons": true, + "level": 2, + "chainAttachesTo": { + "compatibleTypes": "->Dynamic Indicators->" + }, + "propertyNameAtParent": "indicatorFunctions", + "properties": [ + { + "name": "formula", + "type": "node", + "childType": "Formula", + "autoAdd": true + } + ] + }, + { + "type": "Episode", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Current->" + }, + "propertyNameAtParent": "episode", + "properties": [ + { + "name": "serialNumber", + "type": "node", + "childType": "Serial Number", + "autoAdd": true + }, + { + "name": "identifier", + "type": "node", + "childType": "Identifier", + "autoAdd": true + }, + { + "name": "begin", + "type": "node", + "childType": "Begin", + "autoAdd": true + }, + { + "name": "end", + "type": "node", + "childType": "End", + "autoAdd": true + }, + { + "name": "beginRate", + "type": "node", + "childType": "Begin Rate", + "autoAdd": true + }, + { + "name": "endRate", + "type": "node", + "childType": "End Rate", + "autoAdd": true + }, + { + "name": "status", + "type": "node", + "childType": "Status", + "autoAdd": true + }, + { + "name": "exitType", + "type": "node", + "childType": "Exit Type", + "autoAdd": true + }, + { + "name": "headOfTheMarket", + "type": "node", + "childType": "Head Of The Market", + "autoAdd": true + }, + { + "name": "processDate", + "type": "node", + "childType": "Process Date", + "autoAdd": true + }, + { + "name": "episodeBaseAsset", + "type": "node", + "childType": "Episode Base Asset", + "autoAdd": true + }, + { + "name": "episodeQuotedAsset", + "type": "node", + "childType": "Episode Quoted Asset", + "autoAdd": true + }, + { + "name": "episodeCounters", + "type": "node", + "childType": "Episode Counters", + "autoAdd": true + }, + { + "name": "episodeStatistics", + "type": "node", + "childType": "Episode Statistics", + "autoAdd": true + }, + { + "name": "distanceToEvent", + "type": "node", + "childType": "Distance To Event", + "autoAdd": true + }, + { + "name": "candle", + "type": "node", + "childType": "Candle", + "autoAdd": true + }, + { + "name": "cycle", + "type": "node", + "childType": "Cycle", + "autoAdd": true + } + ] + }, + { + "type": "Episode Counters", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add User Defined Counter", + "relatedUiObject": "User Defined Counter", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode->" + }, + "propertyNameAtParent": "episodeCounters", + "properties": [ + { + "name": "periods", + "type": "node", + "childType": "Periods", + "autoAdd": true + }, + { + "name": "strategies", + "type": "node", + "childType": "Strategies", + "autoAdd": true + }, + { + "name": "positions", + "type": "node", + "childType": "Positions", + "autoAdd": true + }, + { + "name": "orders", + "type": "node", + "childType": "Orders", + "autoAdd": true + }, + { + "name": "hits", + "type": "node", + "childType": "Hits", + "autoAdd": true + }, + { + "name": "fails", + "type": "node", + "childType": "Fails", + "autoAdd": true + }, + { + "name": "userDefinedCounters", + "type": "array", + "childType": "User Defined Counter", + "autoAdd": false + } + ] + }, + { + "type": "Position Counters", + "menuItems": [ + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "periods", + "label": "Add Periods", + "relatedUiObject": "Periods", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add User Defined Counter", + "relatedUiObject": "User Defined Counter", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Position->" + }, + "propertyNameAtParent": "positionCounters", + "properties": [ + { + "name": "periods", + "type": "node", + "childType": "Periods", + "autoAdd": true + }, + { + "name": "userDefinedCounters", + "type": "array", + "childType": "User Defined Counter", + "autoAdd": false + } + ] + }, + { + "type": "Strategy Counters", + "menuItems": [ + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "periods", + "label": "Add Periods", + "relatedUiObject": "Periods", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add User Defined Counter", + "relatedUiObject": "User Defined Counter", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Strategy->" + }, + "propertyNameAtParent": "strategyCounters", + "properties": [ + { + "name": "periods", + "type": "node", + "childType": "Periods", + "autoAdd": true + }, + { + "name": "userDefinedCounters", + "type": "array", + "childType": "User Defined Counter", + "autoAdd": false + } + ] + }, + { + "type": "Order Counters", + "menuItems": [ + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "periods", + "label": "Add Periods", + "relatedUiObject": "Periods", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add User Defined Counter", + "relatedUiObject": "User Defined Counter", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Market Order->Limit Order->" + }, + "propertyNameAtParent": "orderCounters", + "properties": [ + { + "name": "periods", + "type": "node", + "childType": "Periods", + "autoAdd": true + }, + { + "name": "userDefinedCounters", + "type": "array", + "childType": "User Defined Counter", + "autoAdd": false + } + ] + }, + { + "type": "Positions", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode Counters->" + }, + "propertyNameAtParent": "positions" + }, + { + "type": "Strategies", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode Counters->" + }, + "propertyNameAtParent": "strategies" + }, + { + "type": "Orders", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode Counters->" + }, + "propertyNameAtParent": "orders" + }, + { + "type": "Fails", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode Counters->Episode Base Asset->Episode Quoted Asset->" + }, + "propertyNameAtParent": "fails" + }, + { + "type": "Hits", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode Counters->Episode Base Asset->Episode Quoted Asset->" + }, + "propertyNameAtParent": "hits" + }, + { + "type": "Periods", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode Counters->Position Counters->Strategy Counters->Order Counters->" + }, + "propertyNameAtParent": "periods" + }, + { + "type": "User Defined Counter", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode Counters->Position Counters->Strategy Counters->" + }, + "propertyNameAtParent": "userDefinedCounters" + }, + { + "type": "Episode Statistics", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add User Defined Statistic", + "relatedUiObject": "User Defined Statistic", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode->" + }, + "propertyNameAtParent": "episodeStatistics", + "properties": [ + { + "name": "profitLoss", + "type": "node", + "childType": "Profit Loss", + "autoAdd": true + }, + { + "name": "ROI", + "type": "node", + "childType": "ROI", + "autoAdd": true + }, + { + "name": "hitFail", + "type": "node", + "childType": "Hit Fail", + "autoAdd": true + }, + { + "name": "days", + "type": "node", + "childType": "Days", + "autoAdd": true + }, + { + "name": "annualizedRateOfReturn", + "type": "node", + "childType": "Annualized Rate Of Return", + "autoAdd": true + }, + { + "name": "userDefinedStatistics", + "type": "array", + "childType": "User Defined Statistic", + "autoAdd": true + } + ] + }, + { + "type": "Stop Loss", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Copy Node Path", + "label": "Copy Node Path", + "iconPathOn": "copy-path", + "iconPathOff": "copy-path", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Position->" + }, + "propertyNameAtParent": "stopLoss", + "properties": [ + { + "name": "stopLossPhase", + "type": "node", + "childType": "Stop Loss Phase", + "autoAdd": true + }, + { + "name": "stopLossPosition", + "type": "node", + "childType": "Stop Loss Position", + "autoAdd": true + } + ] + }, + { + "type": "Take Profit", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Copy Node Path", + "label": "Copy Node Path", + "iconPathOn": "copy-path", + "iconPathOff": "copy-path", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Position->" + }, + "propertyNameAtParent": "stopLoss", + "properties": [ + { + "name": "takeProfitPhase", + "type": "node", + "childType": "Take Profit Phase", + "autoAdd": true + }, + { + "name": "takeProfitPosition", + "type": "node", + "childType": "Take Profit Position", + "autoAdd": true + } + ] + }, + { + "type": "Stop Loss Phase", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Stop Loss->" + }, + "propertyNameAtParent": "stopLossPhase" + }, + { + "type": "Take Profit Phase", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Take Profit->" + }, + "propertyNameAtParent": "takeProfitPhase" + }, + { + "type": "Take Profit Position", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": \"\"\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Take Profit->" + }, + "propertyNameAtParent": "takeProfitPosition" + }, + { + "type": "Stop Loss Position", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": \"\"\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Stop Loss->" + }, + "propertyNameAtParent": "stopLossPosition" + }, + { + "type": "Position Statistics", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add User Defined Statistic", + "relatedUiObject": "User Defined Statistic", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Position->" + }, + "propertyNameAtParent": "positionStatistics", + "properties": [ + { + "name": "profitLoss", + "type": "node", + "childType": "Profit Loss", + "autoAdd": true + }, + { + "name": "ROI", + "type": "node", + "childType": "ROI", + "autoAdd": true + }, + { + "name": "hitFail", + "type": "node", + "childType": "Hit Fail", + "autoAdd": true + }, + { + "name": "days", + "type": "node", + "childType": "Days", + "autoAdd": true + }, + { + "name": "userDefinedStatistics", + "type": "array", + "childType": "User Defined Statistic", + "autoAdd": true + } + ] + }, + { + "type": "Stage Base Asset", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Strategy Open Stage->Strategy Close Stage->" + }, + "propertyNameAtParent": "stageBaseAsset", + "properties": [ + { + "name": "targetSize", + "type": "node", + "childType": "Target Size", + "autoAdd": true + }, + { + "name": "sizePlaced", + "type": "node", + "childType": "Size Placed", + "autoAdd": true + }, + { + "name": "sizeFilled", + "type": "node", + "childType": "Size Filled", + "autoAdd": true + }, + { + "name": "feesPaid", + "type": "node", + "childType": "Fees Paid", + "autoAdd": true + } + ] + }, + { + "type": "Stage Quoted Asset", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Strategy Open Stage->Strategy Close Stage->" + }, + "propertyNameAtParent": "stageQuotedAsset", + "properties": [ + { + "name": "targetSize", + "type": "node", + "childType": "Target Size", + "autoAdd": true + }, + { + "name": "sizePlaced", + "type": "node", + "childType": "Size Placed", + "autoAdd": true + }, + { + "name": "sizeFilled", + "type": "node", + "childType": "Size Filled", + "autoAdd": true + }, + { + "name": "feesPaid", + "type": "node", + "childType": "Fees Paid", + "autoAdd": true + } + ] + }, + { + "type": "Episode Base Asset", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode->" + }, + "propertyNameAtParent": "episodeBaseAsset", + "properties": [ + { + "name": "balance", + "type": "node", + "childType": "Balance", + "autoAdd": true + }, + { + "name": "beginBalance", + "type": "node", + "childType": "Begin Balance", + "autoAdd": true + }, + { + "name": "endBalance", + "type": "node", + "childType": "End Balance", + "autoAdd": true + }, + { + "name": "hits", + "type": "node", + "childType": "Hits", + "autoAdd": true + }, + { + "name": "fails", + "type": "node", + "childType": "Fails", + "autoAdd": true + }, + { + "name": "hitRatio", + "type": "node", + "childType": "Hit Ratio", + "autoAdd": true + }, + { + "name": "profitLoss", + "type": "node", + "childType": "Profit Loss", + "autoAdd": true + }, + { + "name": "ROI", + "type": "node", + "childType": "ROI", + "autoAdd": true + }, + { + "name": "annualizedRateOfReturn", + "type": "node", + "childType": "Annualized Rate Of Return", + "autoAdd": true + }, + { + "name": "hitFail", + "type": "node", + "childType": "Hit Fail", + "autoAdd": true + } + ] + }, + { + "type": "Episode Quoted Asset", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode->" + }, + "propertyNameAtParent": "episodeQuotedAsset", + "properties": [ + { + "name": "balance", + "type": "node", + "childType": "Balance", + "autoAdd": true + }, + { + "name": "beginBalance", + "type": "node", + "childType": "Begin Balance", + "autoAdd": true + }, + { + "name": "endBalance", + "type": "node", + "childType": "End Balance", + "autoAdd": true + }, + { + "name": "hits", + "type": "node", + "childType": "Hits", + "autoAdd": true + }, + { + "name": "fails", + "type": "node", + "childType": "Fails", + "autoAdd": true + }, + { + "name": "hitRatio", + "type": "node", + "childType": "Hit Ratio", + "autoAdd": true + }, + { + "name": "profitLoss", + "type": "node", + "childType": "Profit Loss", + "autoAdd": true + }, + { + "name": "ROI", + "type": "node", + "childType": "ROI", + "autoAdd": true + }, + { + "name": "annualizedRateOfReturn", + "type": "node", + "childType": "Annualized Rate Of Return", + "autoAdd": true + }, + { + "name": "hitFail", + "type": "node", + "childType": "Hit Fail", + "autoAdd": true + } + ] + }, + { + "type": "Position Base Asset", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Position->" + }, + "propertyNameAtParent": "positionBaseAsset", + "properties": [ + { + "name": "beginBalance", + "type": "node", + "childType": "Begin Balance", + "autoAdd": true + }, + { + "name": "endBalance", + "type": "node", + "childType": "End Balance", + "autoAdd": true + }, + { + "name": "entryTargetSize", + "type": "node", + "childType": "Entry Target Size", + "autoAdd": true + }, + { + "name": "exitTargetSize", + "type": "node", + "childType": "Exit Target Size", + "autoAdd": true + }, + { + "name": "profitLoss", + "type": "node", + "childType": "Profit Loss", + "autoAdd": true + }, + { + "name": "ROI", + "type": "node", + "childType": "ROI", + "autoAdd": true + }, + { + "name": "hitFail", + "type": "node", + "childType": "Hit Fail", + "autoAdd": true + } + ] + }, + { + "type": "Position Quoted Asset", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Position->" + }, + "propertyNameAtParent": "positionQuotedAsset", + "properties": [ + { + "name": "beginBalance", + "type": "node", + "childType": "Begin Balance", + "autoAdd": true + }, + { + "name": "endBalance", + "type": "node", + "childType": "End Balance", + "autoAdd": true + }, + { + "name": "entryTargetSize", + "type": "node", + "childType": "Entry Target Size", + "autoAdd": true + }, + { + "name": "exitTargetSize", + "type": "node", + "childType": "Exit Target Size", + "autoAdd": true + }, + { + "name": "profitLoss", + "type": "node", + "childType": "Profit Loss", + "autoAdd": true + }, + { + "name": "ROI", + "type": "node", + "childType": "ROI", + "autoAdd": true + }, + { + "name": "hitFail", + "type": "node", + "childType": "Hit Fail", + "autoAdd": true + } + ] + }, + { + "type": "Order Statistics", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add User Defined Statistic", + "relatedUiObject": "User Defined Statistic", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Market Order->Limit Order->" + }, + "propertyNameAtParent": "orderStatistics", + "properties": [ + { + "name": "percentageFilled", + "type": "node", + "childType": "Percentage Filled", + "autoAdd": true + }, + { + "name": "actualRate", + "type": "node", + "childType": "Actual Rate", + "autoAdd": true + }, + { + "name": "days", + "type": "node", + "childType": "Days", + "autoAdd": true + }, + { + "name": "userDefinedStatistics", + "type": "array", + "childType": "User Defined Statistic", + "autoAdd": true + } + ] + }, + { + "type": "Order Base Asset", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Market Order->Limit Order->" + }, + "propertyNameAtParent": "orderBaseAsset", + "properties": [ + { + "name": "size", + "type": "node", + "childType": "Size", + "autoAdd": true + }, + { + "name": "sizeFilled", + "type": "node", + "childType": "Size Filled", + "autoAdd": true + }, + { + "name": "feesPaid", + "type": "node", + "childType": "Fees Paid", + "autoAdd": true + } + ] + }, + { + "type": "Order Quoted Asset", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Market Order->Limit Order->" + }, + "propertyNameAtParent": "orderQuotedAsset", + "properties": [ + { + "name": "size", + "type": "node", + "childType": "Size", + "autoAdd": true + }, + { + "name": "sizeFilled", + "type": "node", + "childType": "Size Filled", + "autoAdd": true + }, + { + "name": "feesPaid", + "type": "node", + "childType": "Fees Paid", + "autoAdd": true + } + ] + }, + { + "type": "User Defined Statistic", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "formula", + "label": "Add Formula", + "relatedUiObject": "Formula", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Copy Node Path", + "label": "Copy Node Path", + "iconPathOn": "copy-path", + "iconPathOff": "copy-path", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "This", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode Statistics->Position Statistics->" + }, + "propertyNameAtParent": "userDefinedStatistics", + "properties": [ + { + "name": "formula", + "type": "node", + "childType": "Formula", + "autoAdd": true + } + ] + }, + { + "type": "Profit Loss", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode Statistics->Position Statistics->Position Base Asset->Position Quoted Asset->Episode Base Asset->Episode Quoted Asset->" + }, + "propertyNameAtParent": "profitLoss" + }, + { + "type": "Hit Ratio", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode Base Asset->Episode Quoted Asset->" + }, + "propertyNameAtParent": "hitRatio" + }, + { + "type": "Days", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode Statistics->Position Statistics->Order Statistics->" + }, + "propertyNameAtParent": "days" + }, + { + "type": "Size Filled", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Order Base Asset->Order Quoted Asset->Stage Base Asset->Stage Quoted Asset->" + }, + "propertyNameAtParent": "sizeFilled" + }, + { + "type": "Percentage Filled", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Order Statistics->" + }, + "propertyNameAtParent": "percentageFilled" + }, + { + "type": "Actual Rate", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Order Statistics->" + }, + "propertyNameAtParent": "search" + }, + { + "type": "Fees Paid", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Order Base Asset->Order Quoted Asset->Stage Base Asset->Stage Quoted Asset->" + }, + "propertyNameAtParent": "feesPaid" + }, + { + "type": "ROI", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode Statistics->Position Statistics->Position Base Asset->Position Quoted Asset->Episode Base Asset->Episode Quoted Asset->" + }, + "propertyNameAtParent": "ROI" + }, + { + "type": "Annualized Rate Of Return", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode Statistics->Episode Base Asset->Episode Quoted Asset->" + }, + "propertyNameAtParent": "annualizedRateOfReturn" + }, + { + "type": "Hit Fail", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": \"\"\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode Statistics->Position Statistics->Position Base Asset->Position Quoted Asset->Episode Base Asset->Episode Quoted Asset->" + }, + "propertyNameAtParent": "hitFail" + }, + { + "type": "Current", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Trading Engine->" + }, + "propertyNameAtParent": "current", + "properties": [ + { + "name": "episode", + "type": "node", + "childType": "Episode", + "autoAdd": true + }, + { + "name": "strategy", + "type": "node", + "childType": "Strategy", + "autoAdd": true + }, + { + "name": "position", + "type": "node", + "childType": "Position", + "autoAdd": true + }, + { + "name": "strategyTriggerStage", + "type": "node", + "childType": "Strategy Trigger Stage", + "autoAdd": true + }, + { + "name": "strategyOpenStage", + "type": "node", + "childType": "Strategy Open Stage", + "autoAdd": true + }, + { + "name": "strategyManageStage", + "type": "node", + "childType": "Strategy Manage Stage", + "autoAdd": true + }, + { + "name": "strategyCloseStage", + "type": "node", + "childType": "Strategy Close Stage", + "autoAdd": true + } + ] + }, + { + "type": "Balance", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode->" + }, + "propertyNameAtParent": "balance" + }, + { + "type": "Begin Balance", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode Base Asset->Episode Quoted Asset->" + }, + "propertyNameAtParent": "beginBalance" + }, + { + "type": "End Balance", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode Base Asset->Episode Quoted Asset->" + }, + "propertyNameAtParent": "endBalance" + }, + { + "type": "Distance To Event", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode->" + }, + "propertyNameAtParent": "distanceToEvent", + "properties": [ + { + "name": "triggerOn", + "type": "node", + "childType": "Trigger On", + "autoAdd": true + }, + { + "name": "triggerOff", + "type": "node", + "childType": "Trigger Off", + "autoAdd": true + }, + { + "name": "takePosition", + "type": "node", + "childType": "Take Position", + "autoAdd": true + }, + { + "name": "closePosition", + "type": "node", + "childType": "Close Position", + "autoAdd": true + }, + { + "name": "nextPhase", + "type": "node", + "childType": "Next Phase", + "autoAdd": true + }, + { + "name": "moveToPhase", + "type": "node", + "childType": "Move To Phase", + "autoAdd": true + }, + { + "name": "createOrder", + "type": "node", + "childType": "Create Order", + "autoAdd": true + }, + { + "name": "cancelOrder", + "type": "node", + "childType": "Cancel Order", + "autoAdd": true + }, + { + "name": "closeOrder", + "type": "node", + "childType": "Close Order", + "autoAdd": true + } + ] + }, + { + "type": "Trigger On", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Distance To Event->" + }, + "propertyNameAtParent": "triggerOn" + }, + { + "type": "Trigger Off", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Distance To Event->" + }, + "propertyNameAtParent": "triggerOff" + }, + { + "type": "Take Position", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Distance To Event->" + }, + "propertyNameAtParent": "takePosition" + }, + { + "type": "Close Position", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Distance To Event->" + }, + "propertyNameAtParent": "closePosition" + }, + { + "type": "Next Phase", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Distance To Event->" + }, + "propertyNameAtParent": "nextPhase" + }, + { + "type": "Move To Phase", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Distance To Event->" + }, + "propertyNameAtParent": "moveToPhase" + }, + { + "type": "Create Order", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Distance To Event->" + }, + "propertyNameAtParent": "createOrder" + }, + { + "type": "Cancel Order", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Distance To Event->" + }, + "propertyNameAtParent": "cancelOrder" + }, + { + "type": "Close Order", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Distance To Event->" + }, + "propertyNameAtParent": "closeOrder" + }, + { + "type": "Strategy Trigger Stage", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Current->" + }, + "propertyNameAtParent": "strategyTriggerStage", + "properties": [ + { + "name": "begin", + "type": "node", + "childType": "Begin", + "autoAdd": true + }, + { + "name": "end", + "type": "node", + "childType": "End", + "autoAdd": true + }, + { + "name": "exitType", + "type": "node", + "childType": "Exit Type", + "autoAdd": true + }, + { + "name": "status", + "type": "node", + "childType": "Status", + "autoAdd": true + }, + { + "name": "beginRate", + "type": "node", + "childType": "Begin Rate", + "autoAdd": true + }, + { + "name": "endRate", + "type": "node", + "childType": "End Rate", + "autoAdd": true + } + ] + }, + { + "type": "Strategy Manage Stage", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Current->" + }, + "propertyNameAtParent": "strategyManageStage", + "properties": [ + { + "name": "begin", + "type": "node", + "childType": "Begin", + "autoAdd": true + }, + { + "name": "end", + "type": "node", + "childType": "End", + "autoAdd": true + }, + { + "name": "exitType", + "type": "node", + "childType": "Exit Type", + "autoAdd": true + }, + { + "name": "status", + "type": "node", + "childType": "Status", + "autoAdd": true + }, + { + "name": "beginRate", + "type": "node", + "childType": "Begin Rate", + "autoAdd": true + }, + { + "name": "endRate", + "type": "node", + "childType": "End Rate", + "autoAdd": true + } + ] + }, + { + "type": "Strategy Open Stage", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Current->" + }, + "propertyNameAtParent": "strategyOpenStage", + "properties": [ + { + "name": "begin", + "type": "node", + "childType": "Begin", + "autoAdd": true + }, + { + "name": "end", + "type": "node", + "childType": "End", + "autoAdd": true + }, + { + "name": "exitType", + "type": "node", + "childType": "Exit Type", + "autoAdd": true + }, + { + "name": "status", + "type": "node", + "childType": "Status", + "autoAdd": true + }, + { + "name": "beginRate", + "type": "node", + "childType": "Begin Rate", + "autoAdd": true + }, + { + "name": "endRate", + "type": "node", + "childType": "End Rate", + "autoAdd": true + }, + { + "name": "stageDefinedIn", + "type": "node", + "childType": "Stage Defined In", + "autoAdd": true + }, + { + "name": "stageBaseAsset", + "type": "node", + "childType": "Stage Base Asset", + "autoAdd": true + }, + { + "name": "stageQuotedAsset", + "type": "node", + "childType": "Stage Quoted Asset", + "autoAdd": true + } + ] + }, + { + "type": "Strategy Close Stage", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Current->" + }, + "propertyNameAtParent": "strategyCloseStage", + "properties": [ + { + "name": "begin", + "type": "node", + "childType": "Begin", + "autoAdd": true + }, + { + "name": "end", + "type": "node", + "childType": "End", + "autoAdd": true + }, + { + "name": "exitType", + "type": "node", + "childType": "Exit Type", + "autoAdd": true + }, + { + "name": "status", + "type": "node", + "childType": "Status", + "autoAdd": true + }, + { + "name": "beginRate", + "type": "node", + "childType": "Begin Rate", + "autoAdd": true + }, + { + "name": "endRate", + "type": "node", + "childType": "End Rate", + "autoAdd": true + }, + { + "name": "stageDefinedIn", + "type": "node", + "childType": "Stage Defined In", + "autoAdd": true + }, + { + "name": "stageBaseAsset", + "type": "node", + "childType": "Stage Base Asset", + "autoAdd": true + }, + { + "name": "stageQuotedAsset", + "type": "node", + "childType": "Stage Quoted Asset", + "autoAdd": true + } + ] + }, + { + "type": "Strategy", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Current->Last->" + }, + "propertyNameAtParent": "strategy", + "properties": [ + { + "name": "serialNumber", + "type": "node", + "childType": "Serial Number", + "autoAdd": true + }, + { + "name": "identifier", + "type": "node", + "childType": "Identifier", + "autoAdd": true + }, + { + "name": "begin", + "type": "node", + "childType": "Begin", + "autoAdd": true + }, + { + "name": "end", + "type": "node", + "childType": "End", + "autoAdd": true + }, + { + "name": "beginRate", + "type": "node", + "childType": "Begin Rate", + "autoAdd": true + }, + { + "name": "endRate", + "type": "node", + "childType": "End Rate", + "autoAdd": true + }, + { + "name": "status", + "type": "node", + "childType": "Status", + "autoAdd": true + }, + { + "name": "exitType", + "type": "node", + "childType": "Exit Type", + "autoAdd": true + }, + { + "name": "situationName", + "type": "node", + "childType": "Situation Name", + "autoAdd": true + }, + { + "name": "index", + "type": "node", + "childType": "Index", + "autoAdd": true + }, + { + "name": "strategyName", + "type": "node", + "childType": "Strategy Name", + "autoAdd": true + }, + { + "name": "strategyCounters", + "type": "node", + "childType": "Strategy Counters", + "autoAdd": true + } + ] + }, + { + "type": "Strategy Name", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": \"\"\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Strategy->" + }, + "propertyNameAtParent": "strategyName" + }, + { + "type": "Index", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Strategy->Candle->" + }, + "propertyNameAtParent": "index" + }, + { + "type": "Status", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": \"Not Open\"\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode->Strategy->Position->Market Order->Limit Order->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->" + }, + "propertyNameAtParent": "status" + }, + { + "type": "Situation Name", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": \"\"\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Strategy->Position->" + }, + "propertyNameAtParent": "situationName" + }, + { + "type": "Algorithm Name", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": \"\"\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Market Order->Limit Order->" + }, + "propertyNameAtParent": "algorithmName" + }, + { + "type": "Order Name", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": \"\"\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Market Order->Limit Order->" + }, + "propertyNameAtParent": "orderName" + }, + { + "type": "Serial Number", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode->Strategy->Position->Market Order->Limit Order->" + }, + "propertyNameAtParent": "serialNumber" + }, + { + "type": "Identifier", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": \"\"\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode->Strategy->Position->Market Order->Limit Order->" + }, + "propertyNameAtParent": "identifier" + }, + { + "type": "Exchange Id", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": \"\"\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Market Order->Limit Order->" + }, + "propertyNameAtParent": "exchangeId" + }, + { + "type": "Lock", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": \"Open\"\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Market Order->Limit Order->" + }, + "propertyNameAtParent": "lock" + }, + { + "type": "Begin", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode->Strategy->Position->Candle->Cycle->Market Order->Limit Order->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->" + }, + "propertyNameAtParent": "begin" + }, + { + "type": "End", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode->Strategy->Position->Candle->Cycle->Market Order->Limit Order->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->" + }, + "propertyNameAtParent": "end" + }, + { + "type": "Open", + "menuItems": [ + { + "action": "Copy Node Path", + "label": "Copy Node Path", + "iconPathOn": "copy-path", + "iconPathOff": "copy-path", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Candle->" + }, + "propertyNameAtParent": "open" + }, + { + "type": "Close", + "menuItems": [ + { + "action": "Copy Node Path", + "label": "Copy Node Path", + "iconPathOn": "copy-path", + "iconPathOff": "copy-path", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Candle->" + }, + "propertyNameAtParent": "close" + }, + { + "type": "Min", + "menuItems": [ + { + "action": "Copy Node Path", + "label": "Copy Node Path", + "iconPathOn": "copy-path", + "iconPathOff": "copy-path", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Candle->" + }, + "propertyNameAtParent": "min" + }, + { + "type": "Max", + "menuItems": [ + { + "action": "Copy Node Path", + "label": "Copy Node Path", + "iconPathOn": "copy-path", + "iconPathOff": "copy-path", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Candle->" + }, + "propertyNameAtParent": "max" + }, + { + "type": "Begin Rate", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode->Strategy->Position->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->" + }, + "propertyNameAtParent": "beginRate" + }, + { + "type": "End Rate", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode->Strategy->Position->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->" + }, + "propertyNameAtParent": "endRate" + }, + { + "type": "Position", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Current->Last->" + }, + "propertyNameAtParent": "position", + "properties": [ + { + "name": "serialNumber", + "type": "node", + "childType": "Serial Number", + "autoAdd": true + }, + { + "name": "identifier", + "type": "node", + "childType": "Identifier", + "autoAdd": true + }, + { + "name": "begin", + "type": "node", + "childType": "Begin", + "autoAdd": true + }, + { + "name": "end", + "type": "node", + "childType": "End", + "autoAdd": true + }, + { + "name": "beginRate", + "type": "node", + "childType": "Begin Rate", + "autoAdd": true + }, + { + "name": "endRate", + "type": "node", + "childType": "End Rate", + "autoAdd": true + }, + { + "name": "status", + "type": "node", + "childType": "Status", + "autoAdd": true + }, + { + "name": "exitType", + "type": "node", + "childType": "Exit Type", + "autoAdd": true + }, + { + "name": "situationName", + "type": "node", + "childType": "Situation Name", + "autoAdd": true + }, + { + "name": "entryTargetRate", + "type": "node", + "childType": "Entry Target Rate", + "autoAdd": true + }, + { + "name": "exitTargetRate", + "type": "node", + "childType": "Exit Target Rate", + "autoAdd": true + }, + { + "name": "stopLoss", + "type": "node", + "childType": "Stop Loss", + "autoAdd": true + }, + { + "name": "takeProfit", + "type": "node", + "childType": "Take Profit", + "autoAdd": true + }, + { + "name": "positionCounters", + "type": "node", + "childType": "Position Counters", + "autoAdd": true + }, + { + "name": "positionStatistics", + "type": "node", + "childType": "Position Statistics", + "autoAdd": true + }, + { + "name": "positionBaseAsset", + "type": "node", + "childType": "Position Base Asset", + "autoAdd": true + }, + { + "name": "positionQuotedAsset", + "type": "node", + "childType": "Position Quoted Asset", + "autoAdd": true + } + ] + }, + { + "type": "Rate", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Market Order->Limit Order->" + }, + "propertyNameAtParent": "rate" + }, + { + "type": "Entry Target Rate", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Position->" + }, + "propertyNameAtParent": "entryTargetRate" + }, + { + "type": "Exit Target Rate", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Position->" + }, + "propertyNameAtParent": "exitTargetRate" + }, + { + "type": "Stage Defined In", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": \"\"\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Strategy Open Stage->Strategy Close Stage->" + }, + "propertyNameAtParent": "stageDefinedIn" + }, + { + "type": "Size", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Order Base Asset->Order Quoted Asset->" + }, + "propertyNameAtParent": "size" + }, + { + "type": "Entry Target Size", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Position Base Asset->Position Quoted Asset->" + }, + "propertyNameAtParent": "entryTargetSize" + }, + { + "type": "Exit Target Size", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Position Base Asset->Position Quoted Asset->" + }, + "propertyNameAtParent": "exitTargetSize" + }, + { + "type": "Size Placed", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Stage Base Asset->Stage Quoted Asset->" + }, + "propertyNameAtParent": "sizePlaced" + }, + { + "type": "Target Size", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Stage Base Asset->Stage Quoted Asset->" + }, + "propertyNameAtParent": "targetSize" + }, + { + "type": "Exit Type", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": \"No Exit\"\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode->Strategy->->Position->Market Order->Limit Order->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->" + }, + "propertyNameAtParent": "exitType" + }, + { + "type": "Process Date", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode->" + }, + "propertyNameAtParent": "processDate" + }, + { + "type": "Head Of The Market", + "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.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": false\n}" + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode->" + }, + "propertyNameAtParent": "headOfTheMarket" + }, + { + "type": "Last", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Trading Engine->" + }, + "propertyNameAtParent": "last", + "properties": [ + { + "name": "position", + "type": "node", + "childType": "Position", + "autoAdd": true + }, + { + "name": "strategy", + "type": "node", + "childType": "Strategy", + "autoAdd": true + }, + { + "name": "limitOrders", + "type": "node", + "childType": "Limit Order", + "autoAdd": true + }, + { + "name": "marketOrders", + "type": "node", + "childType": "Market Order", + "autoAdd": true + } + ] + }, + { + "type": "Candle", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode->" + }, + "propertyNameAtParent": "candle", + "properties": [ + { + "name": "begin", + "type": "node", + "childType": "Begin", + "autoAdd": true + }, + { + "name": "end", + "type": "node", + "childType": "End", + "autoAdd": true + }, + { + "name": "open", + "type": "node", + "childType": "Open", + "autoAdd": true + }, + { + "name": "close", + "type": "node", + "childType": "Close", + "autoAdd": true + }, + { + "name": "min", + "type": "node", + "childType": "Min", + "autoAdd": true + }, + { + "name": "max", + "type": "node", + "childType": "Max", + "autoAdd": true + }, + { + "name": "index", + "type": "node", + "childType": "Index", + "autoAdd": true + } + ] + }, + { + "type": "Cycle", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Copy Node Path", + "label": "Copy Node Path", + "iconPathOn": "copy-path", + "iconPathOff": "copy-path", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Episode->" + }, + "propertyNameAtParent": "cycle", + "properties": [ + { + "name": "begin", + "type": "node", + "childType": "Begin", + "autoAdd": true + }, + { + "name": "end", + "type": "node", + "childType": "End", + "autoAdd": true + } + ] + }, + { + "type": "Exchange Orders", + "menuItems": [ + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "marketBuyOrders", + "label": "Add Market Buy Orders", + "relatedUiObject": "Market Buy Orders", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "marketSellOrders", + "label": "Add Market Sell Orders", + "relatedUiObject": "Market Sell Orders", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "limitBuyOrders", + "label": "Add Limit Buy Orders", + "relatedUiObject": "Limit Buy Orders", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "limitSellOrders", + "label": "Add Limit Sell Orders", + "relatedUiObject": "Limit Sell Orders", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Trading Engine->" + }, + "propertyNameAtParent": "exchangeOrders", + "properties": [ + { + "name": "marketBuyOrders", + "type": "node", + "childType": "Market Buy Orders", + "autoAdd": true + }, + { + "name": "marketSellOrders", + "type": "node", + "childType": "Market Sell Orders", + "autoAdd": true + }, + { + "name": "limitBuyOrders", + "type": "node", + "childType": "Limit Buy Orders", + "autoAdd": true + }, + { + "name": "limitSellOrders", + "type": "node", + "childType": "Limit Sell Orders", + "autoAdd": true + } + ] + }, + { + "type": "Market Buy Orders", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Market Order", + "relatedUiObject": "Market Order", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Exchange Orders->" + }, + "propertyNameAtParent": "marketBuyOrders", + "properties": [ + { + "name": "marketOrders", + "type": "array", + "childType": "Market Order", + "autoAdd": false + } + ] + }, + { + "type": "Market Order", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Trading Engine", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Market Buy Orders->Market Sell Orders->Last->" + }, + "propertyNameAtParent": "marketOrders", + "properties": [ + { + "name": "serialNumber", + "type": "node", + "childType": "Serial Number", + "autoAdd": true + }, + { + "name": "identifier", + "type": "node", + "childType": "Identifier", + "autoAdd": true + }, + { + "name": "exchangeId", + "type": "node", + "childType": "Exchange Id", + "autoAdd": true + }, + { + "name": "begin", + "type": "node", + "childType": "Begin", + "autoAdd": true + }, + { + "name": "end", + "type": "node", + "childType": "End", + "autoAdd": true + }, + { + "name": "rate", + "type": "node", + "childType": "Rate", + "autoAdd": true + }, + { + "name": "exitType", + "type": "node", + "childType": "Exit Type", + "autoAdd": true + }, + { + "name": "status", + "type": "node", + "childType": "Status", + "autoAdd": true + }, + { + "name": "orderName", + "type": "node", + "childType": "Order Name", + "autoAdd": true + }, + { + "name": "algorithmName", + "type": "node", + "childType": "Algorithm Name", + "autoAdd": true + }, + { + "name": "situationName", + "type": "node", + "childType": "Situation Name", + "autoAdd": true + }, + { + "name": "orderCounters", + "type": "node", + "childType": "Order Counters", + "autoAdd": true + }, + { + "name": "lock", + "type": "node", + "childType": "Lock", + "autoAdd": true + }, + { + "name": "orderBaseAsset", + "type": "node", + "childType": "Order Base Asset", + "autoAdd": true + }, + { + "name": "orderQuotedAsset", + "type": "node", + "childType": "Order Quoted Asset", + "autoAdd": true + }, + { + "name": "orderStatistics", + "type": "node", + "childType": "Order Statistics", + "autoAdd": true + } + ] + }, + { + "type": "Market Sell Orders", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Market Order", + "relatedUiObject": "Market Order", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Exchange Orders->" + }, + "propertyNameAtParent": "marketSellOrders", + "properties": [ + { + "name": "marketOrders", + "type": "array", + "childType": "Market Order", + "autoAdd": false + } + ] + }, + { + "type": "Limit Buy Orders", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Limit Order", + "relatedUiObject": "Limit Order", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Exchange Orders->" + }, + "propertyNameAtParent": "limitBuyOrders", + "properties": [ + { + "name": "limitOrders", + "type": "array", + "childType": "Limit Order", + "autoAdd": false + } + ] + }, + { + "type": "Limit Sell Orders", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Limit Order", + "relatedUiObject": "Limit Order", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Exchange Orders->" + }, + "propertyNameAtParent": "limitSellOrders", + "properties": [ + { + "name": "limitOrders", + "type": "array", + "childType": "Limit Order", + "autoAdd": false + } + ] + }, + { + "type": "Limit Order", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Trading Engine", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Limit Buy Orders->Limit Sell Orders->Last->" + }, + "propertyNameAtParent": "limitOrders", + "properties": [ + { + "name": "serialNumber", + "type": "node", + "childType": "Serial Number", + "autoAdd": true + }, + { + "name": "identifier", + "type": "node", + "childType": "Identifier", + "autoAdd": true + }, + { + "name": "exchangeId", + "type": "node", + "childType": "Exchange Id", + "autoAdd": true + }, + { + "name": "begin", + "type": "node", + "childType": "Begin", + "autoAdd": true + }, + { + "name": "end", + "type": "node", + "childType": "End", + "autoAdd": true + }, + { + "name": "rate", + "type": "node", + "childType": "Rate", + "autoAdd": true + }, + { + "name": "exitType", + "type": "node", + "childType": "Exit Type", + "autoAdd": true + }, + { + "name": "status", + "type": "node", + "childType": "Status", + "autoAdd": true + }, + { + "name": "orderName", + "type": "node", + "childType": "Order Name", + "autoAdd": true + }, + { + "name": "algorithmName", + "type": "node", + "childType": "Algorithm Name", + "autoAdd": true + }, + { + "name": "situationName", + "type": "node", + "childType": "Situation Name", + "autoAdd": true + }, + { + "name": "orderCounters", + "type": "node", + "childType": "Order Counters", + "autoAdd": true + }, + { + "name": "lock", + "type": "node", + "childType": "Lock", + "autoAdd": true + }, + { + "name": "orderBaseAsset", + "type": "node", + "childType": "Order Base Asset", + "autoAdd": true + }, + { + "name": "orderQuotedAsset", + "type": "node", + "childType": "Order Quoted Asset", + "autoAdd": true + }, + { + "name": "orderStatistics", + "type": "node", + "childType": "Order Statistics", + "autoAdd": true + } + ] + }, { "type": "Parameters", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#parameters", "menuItems": [ { "action": "Add Missing Children", @@ -1834,7 +7585,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Parameters", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -1843,20 +7594,19 @@ "addLeftIcons": true, "level": 2, "chainAttachesTo": { - "compatibleTypes": "->Trading System->Backtesting Session->Live Trading Session->Paper Trading Session->Forward Testing Session->" + "compatibleTypes": "->Backtesting Session->Live Trading Session->Paper Trading Session->Forward Testing Session->" }, - "icon": "settings", "properties": [ { - "name": "baseAsset", + "name": "sessionBaseAsset", "type": "node", - "childType": "Base Asset", + "childType": "Session Base Asset", "autoAdd": true }, { - "name": "quotedAsset", + "name": "sessionQuotedAsset", "type": "node", - "childType": "Quoted Asset", + "childType": "Session Quoted Asset", "autoAdd": true }, { @@ -1882,68 +7632,95 @@ "type": "node", "childType": "Fee Structure", "autoAdd": true + }, + { + "name": "snapshots", + "type": "node", + "childType": "Snapshots", + "autoAdd": true + }, + { + "name": "heartbeats", + "type": "node", + "childType": "Heartbeats", + "autoAdd": true + }, + { + "name": "userDefinedParameters", + "type": "node", + "childType": "User Defined Parameters", + "autoAdd": true } ], "propertyNameAtParent": "parameters" }, { - "type": "Base Asset", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#base-asset", + "type": "Trading System Reference", "menuItems": [ - { - "action": "Configure Base Asset", - "label": "Configure Base Asset", - "iconPathOn": "settings", - "iconPathOff": "settings", - "actionFunction": "uiObject.configEditor.activate" - }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Base Asset", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], - "isTitleAllwaysVisible": true, - "initialValues": { - "code": "{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5\n}" - }, - "addLeftIcons": true, - "editors": { - "config": true - }, - "level": 3, - "referenceAttachesTo": { - "compatibleTypes": "->Exchange Account Asset->" - }, - "chainAttachesTo": { - "compatibleTypes": "->Parameters->" - }, - "icon": "asset", - "alternativeIcons": "Use Reference Grandparent", "title": [ - "Use Reference Grandparent" + "Use Reference Parent" ], - "propertyNameAtParent": "baseAsset" + "addLeftIcons": true, + "level": 2, + "chainAttachesTo": { + "compatibleTypes": "->Backtesting Session->Live Trading Session->Paper Trading Session->Forward Testing Session->" + }, + "referenceAttachesTo": { + "compatibleTypes": "->Trading System->" + }, + "propertyNameAtParent": "tradingSystemReference" }, { - "type": "Quoted Asset", + "type": "Trading Engine Reference", "menuItems": [ { - "action": "Configure Quoted Asset", - "label": "Configure Quoted Asset", - "iconPathOn": "settings", - "iconPathOff": "settings", + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "title": [ + "Use Reference Parent" + ], + "addLeftIcons": true, + "level": 2, + "chainAttachesTo": { + "compatibleTypes": "->Backtesting Session->Live Trading Session->Paper Trading Session->Forward Testing Session->" + }, + "referenceAttachesTo": { + "compatibleTypes": "->Trading Engine->" + }, + "propertyNameAtParent": "tradingEngineReference" + }, + { + "type": "Session Base Asset", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "actionFunction": "uiObject.configEditor.activate" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Quoted Asset", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -1951,7 +7728,7 @@ ], "isTitleAllwaysVisible": true, "initialValues": { - "code": "{\n\"initialBalance\": 0\n}" + "config": "{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5\n}" }, "addLeftIcons": true, "editors": { @@ -1964,22 +7741,61 @@ "chainAttachesTo": { "compatibleTypes": "->Parameters->" }, - "icon": "asset", "alternativeIcons": "Use Reference Grandparent", "title": [ "Use Reference Grandparent" ], - "propertyNameAtParent": "quotedAsset" + "propertyNameAtParent": "sessionBaseAsset" + }, + { + "type": "Session Quoted Asset", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "isTitleAllwaysVisible": true, + "initialValues": { + "config": "{\n\"initialBalance\": 0\n}" + }, + "addLeftIcons": true, + "editors": { + "config": true + }, + "level": 3, + "referenceAttachesTo": { + "compatibleTypes": "->Exchange Account Asset->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Parameters->" + }, + "alternativeIcons": "Use Reference Grandparent", + "title": [ + "Use Reference Grandparent" + ], + "propertyNameAtParent": "sessionQuotedAsset" }, { "type": "Market Base Asset", - "docURL": "https://docs.superalgos.org/suite-hierarchy-crypto-ecosystem.html#market-base-asset", "menuItems": [ { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Base Asset", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -1994,7 +7810,6 @@ "chainAttachesTo": { "compatibleTypes": "->Market->" }, - "icon": "asset", "alternativeIcons": "Use Reference Parent", "title": [ "Use Reference Parent" @@ -2003,13 +7818,12 @@ }, { "type": "Market Quoted Asset", - "docURL": "https://docs.superalgos.org/suite-hierarchy-crypto-ecosystem.html#market-quoted-asset", "menuItems": [ { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Base Asset", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -2024,81 +7838,34 @@ "chainAttachesTo": { "compatibleTypes": "->Market->" }, - "icon": "asset", "alternativeIcons": "Use Reference Parent", "title": [ "Use Reference Parent" ], "propertyNameAtParent": "quotedAsset" }, - { - "type": "Market Reference", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#market-reference", - "menuItems": [ - { - "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "keyInstance", - "label": "Add Key Instance", - "relatedUiObject": "Key Instance", - "actionFunction": "payload.onMenuItemClick" - }, - { - "action": "Delete UI Object", - "askConfirmation": true, - "confirmationLabel": "Confirm to Delete", - "label": "Delete Base Asset", - "iconPathOn": "delete", - "iconPathOff": "delete", - "actionFunction": "payload.onMenuItemClick" - } - ], - "isTitleAllwaysVisible": true, - "title": [ - "Use Reference Parent Parent Parent", - "Use Reference Parent" - ], - "addLeftIcons": true, - "level": 3, - "referenceAttachesTo": { - "compatibleTypes": "->Market->" - }, - "chainAttachesTo": { - "compatibleTypes": "->Sensor Process Instance->Indicator Process Instance->Trading Process Instance->" - }, - "properties": [ - { - "name": "keyInstance", - "type": "node", - "childType": "Key Instance" - } - ], - "icon": "market", - "propertyNameAtParent": "marketReference" - }, { "type": "Time Range", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#time-range", "menuItems": [ { - "action": "Configure Time Range", - "label": "Configure Time Range", - "iconPathOn": "settings", - "iconPathOff": "settings", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "actionFunction": "uiObject.configEditor.activate" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Time Range", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], "initialValues": { - "code": "{ \n\"initialDatetime\": \"2019-07-01T00:00:00.000Z\",\n\"finalDatetime\": \"2019-09-01T00:00:00.000Z\"\n}" + "config": "{ \n\"initialDatetime\": \"2020-09-01\",\n\"finalDatetime\": \"2020-09-02\" \n}" }, "addLeftIcons": true, "editors": { @@ -2108,32 +7875,30 @@ "chainAttachesTo": { "compatibleTypes": "->Parameters->" }, - "icon": "schedule", "propertyNameAtParent": "timeRange" }, { "type": "Time Frame", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#time-frame", "menuItems": [ { - "action": "Configure Time Frame", - "label": "Configure Time Frame", - "iconPathOn": "settings", - "iconPathOff": "settings", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "actionFunction": "uiObject.configEditor.activate" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Time Frame", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], "initialValues": { - "code": "{ \n\"value\": \"01-hs\"\n}" + "config": "{ \n\"label\": \"01-hs\"\n}" }, "addLeftIcons": true, "editors": { @@ -2143,32 +7908,30 @@ "chainAttachesTo": { "compatibleTypes": "->Parameters->" }, - "icon": "time-period", "propertyNameAtParent": "timeFrame" }, { "type": "Slippage", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#slippage", "menuItems": [ { - "action": "Configure Slippage", - "label": "Configure Slippage", - "iconPathOn": "settings", - "iconPathOff": "settings", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "actionFunction": "uiObject.configEditor.activate" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Slippage", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], "initialValues": { - "code": "{ \n\"positionRate\": 0.1,\n\"stopLoss\": 0.2,\n\"takeProfit\": 0.3\n}" + "config": "{ \n\"positionRate\": 0.1,\n\"stopLoss\": 0.2,\n\"takeProfit\": 0.3\n}" }, "addLeftIcons": true, "editors": { @@ -2178,32 +7941,30 @@ "chainAttachesTo": { "compatibleTypes": "->Parameters->" }, - "icon": "support", "propertyNameAtParent": "slippage" }, { "type": "Fee Structure", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#fee-structure", "menuItems": [ { - "action": "Configure Fee Structure", - "label": "Configure Fee Structure", - "iconPathOn": "settings", - "iconPathOff": "settings", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "actionFunction": "uiObject.configEditor.activate" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Fee Structure", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], "initialValues": { - "code": "{ \n\"maker\": 0.15,\n\"taker\": 0.25\n}" + "config": "{ \n\"maker\": 0.1,\n\"taker\": 0.1\n}" }, "addLeftIcons": true, "editors": { @@ -2213,12 +7974,142 @@ "chainAttachesTo": { "compatibleTypes": "->Parameters->" }, - "icon": "sitemap", "propertyNameAtParent": "feeStructure" }, + { + "type": "Snapshots", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "initialValues": { + "config": "{ \n\"strategy\": true,\n\"position\": true\n}" + }, + "addLeftIcons": true, + "editors": { + "config": true + }, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Parameters->" + }, + "propertyNameAtParent": "snapshots" + }, + { + "type": "Heartbeats", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "initialValues": { + "config": "{ \n\"date\": true,\n\"candleIndex\": false\n}" + }, + "addLeftIcons": true, + "editors": { + "config": true + }, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Parameters->" + }, + "propertyNameAtParent": "heartbeats" + }, + { + "type": "User Defined Parameters", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "initialValues": { + "config": "{ \n\"param1Name\": \"A text string value example\",\n\"param2Name\": 0\n}" + }, + "addLeftIcons": true, + "editors": { + "config": true + }, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Parameters->" + }, + "propertyNameAtParent": "userDefinedParameters" + }, + { + "type": "Time Frames Filter", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "initialValues": { + "config": "{ \n\"dailyTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n\"marketTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\"]\n}" + }, + "addLeftIcons": true, + "editors": { + "config": true + }, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Indicator Bot Instance->" + }, + "propertyNameAtParent": "timeFramesFilter" + }, { "type": "Paper Trading Session", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#paper-trading-session", "menuItems": [ { "action": "Run Session", @@ -2232,39 +8123,45 @@ "secondaryWorkDoneLabel": "Session Stopped", "secondaryWorkFailedLabel": "Session Cannot be Stopped", "secondaryIcon": "stop", - "iconPathOn": "paper-plane", - "iconPathOff": "paper-plane", + "iconPathOn": "run", + "iconPathOff": "run", "actionFunction": "payload.onMenuItemClick" }, { - "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "parameters", - "label": "Add Parameters", - "relatedUiObject": "Parameters", + "action": "Resume Session", + "label": "Resume", + "workingLabel": "Resume Request Sent", + "workDoneLabel": "Session Running", + "workFailedLabel": "Session Cannot be Resumed", + "secondaryAction": "Stop Session", + "secondaryLabel": "Stop", + "secondaryWorkingLabel": "Stopping...", + "secondaryWorkDoneLabel": "Session Stopped", + "secondaryWorkFailedLabel": "Session Cannot be Stopped", + "secondaryIcon": "stop", + "iconPathOn": "resume", + "iconPathOff": "resume", "actionFunction": "payload.onMenuItemClick" }, { - "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "socialBots", - "label": "Add Social Bots", - "relatedUiObject": "Social Bots", - "actionFunction": "payload.onMenuItemClick" - }, - { - "action": "Configure Session", - "label": "Configure Session", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Session", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -2272,7 +8169,7 @@ ], "isTitleAllwaysVisible": true, "initialValues": { - "code": "{ \n\"folderName\": \"Type here the folder name where you want the logs of this process to be stored to.\"\n}" + "config": "{ \n\"folderName\": \"\"\n}" }, "addLeftIcons": true, "editors": { @@ -2285,7 +8182,6 @@ "chainAttachesTo": { "compatibleTypes": "->Trading Process Instance->" }, - "icon": "session-paper-trading", "properties": [ { "name": "parameters", @@ -2293,6 +8189,18 @@ "childType": "Parameters", "autoAdd": true }, + { + "name": "tradingSystemReference", + "type": "node", + "childType": "Trading System Reference", + "autoAdd": true + }, + { + "name": "tradingEngineReference", + "type": "node", + "childType": "Trading Engine Reference", + "autoAdd": true + }, { "name": "socialBots", "type": "node", @@ -2303,7 +8211,6 @@ }, { "type": "Forward Testing Session", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#forward-testing-session", "menuItems": [ { "action": "Run Session", @@ -2317,39 +8224,45 @@ "secondaryWorkDoneLabel": "Session Stopped", "secondaryWorkFailedLabel": "Session Cannot be Stopped", "secondaryIcon": "stop", - "iconPathOn": "paper-plane", - "iconPathOff": "paper-plane", + "iconPathOn": "run", + "iconPathOff": "run", "actionFunction": "payload.onMenuItemClick" }, { - "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "parameters", - "label": "Add Parameters", - "relatedUiObject": "Parameters", + "action": "Resume Session", + "label": "Resume", + "workingLabel": "Resume Request Sent", + "workDoneLabel": "Session Running", + "workFailedLabel": "Session Cannot be Resumed", + "secondaryAction": "Stop Session", + "secondaryLabel": "Stop", + "secondaryWorkingLabel": "Stopping...", + "secondaryWorkDoneLabel": "Session Stopped", + "secondaryWorkFailedLabel": "Session Cannot be Stopped", + "secondaryIcon": "stop", + "iconPathOn": "resume", + "iconPathOff": "resume", "actionFunction": "payload.onMenuItemClick" }, { - "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "socialBots", - "label": "Add Social Bots", - "relatedUiObject": "Social Bots", - "actionFunction": "payload.onMenuItemClick" - }, - { - "action": "Configure Session", - "label": "Configure Session", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Session", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -2357,7 +8270,7 @@ ], "isTitleAllwaysVisible": true, "initialValues": { - "code": "{ \n\"folderName\": \"Type here the folder name where you want the logs of this process to be stored to.\",\n\"balancePercentage\": \"Type here the the % of the balance to be used in this test.\"\n}" + "config": "{ \n\"folderName\": \"Type the name of the folder where you wish to store the logs of this session\",\n\"balancePercentage\": \"Type the percentage of the balance to be used in this test\"\n}" }, "addLeftIcons": true, "editors": { @@ -2370,7 +8283,6 @@ "chainAttachesTo": { "compatibleTypes": "->Trading Process Instance->" }, - "icon": "session-forward-testing", "properties": [ { "name": "parameters", @@ -2378,6 +8290,18 @@ "childType": "Parameters", "autoAdd": true }, + { + "name": "tradingSystemReference", + "type": "node", + "childType": "Trading System Reference", + "autoAdd": true + }, + { + "name": "tradingEngineReference", + "type": "node", + "childType": "Trading Engine Reference", + "autoAdd": true + }, { "name": "socialBots", "type": "node", @@ -2387,14 +8311,13 @@ "propertyNameAtParent": "session" }, { - "type": "Key Instance", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#key-instance", + "type": "Key Reference", "menuItems": [ { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This Key Instance", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -2406,17 +8329,15 @@ "addLeftIcons": true, "level": 5, "chainAttachesTo": { - "compatibleTypes": "->Market Reference->" + "compatibleTypes": "->Task->" }, "referenceAttachesTo": { "compatibleTypes": "->Exchange Account Key->" }, - "icon": "login", - "propertyNameAtParent": "keyInstance" + "propertyNameAtParent": "keyReference" }, { "type": "Live Trading Session", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#live-trading-session", "menuItems": [ { "action": "Run Session", @@ -2430,39 +8351,45 @@ "secondaryWorkDoneLabel": "Session Stopped", "secondaryWorkFailedLabel": "Session Cannot be Stopped", "secondaryIcon": "stop", - "iconPathOn": "paper-plane", - "iconPathOff": "paper-plane", + "iconPathOn": "run", + "iconPathOff": "run", "actionFunction": "payload.onMenuItemClick" }, { - "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "parameters", - "label": "Add Parameters", - "relatedUiObject": "Parameters", + "action": "Resume Session", + "label": "Resume", + "workingLabel": "Resume Request Sent", + "workDoneLabel": "Session Running", + "workFailedLabel": "Session Cannot be Resumed", + "secondaryAction": "Stop Session", + "secondaryLabel": "Stop", + "secondaryWorkingLabel": "Stopping...", + "secondaryWorkDoneLabel": "Session Stopped", + "secondaryWorkFailedLabel": "Session Cannot be Stopped", + "secondaryIcon": "stop", + "iconPathOn": "resume", + "iconPathOff": "resume", "actionFunction": "payload.onMenuItemClick" }, { - "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "socialBots", - "label": "Add Social Bots", - "relatedUiObject": "Social Bots", - "actionFunction": "payload.onMenuItemClick" - }, - { - "action": "Configure Session", - "label": "Configure Session", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Session", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -2473,6 +8400,9 @@ "editors": { "config": true }, + "initialValues": { + "config": "{ \n\"folderName\": \"Your-Session-Folder-Name\"\n}" + }, "level": 2, "referenceAttachesTo": { "compatibleTypes": "->Trading System->" @@ -2480,7 +8410,6 @@ "chainAttachesTo": { "compatibleTypes": "->Trading Process Instance->" }, - "icon": "session-live-trading", "properties": [ { "name": "parameters", @@ -2488,6 +8417,18 @@ "childType": "Parameters", "autoAdd": true }, + { + "name": "tradingSystemReference", + "type": "node", + "childType": "Trading System Reference", + "autoAdd": true + }, + { + "name": "tradingEngineReference", + "type": "node", + "childType": "Trading Engine Reference", + "autoAdd": true + }, { "name": "socialBots", "type": "node", @@ -2498,13 +8439,12 @@ }, { "type": "Sensor Bot Instance", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#sensor-bot-instance", "menuItems": [ { - "action": "Configure Bot Instance", - "label": "Configure Bot Instance", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, @@ -2518,7 +8458,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Bot Instance", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -2530,35 +8470,41 @@ "config": true }, "initialValues": { - "code": "{ \n\"startDate\": \"2020-01-01\"\n}" + "config": "{ \n\"startDate\": \"2020-01-01\"\n}" }, "level": 3, "chainAttachesTo": { "compatibleTypes": "->Task->" }, - "icon": "bot-sensor", "properties": [ { "name": "processes", "type": "array", "childType": "Sensor Process Instance", - "autoAdd": true + "autoAdd": false } ], "propertyNameAtParent": "bot" }, { "type": "Indicator Bot Instance", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#indicator-bot-instance", "menuItems": [ { - "action": "Configure Bot Instance", - "label": "Configure Bot Instance", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "timeFramesFilter", + "label": "Add Time Frames Filter", + "relatedUiObject": "Time Frames Filter", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Add UI Object", "label": "Add Process Instance", @@ -2569,7 +8515,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Bot Instance", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -2581,32 +8527,35 @@ "config": true }, "initialValues": { - "code": "{}" + "config": "{}" }, "level": 3, "chainAttachesTo": { "compatibleTypes": "->Task->" }, - "icon": "bot-indicator", "properties": [ { "name": "processes", "type": "array", "childType": "Indicator Process Instance", - "autoAdd": true + "autoAdd": false + }, + { + "name": "timeFramesFilter", + "type": "node", + "childType": "Time Frames Filter" } ], "propertyNameAtParent": "bot" }, { "type": "Data Mine", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#data-mine", "menuItems": [ { - "action": "Configure Data Mine", - "label": "Configure Data Mine", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, @@ -2622,6 +8571,61 @@ "relatedUiObject": "Indicator Bot", "actionFunction": "payload.onMenuItemClick" }, + { + "action": "Add UI Object", + "label": "Add Plotter", + "relatedUiObject": "Plotter", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "isTitleAllwaysVisible": true, + "isHierarchyHead": true, + "addLeftIcons": true, + "editors": { + "config": true + }, + "level": 0, + "initialValues": { + "config": "{ \n\"codeName\": \"Type a name with no spaces or dashes\"\n}" + }, + "properties": [ + { + "name": "sensorBots", + "type": "array", + "childType": "Sensor Bot" + }, + { + "name": "indicatorBots", + "type": "array", + "childType": "Indicator Bot" + }, + { + "name": "plotters", + "type": "array", + "childType": "Plotter" + } + ] + }, + { + "type": "Trading Mine", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "dontShowAtFullscreen": true, + "actionFunction": "uiObject.configEditor.activate" + }, { "action": "Add UI Object", "label": "Add Trading Bot", @@ -2638,7 +8642,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Data Mine", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -2650,22 +8654,11 @@ "editors": { "config": true }, - "level": 2, - "icon": "data-mine", + "level": 0, "initialValues": { - "code": "{ \n\"codeName\": \"Write here a name with no spaces or dashes.\"\n}" + "config": "{ \n\"codeName\": \"Type a name with no spaces or dashes\"\n}" }, "properties": [ - { - "name": "sensorBots", - "type": "array", - "childType": "Sensor Bot" - }, - { - "name": "indicatorBots", - "type": "array", - "childType": "Indicator Bot" - }, { "name": "tradingBots", "type": "array", @@ -2676,16 +8669,16 @@ "type": "array", "childType": "Plotter" } - ] + ] }, { "type": "Sensor Bot", "menuItems": [ { - "action": "Configure Bot", - "label": "Configure Bot", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, @@ -2705,7 +8698,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Sensor Bot", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -2717,13 +8710,12 @@ "config": true }, "initialValues": { - "code": "{ \n\"codeName\": \"\"\n}" + "config": "{ \n \"codeName\": \"\"\n}" }, - "level": 0, + "level": 1, "chainAttachesTo": { "compatibleTypes": "->Data Mine->" }, - "icon": "bot-sensor", "properties": [ { "name": "processes", @@ -2742,13 +8734,12 @@ }, { "type": "Process Definition", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#process-definition", "menuItems": [ { - "action": "Configure Process", - "label": "Configure Process", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, @@ -2762,7 +8753,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Process Definition", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -2774,13 +8765,12 @@ "config": true }, "initialValues": { - "code": "{ \n\"codeName\": \"\"\n}" + "config": "{ \n \"codeName\": \"Multi-Period-Market|Daily\", \n \"normalWaitTime\": 0, \n \"retryWaitTime\": 10000, \n \"framework\": { \n \"name\": \"Multi-Period-Market|Daily\" \n }\n}" }, "level": 1, "chainAttachesTo": { "compatibleTypes": "->Sensor Bot->Indicator Bot->Trading Bot->" }, - "icon": "process-definition", "properties": [ { "name": "processOutput", @@ -2817,7 +8807,6 @@ }, { "type": "Process Output", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#process-output", "menuItems": [ { "action": "Add UI Object", @@ -2825,11 +8814,26 @@ "relatedUiObject": "Output Dataset", "actionFunction": "payload.onMenuItemClick" }, + { + "action": "Add UI Object", + "label": "Add Output Dataset Folder", + "relatedUiObject": "Output Dataset Folder", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add All Output Datasets", + "label": "Add All Output Datasets", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Output Dataset", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Process Output", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -2840,20 +8844,24 @@ "chainAttachesTo": { "compatibleTypes": "->Process Definition->" }, - "icon": "process-output", "properties": [ { "name": "outputDatasets", "type": "array", "childType": "Output Dataset", - "autoAdd": true + "autoAdd": false + }, + { + "name": "outputDatasetFolders", + "type": "array", + "childType": "Output Dataset Folder", + "autoAdd": false } ], "propertyNameAtParent": "processOutput" }, { "type": "Process Dependencies", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#process-dependencies", "menuItems": [ { "action": "Add UI Object", @@ -2861,6 +8869,21 @@ "relatedUiObject": "Status Dependency", "actionFunction": "payload.onMenuItemClick" }, + { + "action": "Add UI Object", + "label": "Add Data Mine Dependencies", + "relatedUiObject": "Data Mine Data Dependencies", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add All Data Mine Dependencies", + "label": "Add All Data Mine Dependencies", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Data Mine Data Dependencies", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Add UI Object", "label": "Add Data Dependency", @@ -2871,7 +8894,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Dependencies", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -2882,7 +8905,6 @@ "chainAttachesTo": { "compatibleTypes": "->Process Definition->" }, - "icon": "process-dependencies", "properties": [ { "name": "statusDependencies", @@ -2894,20 +8916,25 @@ "name": "dataDependencies", "type": "array", "childType": "Data Dependency", - "autoAdd": true + "autoAdd": false + }, + { + "name": "dataMineDataDependencies", + "type": "array", + "childType": "Data Mine Data Dependencies", + "autoAdd": false } ], "propertyNameAtParent": "processDependencies" }, { "type": "Status Dependency", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#status-dependency", "menuItems": [ { - "action": "Configure Status Dependency", - "label": "Config Status Dependency", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, @@ -2915,14 +8942,14 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Status Dependency", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], "initialValues": { - "code": "{ \n\"mainUtility\": \"Self Reference|Market Starting Point|Market Ending Point\"\n}" + "config": "{ \n\"mainUtility\": \"Self Reference|Market Starting Point|Market Ending Point\"\n}" }, "addLeftIcons": true, "editors": { @@ -2940,18 +8967,16 @@ "chainAttachesTo": { "compatibleTypes": "->Process Dependencies->" }, - "icon": "status-dependency", "propertyNameAtParent": "statusDependencies" }, { "type": "Status Report", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#status-report", "menuItems": [ { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Status Report", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -2962,18 +8987,16 @@ "chainAttachesTo": { "compatibleTypes": "->Process Definition->" }, - "icon": "status-report", "propertyNameAtParent": "statusReport" }, { "type": "Execution Started Event", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#execution-started-event", "menuItems": [ { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Event", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -2990,20 +9013,18 @@ "compatibleTypes": "->Execution Finished Event->" }, "chainAttachesTo": { - "compatibleTypes": "->Process Definition->" + "compatibleTypes": "->Process Definition->Trading Process Instance->" }, - "icon": "execution-started-event", "propertyNameAtParent": "executionStartedEvent" }, { "type": "Execution Finished Event", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#execution-finished-event", "menuItems": [ { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Event", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3014,18 +9035,108 @@ "chainAttachesTo": { "compatibleTypes": "->Process Definition->" }, - "icon": "execution-finished-event", "propertyNameAtParent": "executionFinishedEvent" }, { - "type": "Product Definition", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#product-definition", + "type": "Output Dataset Folder", "menuItems": [ { - "action": "Configure Product", - "label": "Configure Product", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Add UI Object", + "label": "Add Output Dataset", + "relatedUiObject": "Output Dataset", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Output Dataset Folder", + "relatedUiObject": "Output Dataset Folder", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Process Output->Output Dataset Folder->" + }, + "properties": [ + { + "name": "outputDatasets", + "type": "array", + "childType": "Output Dataset", + "autoAdd": false + }, + { + "name": "outputDatasetFolders", + "type": "array", + "childType": "Output Dataset Folder", + "autoAdd": false + } + ], + "propertyNameAtParent": "outputDatasetFolders" + }, + { + "type": "Product Definition Folder", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Product Definition", + "relatedUiObject": "Product Definition", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Product Definition Folder", + "relatedUiObject": "Product Definition Folder", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Trading Bot->Product Definition Folder->" + }, + "properties": [ + { + "name": "products", + "type": "array", + "childType": "Product Definition", + "autoAdd": false + }, + { + "name": "productDefinitionFolders", + "type": "array", + "childType": "Product Definition Folder", + "autoAdd": false + } + ], + "propertyNameAtParent": "productDefinitionFolders" + }, + { + "type": "Product Definition", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, @@ -3053,7 +9164,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Product Definition", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3065,16 +9176,15 @@ "config": true }, "initialValues": { - "code": "{ \n\"codeName\": \"\"\n}" + "config": "{ \n \"codeName\": \"Product-Name\", \n \"singularVariableName\": \"productName\", \n \"pluralVariableName\": \"productNames\"\n}" }, "level": 3, "referenceAttachesTo": { "compatibleTypes": "->Plotter Module->" }, "chainAttachesTo": { - "compatibleTypes": "->Sensor Bot->Indicator Bot->Trading Bot->" + "compatibleTypes": "->Sensor Bot->Indicator Bot->Trading Bot->Product Definition Folder->" }, - "icon": "product-definition", "properties": [ { "name": "datasets", @@ -3103,13 +9213,12 @@ }, { "type": "Dataset Definition", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#dataset-definition", "menuItems": [ { - "action": "Configure Definition", - "label": "Configure Definition", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, @@ -3117,7 +9226,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Dataset", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3129,24 +9238,22 @@ "config": true }, "initialValues": { - "code": "{ \n\"codeName\": \"\"\n}" + "config": "{ \n\"configuration\": \"Get the appropriate configuration from the documentation\"\n}" }, "level": 2, "chainAttachesTo": { "compatibleTypes": "->Product Definition->" }, - "icon": "dataset-definition", "propertyNameAtParent": "datasets" }, { "type": "Indicator Bot", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#indicator-bot", "menuItems": [ { - "action": "Configure Bot", - "label": "Configure Bot", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, @@ -3166,7 +9273,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Indicator Bot", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3178,13 +9285,12 @@ "config": true }, "initialValues": { - "code": "{ \n\"codeName\": \"\"\n}" + "config": "{ \n \"codeName\": \"\"\n}" }, "level": 3, "chainAttachesTo": { "compatibleTypes": "->Data Mine->" }, - "icon": "bot-indicator", "properties": [ { "name": "processes", @@ -3203,13 +9309,12 @@ }, { "type": "Output Dataset", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#output-dataset", "menuItems": [ { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Output Dataset", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3218,7 +9323,7 @@ "isTitleAllwaysVisible": true, "title": [ "Use Reference Parent", - "Use Reference Parent Parent", + "Use Reference Parent Parent" ], "addLeftIcons": true, "level": 3, @@ -3226,20 +9331,18 @@ "compatibleTypes": "->Dataset Definition->" }, "chainAttachesTo": { - "compatibleTypes": "->Process Output->" + "compatibleTypes": "->Process Output->Output Dataset Folder->" }, - "icon": "output-dataset", "propertyNameAtParent": "outputDatasets" }, { "type": "Data Dependency", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#data-dependency", "menuItems": [ { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Data Dependency", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3258,12 +9361,10 @@ "chainAttachesTo": { "compatibleTypes": "->Process Dependencies->" }, - "icon": "data-dependency", "propertyNameAtParent": "dataDependencies" }, { "type": "Record Definition", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#record-definition", "menuItems": [ { "action": "Add UI Object", @@ -3275,7 +9376,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Record Definition", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3286,7 +9387,6 @@ "chainAttachesTo": { "compatibleTypes": "->Product Definition->" }, - "icon": "record-definition", "properties": [ { "name": "properties", @@ -3299,13 +9399,12 @@ }, { "type": "Record Property", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#record-property", "menuItems": [ { - "action": "Configure Property", - "label": "Configure Property", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, @@ -3321,14 +9420,14 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Record Property", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], "initialValues": { - "code": "{ \n\"codeName\": \"\",\n\"isString\": false,\n\"isCalculated\": false\n}" + "config": "{ \n \"codeName\": \"\",\n \"isString\": false,\n \"isCalculated\": false\n}" }, "isTitleAllwaysVisible": true, "addLeftIcons": true, @@ -3339,7 +9438,6 @@ "chainAttachesTo": { "compatibleTypes": "->Record Definition->" }, - "icon": "record-property", "properties": [ { "name": "formula", @@ -3351,13 +9449,12 @@ }, { "type": "Formula", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#formula", "menuItems": [ { - "action": "Edit Formula", - "label": "Edit Formula", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Edit", + "label": "Edit", + "iconPathOn": "javascript-code", + "iconPathOff": "javascript-code", "dontShowAtFullscreen": true, "actionFunction": "uiObject.formulaEditor.activate" }, @@ -3365,7 +9462,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This Formula", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3376,18 +9473,50 @@ "formula": true }, "initialValues": { - "code": "// Write your Formula code here." + "code": "// Type your formula" }, "level": 4, "chainAttachesTo": { - "compatibleTypes": "->Position Size->Position Rate->Phase->Announcement->Record Property->" + "compatibleTypes": "->Target Size In Base Asset->Target Size In Quoted Asset->Target Rate->Phase->Record Property->Simulated Actual Rate->Situation->Indicator Function->" }, - "icon": "pipette", "propertyNameAtParent": "formula" }, + { + "type": "Announcement Formula", + "menuItems": [ + { + "action": "Edit", + "label": "Edit", + "iconPathOn": "javascript-code", + "iconPathOff": "javascript-code", + "dontShowAtFullscreen": true, + "actionFunction": "uiObject.formulaEditor.activate" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "editors": { + "formula": true + }, + "initialValues": { + "code": "// Type your formula" + }, + "level": 4, + "chainAttachesTo": { + "compatibleTypes": "->Announcement->" + }, + "propertyNameAtParent": "announcementFormula" + }, { "type": "Calculations Procedure", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#calculations-procedure", "menuItems": [ { "action": "Add UI Object", @@ -3409,7 +9538,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Procedure", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3420,7 +9549,6 @@ "chainAttachesTo": { "compatibleTypes": "->Product Definition->" }, - "icon": "calculations-procedure", "properties": [ { "name": "initialization", @@ -3439,7 +9567,6 @@ }, { "type": "Procedure Initialization", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#procedure-initialization", "menuItems": [ { "action": "Add UI Object", @@ -3453,7 +9580,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Initialization", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3464,7 +9591,6 @@ "chainAttachesTo": { "compatibleTypes": "->Calculations Procedure->Data Building Procedure->" }, - "icon": "procedure-initialization", "properties": [ { "name": "javascriptCode", @@ -3477,7 +9603,6 @@ }, { "type": "Procedure Loop", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#procedure-loop", "menuItems": [ { "action": "Add UI Object", @@ -3491,7 +9616,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Procedure Loop", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3502,7 +9627,6 @@ "chainAttachesTo": { "compatibleTypes": "->Calculations Procedure->Data Building Procedure->" }, - "icon": "procedure-loop", "properties": [ { "name": "javascriptCode", @@ -3515,7 +9639,6 @@ }, { "type": "Data Building Procedure", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#data-building-procedure", "menuItems": [ { "action": "Add UI Object", @@ -3537,7 +9660,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Procedure", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3548,7 +9671,6 @@ "chainAttachesTo": { "compatibleTypes": "->Product Definition->" }, - "icon": "data-building-procedure", "properties": [ { "name": "loop", @@ -3569,10 +9691,10 @@ "type": "Trading Bot", "menuItems": [ { - "action": "Configure Bot", - "label": "Configure Bot", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, @@ -3588,11 +9710,17 @@ "relatedUiObject": "Product Definition", "actionFunction": "payload.onMenuItemClick" }, + { + "action": "Add UI Object", + "label": "Add Product Definition Folder", + "relatedUiObject": "Product Definition Folder", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Trading Bot", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3604,13 +9732,12 @@ "config": true }, "initialValues": { - "code": "{ \n\"codeName\": \"\"\n}" + "config": "{ \n \"codeName\": \"\"\n}" }, "level": 3, "chainAttachesTo": { "compatibleTypes": "->Data Mine->" }, - "icon": "bot-trading", "properties": [ { "name": "processes", @@ -3623,19 +9750,24 @@ "type": "array", "childType": "Product Definition", "autoAdd": true + }, + { + "name": "productDefinitionFolders", + "type": "array", + "childType": "Product Definition Folder", + "autoAdd": true } ], "propertyNameAtParent": "tradingBots" }, { "type": "Plotter", - "docURL": "https://docs.superalgos.org/suite-hierarchy-data-mine.html#plotter", "menuItems": [ { - "action": "Configure Plotter", - "label": "Configure Plotter", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, @@ -3649,7 +9781,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Plotter", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3661,10 +9793,9 @@ "config": true }, "initialValues": { - "code": "{ \n\"codeName\": \"\"\n}" + "config": "{ \n \"codeName\": \"\"\n}" }, "level": 2, - "icon": "plotter", "chainAttachesTo": { "compatibleTypes": "->Data Mine->" }, @@ -3680,26 +9811,33 @@ }, { "type": "Trading System", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#trading-system", "menuItems": [ { - "action": "Configure Trading System", + "action": "Configure", "actionFunction": "uiObject.configEditor.activate", - "label": "Configure Trading System", - "iconPathOn": "html", - "iconPathOff": "html" + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" }, { "action": "Add UI Object", - "label": "Add Strategy", - "relatedUiObject": "Strategy", + "label": "Add Trading Strategy", + "relatedUiObject": "Trading Strategy", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "dynamicIndicators", + "label": "Add Dynamic Indicators", + "relatedUiObject": "Dynamic Indicators", "actionFunction": "payload.onMenuItemClick" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Trading System", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3709,38 +9847,42 @@ "isHierarchyHead": true, "addLeftIcons": true, "level": 0, - "icon": "analysis", "editors": { "config": true }, "initialValues": { - "code": "{ \n\"codeName\": \"\"\n}" + "config": "{ \n \"codeName\": \"\"\n}" }, "properties": [ { - "name": "strategies", + "name": "tradingStrategies", "type": "array", - "childType": "Strategy", + "childType": "Trading Strategy", + "autoAdd": true + }, + { + "name": "dynamicIndicators", + "type": "node", + "childType": "Dynamic Indicators", "autoAdd": true } ], "propertyNameAtParent": "tradingSystem" }, { - "type": "Strategy", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#strategy", + "type": "Trading Strategy", "menuItems": [ { "action": "Add Missing Children", "label": "Add Missing Stages", - "relatedUiObject": "Strategy", + "relatedUiObject": "Trading Strategy", "actionFunction": "payload.onMenuItemClick" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This Strategy", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3752,7 +9894,6 @@ "chainAttachesTo": { "compatibleTypes": "->Trading System->" }, - "icon": "quality", "properties": [ { "name": "triggerStage", @@ -3779,11 +9920,10 @@ "autoAdd": true } ], - "propertyNameAtParent": "strategies" + "propertyNameAtParent": "tradingStrategies" }, { "type": "Trigger Stage", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#trigger-stage", "menuItems": [ { "action": "Add Missing Children", @@ -3801,7 +9941,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This Stage", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3810,9 +9950,8 @@ "addLeftIcons": true, "level": 2, "chainAttachesTo": { - "compatibleTypes": "->Strategy->" + "compatibleTypes": "->Trading Strategy->" }, - "icon": "stage-trigger", "properties": [ { "name": "triggerOn", @@ -3842,7 +9981,6 @@ }, { "type": "Trigger On Event", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#trigger-on-event", "menuItems": [ { "action": "Add UI Object", @@ -3860,7 +9998,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This Event", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3871,7 +10009,6 @@ "chainAttachesTo": { "compatibleTypes": "->Trigger Stage->" }, - "icon": "stage-trigger-trigger-on", "properties": [ { "name": "situations", @@ -3889,7 +10026,6 @@ }, { "type": "Trigger Off Event", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#trigger-off-event", "menuItems": [ { "action": "Add UI Object", @@ -3907,7 +10043,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This Event", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3918,7 +10054,6 @@ "chainAttachesTo": { "compatibleTypes": "->Trigger Stage->" }, - "icon": "stage-trigger-trigger-off", "properties": [ { "name": "situations", @@ -3936,7 +10071,6 @@ }, { "type": "Take Position Event", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#take-position-event", "menuItems": [ { "action": "Add UI Object", @@ -3954,7 +10088,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This Event", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -3965,7 +10099,6 @@ "chainAttachesTo": { "compatibleTypes": "->Trigger Stage->" }, - "icon": "stage-trigger-take-position", "properties": [ { "name": "situations", @@ -3983,22 +10116,11 @@ }, { "type": "Open Stage", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#open-stage", "menuItems": [ { - "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "initialDefinition", - "label": "Add Initial Definition", - "relatedUiObject": "Initial Definition", - "actionFunction": "payload.onMenuItemClick" - }, - { - "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "openExecution", - "label": "Add Open Execution", - "relatedUiObject": "Open Execution", + "action": "Add Missing Children", + "label": "Add Missing Items", + "relatedUiObject": "Open Stage", "actionFunction": "payload.onMenuItemClick" }, { @@ -4011,7 +10133,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This Stage", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -4020,14 +10142,13 @@ "addLeftIcons": true, "level": 1, "chainAttachesTo": { - "compatibleTypes": "->Strategy->" + "compatibleTypes": "->Trading Strategy->" }, - "icon": "stage-open", "properties": [ { - "name": "initialDefinition", + "name": "initialTargets", "type": "node", - "childType": "Initial Definition", + "childType": "Initial Targets", "autoAdd": true }, { @@ -4036,6 +10157,12 @@ "childType": "Open Execution", "autoAdd": true }, + { + "name": "closeStageEvent", + "type": "node", + "childType": "Close Stage Event", + "autoAdd": true + }, { "name": "announcements", "type": "array", @@ -4045,20 +10172,64 @@ "propertyNameAtParent": "openStage" }, { - "type": "Initial Definition", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#initial-definition", + "type": "Close Stage Event", "menuItems": [ { - "action": "Add Missing Children", - "label": "Add Missing Items", - "relatedUiObject": "Initial Definition", + "action": "Add UI Object", + "label": "Add Situation", + "relatedUiObject": "Situation", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Announcement", + "relatedUiObject": "Announcement", "actionFunction": "payload.onMenuItemClick" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This Definition", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Open Stage->Close Stage->" + }, + "properties": [ + { + "name": "situations", + "type": "array", + "childType": "Situation", + "autoAdd": true + }, + { + "name": "announcements", + "type": "array", + "childType": "Announcement" + } + ], + "propertyNameAtParent": "closeStageEvent" + }, + { + "type": "Initial Targets", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Items", + "relatedUiObject": "Initial Targets", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -4067,40 +10238,32 @@ "addLeftIcons": true, "level": 2, "chainAttachesTo": { - "compatibleTypes": "->Open Stage->" + "compatibleTypes": "->Open Stage->Close Stage->" }, - "icon": "initial-definition", "properties": [ { - "name": "stopLoss", + "name": "targetRate", "type": "node", - "childType": "Initial Stop", + "childType": "Target Rate", "autoAdd": true }, { - "name": "takeProfit", + "name": "targetSizeInBaseAsset", "type": "node", - "childType": "Initial Take Profit", + "childType": "Target Size In Base Asset", "autoAdd": true }, { - "name": "positionSize", + "name": "targetSizeInQuotedAsset", "type": "node", - "childType": "Position Size", - "autoAdd": true - }, - { - "name": "positionRate", - "type": "node", - "childType": "Position Rate", + "childType": "Target Size In Quoted Asset", "autoAdd": true } ], - "propertyNameAtParent": "initialDefinition" + "propertyNameAtParent": "initialTargets" }, { - "type": "Stop", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#stop", + "type": "Managed Stop Loss", "menuItems": [ { "action": "Add UI Object", @@ -4112,7 +10275,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This Item", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -4123,7 +10286,6 @@ "chainAttachesTo": { "compatibleTypes": "->Manage Stage->Initial Definition->" }, - "icon": "stop", "properties": [ { "name": "phases", @@ -4132,48 +10294,10 @@ "autoAdd": true } ], - "propertyNameAtParent": "stopLoss" - }, - { - "type": "Initial Stop", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#initial-stop", - "menuItems": [ - { - "action": "Add UI Object", - "label": "Add Phase", - "relatedUiObject": "Phase", - "actionFunction": "payload.onMenuItemClick" - }, - { - "action": "Delete UI Object", - "askConfirmation": true, - "confirmationLabel": "Confirm to Delete", - "label": "Delete This Item", - "iconPathOn": "delete", - "iconPathOff": "delete", - "actionFunction": "payload.onMenuItemClick" - } - ], - "addLeftIcons": true, - "level": 3, - "chainAttachesTo": { - "compatibleTypes": "->Manage Stage->Initial Definition->" - }, - "icon": "stop", - "properties": [ - { - "name": "phases", - "type": "array", - "maxItems": 1, - "childType": "Phase", - "autoAdd": true - } - ], - "propertyNameAtParent": "stopLoss" + "propertyNameAtParent": "managedStopLoss" }, { "type": "Phase", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#phase-0", "menuItems": [ { "action": "Add UI Object", @@ -4193,8 +10317,8 @@ }, { "action": "Add UI Object", - "label": "Add Move to Phase Event", - "relatedUiObject": "Move to Phase Event", + "label": "Add Move To Phase Event", + "relatedUiObject": "Move To Phase Event", "actionFunction": "payload.onMenuItemClick" }, { @@ -4207,7 +10331,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This Phase", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -4217,9 +10341,8 @@ "level": 1, "chainedToSameType": true, "chainAttachesTo": { - "compatibleTypes": "->Stop->Take Profit->Initial Stop->Initial Take Profit->Phase->" + "compatibleTypes": "->Managed Stop->Managed Take Profit->Phase->" }, - "icon": "placeholder", "properties": [ { "name": "formula", @@ -4235,7 +10358,7 @@ { "name": "moveToPhaseEvents", "type": "array", - "childType": "Move to Phase Event" + "childType": "Move To Phase Event" }, { "name": "announcements", @@ -4247,7 +10370,6 @@ }, { "type": "Next Phase Event", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#next-phase-event", "menuItems": [ { "action": "Add UI Object", @@ -4265,7 +10387,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This Event", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -4276,7 +10398,6 @@ "chainAttachesTo": { "compatibleTypes": "->Phase->" }, - "icon": "next-phase-event", "properties": [ { "name": "situations", @@ -4293,7 +10414,7 @@ "propertyNameAtParent": "nextPhaseEvent" }, { - "type": "Move to Phase Event", + "type": "Move To Phase Event", "docURL": "", "menuItems": [ { @@ -4312,7 +10433,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This Event", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -4326,7 +10447,6 @@ "referenceAttachesTo": { "compatibleTypes": "->Phase->" }, - "icon": "move-to-phase-event", "properties": [ { "name": "situations", @@ -4343,8 +10463,7 @@ "propertyNameAtParent": "moveToPhaseEvents" }, { - "type": "Take Profit", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#take-profit", + "type": "Managed Take Profit", "menuItems": [ { "action": "Add UI Object", @@ -4356,7 +10475,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This Item", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -4367,7 +10486,6 @@ "chainAttachesTo": { "compatibleTypes": "->Manage Stage->Initial Definition->" }, - "icon": "stage-open-take-profit", "properties": [ { "name": "phases", @@ -4376,48 +10494,10 @@ "autoAdd": true } ], - "propertyNameAtParent": "takeProfit" + "propertyNameAtParent": "managedTakeProfit" }, { - "type": "Initial Take Profit", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#initial-take-profit", - "menuItems": [ - { - "action": "Add UI Object", - "label": "Add Phase", - "relatedUiObject": "Phase", - "actionFunction": "payload.onMenuItemClick" - }, - { - "action": "Delete UI Object", - "askConfirmation": true, - "confirmationLabel": "Confirm to Delete", - "label": "Delete This Item", - "iconPathOn": "delete", - "iconPathOff": "delete", - "actionFunction": "payload.onMenuItemClick" - } - ], - "addLeftIcons": true, - "level": 3, - "chainAttachesTo": { - "compatibleTypes": "->Manage Stage->Initial Definition->" - }, - "icon": "stage-open-take-profit", - "properties": [ - { - "name": "phases", - "type": "array", - "maxItems": 1, - "childType": "Phase", - "autoAdd": true - } - ], - "propertyNameAtParent": "takeProfit" - }, - { - "type": "Position Size", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#position-size", + "type": "Target Size In Base Asset", "menuItems": [ { "action": "Add UI Object", @@ -4431,7 +10511,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Position Size", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -4440,9 +10520,8 @@ "addLeftIcons": true, "level": 4, "chainAttachesTo": { - "compatibleTypes": "->Initial Definition->" + "compatibleTypes": "->Initial Targets->" }, - "icon": "stage-open-position-size", "properties": [ { "name": "formula", @@ -4451,11 +10530,10 @@ "autoAdd": true } ], - "propertyNameAtParent": "positionSize" + "propertyNameAtParent": "targetSizeInBaseAsset" }, { - "type": "Position Rate", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#position-rate", + "type": "Target Size In Quoted Asset", "menuItems": [ { "action": "Add UI Object", @@ -4469,18 +10547,17 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Position Rate", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], "addLeftIcons": true, - "level": 5, + "level": 4, "chainAttachesTo": { - "compatibleTypes": "->Initial Definition->" + "compatibleTypes": "->Initial Targets->" }, - "icon": "stage-open-postion-rate", "properties": [ { "name": "formula", @@ -4489,17 +10566,94 @@ "autoAdd": true } ], - "propertyNameAtParent": "positionRate" + "propertyNameAtParent": "targetSizeInQuotedAsset" }, { - "type": "Open Execution", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#open-execution", + "type": "Target Rate", "menuItems": [ + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "formula", + "label": "Add Formula", + "relatedUiObject": "Formula", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 5, + "chainAttachesTo": { + "compatibleTypes": "->Initial Targets->" + }, + "properties": [ + { + "name": "formula", + "type": "node", + "childType": "Formula", + "autoAdd": true + } + ], + "propertyNameAtParent": "targetRate" + }, + { + "type": "Order Rate", + "menuItems": [ + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "formula", + "label": "Add Formula", + "relatedUiObject": "Formula", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 5, + "chainAttachesTo": { + "compatibleTypes": "->Limit Buy Order->Limit Sell Order->" + }, + "properties": [ + { + "name": "formula", + "type": "node", + "childType": "Formula", + "autoAdd": true + } + ], + "propertyNameAtParent": "orderRate" + }, + { + "type": "Open Execution", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Execution Algorithm", + "relatedUiObject": "Execution Algorithm", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -4510,12 +10664,670 @@ "chainAttachesTo": { "compatibleTypes": "->Open Stage->" }, - "icon": "piggy-bank", - "propertyNameAtParent": "openExecution" + "propertyNameAtParent": "openExecution", + "properties": [ + { + "name": "executionAlgorithms", + "type": "array", + "childType": "Execution Algorithm" + } + ] + }, + { + "type": "Execution Algorithm", + "menuItems": [ + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, + { + "action": "Add UI Object", + "label": "Add Market Buy Order", + "relatedUiObject": "Market Buy Order", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Market Sell Order", + "relatedUiObject": "Market Sell Order", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Limit Buy Order", + "relatedUiObject": "Limit Buy Order", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Limit Sell Order", + "relatedUiObject": "Limit Sell Order", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "initialValues": { + "config": "{\n\"percentageOfStageTargetSize\": 100 \n}" + }, + "editors": { + "config": true + }, + "addLeftIcons": true, + "level": 4, + "chainAttachesTo": { + "compatibleTypes": "->Open Execution->Close Execution->" + }, + "propertyNameAtParent": "executionAlgorithms", + "properties": [ + { + "name": "marketBuyOrders", + "type": "array", + "childType": "Market Buy Order" + }, + { + "name": "marketSellOrders", + "type": "array", + "childType": "Market Sell Order" + }, + { + "name": "limitBuyOrders", + "type": "array", + "childType": "Limit Buy Order" + }, + { + "name": "limitSellOrders", + "type": "array", + "childType": "Limit Sell Order" + } + ] + }, + { + "type": "Market Buy Order", + "menuItems": [ + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "createOrderEvent", + "label": "Add Create Order Event", + "relatedUiObject": "Create Order Event", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "simulatedExchangeEvents", + "label": "Add Simulated Events", + "relatedUiObject": "Simulated Exchange Events", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "initialValues": { + "config": "{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}" + }, + "editors": { + "config": true + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Execution Algorithm->" + }, + "referenceAttachesTo": { + "compatibleTypes": "->Market Order->" + }, + "propertyNameAtParent": "marketBuyOrders", + "properties": [ + { + "name": "createOrderEvent", + "type": "node", + "childType": "Create Order Event", + "autoAdd": true + }, + { + "name": "simulatedExchangeEvents", + "type": "node", + "childType": "Simulated Exchange Events", + "autoAdd": true + } + ] + }, + { + "type": "Market Sell Order", + "menuItems": [ + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "createOrderEvent", + "label": "Add Create Order Event", + "relatedUiObject": "Create Order Event", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "simulatedExchangeEvents", + "label": "Add Simulated Events", + "relatedUiObject": "Simulated Exchange Events", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "initialValues": { + "config": "{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}" + }, + "editors": { + "config": true + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Execution Algorithm->" + }, + "referenceAttachesTo": { + "compatibleTypes": "->Market Order->" + }, + "propertyNameAtParent": "marketSellOrders", + "properties": [ + { + "name": "createOrderEvent", + "type": "node", + "childType": "Create Order Event", + "autoAdd": true + }, + { + "name": "simulatedExchangeEvents", + "type": "node", + "childType": "Simulated Exchange Events", + "autoAdd": true + } + ] + }, + { + "type": "Limit Buy Order", + "menuItems": [ + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "orderRate", + "label": "Add Order Rate", + "relatedUiObject": "Order Rate", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "createOrderEvent", + "label": "Add Create Order Event", + "relatedUiObject": "Create Order Event", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "cancelOrderEvent", + "label": "Add Cancel Order Event", + "relatedUiObject": "Cancel Order Event", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "simulatedExchangeEvents", + "label": "Add Simulated Events", + "relatedUiObject": "Simulated Exchange Events", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "initialValues": { + "config": "{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}" + }, + "editors": { + "config": true + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Execution Algorithm->" + }, + "referenceAttachesTo": { + "compatibleTypes": "->Limit Order->" + }, + "propertyNameAtParent": "limitBuyOrders", + "properties": [ + { + "name": "orderRate", + "type": "node", + "childType": "Order Rate", + "autoAdd": true + }, + { + "name": "createOrderEvent", + "type": "node", + "childType": "Create Order Event", + "autoAdd": true + }, + { + "name": "cancelOrderEvent", + "type": "node", + "childType": "Cancel Order Event" + }, + { + "name": "simulatedExchangeEvents", + "type": "node", + "childType": "Simulated Exchange Events", + "autoAdd": true + } + ] + }, + { + "type": "Limit Sell Order", + "menuItems": [ + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "orderRate", + "label": "Add Order Rate", + "relatedUiObject": "Order Rate", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "createOrderEvent", + "label": "Add Create Order Event", + "relatedUiObject": "Create Order Event", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "cancelOrderEvent", + "label": "Add Cancel Order Event", + "relatedUiObject": "Cancel Order Event", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "simulatedExchangeEvents", + "label": "Add Simulated Events", + "relatedUiObject": "Simulated Exchange Events", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "initialValues": { + "config": "{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}" + }, + "editors": { + "config": true + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Execution Algorithm->" + }, + "referenceAttachesTo": { + "compatibleTypes": "->Limit Order->" + }, + "propertyNameAtParent": "limitSellOrders", + "properties": [ + { + "name": "orderRate", + "type": "node", + "childType": "Order Rate", + "autoAdd": true + }, + { + "name": "createOrderEvent", + "type": "node", + "childType": "Create Order Event", + "autoAdd": true + }, + { + "name": "cancelOrderEvent", + "type": "node", + "childType": "Cancel Order Event" + }, + { + "name": "simulatedExchangeEvents", + "type": "node", + "childType": "Simulated Exchange Events", + "autoAdd": true + } + ] + }, + { + "type": "Create Order Event", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Situation", + "relatedUiObject": "Situation", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Announcement", + "relatedUiObject": "Announcement", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Market Buy Order->Market Sell Order->Limit Buy Order->Limit Sell Order->" + }, + "properties": [ + { + "name": "situations", + "type": "array", + "childType": "Situation", + "autoAdd": true + }, + { + "name": "announcements", + "type": "array", + "childType": "Announcement" + } + ], + "propertyNameAtParent": "createOrderEvent" + }, + { + "type": "Cancel Order Event", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Situation", + "relatedUiObject": "Situation", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Announcement", + "relatedUiObject": "Announcement", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Market Buy Order->Market Sell Order->Limit Buy Order->Limit Sell Order->" + }, + "properties": [ + { + "name": "situations", + "type": "array", + "childType": "Situation", + "autoAdd": true + }, + { + "name": "announcements", + "type": "array", + "childType": "Announcement" + } + ], + "propertyNameAtParent": "cancelOrderEvent" + }, + { + "type": "Simulated Exchange Events", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Simulated Partial Fill", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "simulatedPartialFill", + "relatedUiObject": "Simulated Partial Fill", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Simulated Actual Rate", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "simulatedActualRate", + "relatedUiObject": "Simulated Actual Rate", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Simulated Fees Paid", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "simulatedFeesPaid", + "relatedUiObject": "Simulated Fees Paid", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Market Buy Order->Market Sell Order->Limit Buy Order->Limit Sell Order->" + }, + "properties": [ + { + "name": "simulatedPartialFill", + "type": "node", + "childType": "Simulated Partial Fill", + "autoAdd": true + }, + { + "name": "simulatedActualRate", + "type": "node", + "childType": "Simulated Actual Rate", + "autoAdd": true + }, + { + "name": "simulatedFeesPaid", + "type": "node", + "childType": "Simulated Fees Paid", + "autoAdd": true + } + ], + "propertyNameAtParent": "simulatedExchangeEvents" + }, + { + "type": "Simulated Partial Fill", + "menuItems": [ + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "initialValues": { + "config": "{ \n\"fillProbability\": 1\n}" + }, + "editors": { + "config": true + }, + "addLeftIcons": true, + "level": 4, + "chainAttachesTo": { + "compatibleTypes": "->Simulated Exchange Events->" + }, + "propertyNameAtParent": "simulatedPartialFill" + }, + { + "type": "Simulated Actual Rate", + "menuItems": [ + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "formula", + "label": "Add Formula", + "relatedUiObject": "Formula", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 4, + "chainAttachesTo": { + "compatibleTypes": "->Simulated Exchange Events->" + }, + "properties": [ + { + "name": "formula", + "type": "node", + "childType": "Formula", + "autoAdd": true + } + ], + "propertyNameAtParent": "simulatedActualRate" + }, + { + "type": "Simulated Fees Paid", + "menuItems": [ + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "initialValues": { + "config": "{ \n\"percentage\": 0.1\n}" + }, + "editors": { + "config": true + }, + "addLeftIcons": true, + "level": 4, + "chainAttachesTo": { + "compatibleTypes": "->Simulated Exchange Events->" + }, + "propertyNameAtParent": "simulatedFeesPaid" }, { "type": "Manage Stage", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#manage-stage", "menuItems": [ { "action": "Add Missing Children", @@ -4533,7 +11345,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This Stage", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -4542,20 +11354,19 @@ "addLeftIcons": true, "level": 1, "chainAttachesTo": { - "compatibleTypes": "->Strategy->" + "compatibleTypes": "->Trading Strategy->" }, - "icon": "video-player", "properties": [ { - "name": "stopLoss", + "name": "managedStopLoss", "type": "node", - "childType": "Stop", + "childType": "Managed Stop Loss", "autoAdd": true }, { - "name": "takeProfit", + "name": "managedTakeProfit", "type": "node", - "childType": "Take Profit", + "childType": "Managed Take Profit", "autoAdd": true }, { @@ -4568,14 +11379,11 @@ }, { "type": "Close Stage", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#close-stage", "menuItems": [ { - "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "closeExecution", - "label": "Add Close Execution", - "relatedUiObject": "Close Execution", + "action": "Add Missing Children", + "label": "Add Missing Items", + "relatedUiObject": "Close Stage", "actionFunction": "payload.onMenuItemClick" }, { @@ -4588,7 +11396,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This Stage", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -4597,16 +11405,27 @@ "addLeftIcons": true, "level": 2, "chainAttachesTo": { - "compatibleTypes": "->Strategy->" + "compatibleTypes": "->Trading Strategy->" }, - "icon": "stage-close", "properties": [ + { + "name": "initialTargets", + "type": "node", + "childType": "Initial Targets", + "autoAdd": true + }, { "name": "closeExecution", "type": "node", "childType": "Close Execution", "autoAdd": true }, + { + "name": "closeStageEvent", + "type": "node", + "childType": "Close Stage Event", + "autoAdd": true + }, { "name": "announcements", "type": "array", @@ -4617,13 +11436,18 @@ }, { "type": "Close Execution", - "docURL": "https://docs.superalgos.org/suite-hierarchy-trading-system.html#close-execution", "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Execution Algorithm", + "relatedUiObject": "Execution Algorithm", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -4634,8 +11458,14 @@ "chainAttachesTo": { "compatibleTypes": "->Close Stage->" }, - "icon": "piggy-bank", - "propertyNameAtParent": "closeExecution" + "propertyNameAtParent": "closeExecution", + "properties": [ + { + "name": "executionAlgorithms", + "type": "array", + "childType": "Execution Algorithm" + } + ] }, { "type": "Social Bots", @@ -4650,7 +11480,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Social Bots", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -4661,7 +11491,6 @@ "chainAttachesTo": { "compatibleTypes": "->Backtesting Session->Live Trading Session->Paper Trading Session->Forward Testing Session->" }, - "icon": "social-bot", "properties": [ { "name": "bots", @@ -4679,31 +11508,30 @@ }, "menuItems": [ { - "action": "Config Telegram Bot", + "action": "Configure", "actionFunction": "uiObject.configEditor.activate", - "label": "Config Telegram Bot", - "iconPathOn": "html", - "iconPathOff": "html" + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Telegram Bot", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], "initialValues": { - "code": "{ \n\"botToken\": \"Paste here the bot token obtained from Telegram Bot Father\",\n\"chatId\": \"Write here the chat or group id where the announcements are going to be sent to, as it is a number with no quotes please.\"\n}" + "config": "{ \n\"botToken\": \"Paste the bot token obtained from Telegram Bot Father\",\n\"chatId\": \"Type or paste the chat or group id -a number with no quotes- where announcements are going to be sent to\"\n}" }, "addLeftIcons": true, "level": 4, "chainAttachesTo": { "compatibleTypes": "->Social Bots->" }, - "icon": "paper-plane", "properties": [], "propertyNameAtParent": "bots" }, @@ -4714,52 +11542,97 @@ }, "menuItems": [ { - "action": "Config Announcement", + "action": "Configure", "actionFunction": "uiObject.configEditor.activate", - "label": "Config Announcement", - "iconPathOn": "html", - "iconPathOff": "html" + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" }, { "action": "Add UI Object", "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "formula", - "label": "Add Formula", - "relatedUiObject": "Formula", + "propertyToCheckFor": "announcementFormula", + "label": "Add Announcement Formula", + "relatedUiObject": "Announcement Formula", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "announcementCondition", + "label": "Add Condition", + "relatedUiObject": "Announcement Condition", "actionFunction": "payload.onMenuItemClick" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Announcement", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], "initialValues": { - "code": "{ \n\"text\": \"Write here what you want to announce when there is no Formula.\"\n}" + "config": "{ \n\"text\": \"Type the message you wish to announce when there is no formula\"\n}" }, "addLeftIcons": true, "level": 4, "chainAttachesTo": { - "compatibleTypes": "->Trigger On Event->Trigger Off Event->Take Position Event->Next Phase Event->Move to Phase Event->Phase->Trigger Stage->Open Stage->Manage Stage->Close Stage->" + "compatibleTypes": "->Trigger On Event->Trigger Off Event->Take Position Event->Next Phase Event->Move To Phase Event->Phase->Trigger Stage->Open Stage->Manage Stage->Close Stage->Create Order Event->Cancel Order Event->" }, "properties": [ { - "name": "formula", + "name": "announcementFormula", "type": "node", - "childType": "Formula", + "childType": "Announcement Formula", + "autoAdd": true + }, + { + "name": "announcementCondition", + "type": "node", + "childType": "Announcement Condition", "autoAdd": true } ], - "icon": "promotion", "propertyNameAtParent": "announcements" }, + { + "type": "Announcement Condition", + "editors": { + "code": true + }, + "menuItems": [ + { + "action": "Configure", + "actionFunction": "uiObject.codeEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "initialValues": { + "code": "// Type here a condition that needs to be met in order to make the announcement." + }, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Announcement->" + }, + "propertyNameAtParent": "announcementCondition" + }, { "type": "Crypto Ecosystem", - "docURL": "https://docs.superalgos.org/suite-hierarchy-crypto-ecosystem.html#crypto-ecosystem", "menuItems": [ { "action": "Add UI Object", @@ -4772,20 +11645,11 @@ "label": "Add Signals Providers", "relatedUiObject": "Signals Providers", "actionFunction": "payload.onMenuItemClick" - }, - { - "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "superActions", - "label": "Add Super Actions", - "relatedUiObject": "Super Actions", - "actionFunction": "payload.onMenuItemClick" - } + } ], "isHierarchyHead": true, "addLeftIcons": true, - "level": 1, - "icon": "image", + "level": 0, "properties": [ { "name": "cryptoExchanges", @@ -4796,17 +11660,11 @@ "name": "signalsProviders", "type": "array", "childType": "Signals Providers" - }, - { - "name": "superActions", - "type": "node", - "childType": "Super Actions" - } + } ] }, { "type": "Super Actions", - "docURL": "https://docs.superalgos.org/suite-hierarchy-super-scripts.html#super-actions", "menuItems": [ { "action": "Add UI Object", @@ -4818,7 +11676,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Super Actions", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -4831,7 +11689,6 @@ "chainAttachesTo": { "compatibleTypes": "->Crypto Ecosystem->" }, - "icon": "super-action", "properties": [ { "name": "superActions", @@ -4853,7 +11710,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Signals Providers", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -4861,7 +11718,6 @@ ], "addLeftIcons": true, "level": 1, - "icon": "targeting", "chainAttachesTo": { "compatibleTypes": "->Crypto Ecosystem->" }, @@ -4879,11 +11735,11 @@ "type": "Signals Provider", "menuItems": [ { - "action": "Config Signals Provider", + "action": "Configure", "actionFunction": "uiObject.configEditor.activate", - "label": "Config Signals Provider", - "iconPathOn": "html", - "iconPathOff": "html" + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" }, { "action": "Send Webhook Test Message", @@ -4891,15 +11747,15 @@ "workingLabel": "Sending Message", "workDoneLabel": "Message Sent", "workFailedLabel": "Message not Delived", - "iconPathOn": "paper-plane", - "iconPathOff": "paper-plane", + "iconPathOn": "run", + "iconPathOff": "run", "actionFunction": "payload.onMenuItemClick" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Signals Provider", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -4907,7 +11763,6 @@ ], "addLeftIcons": true, "level": 2, - "icon": "template-target", "chainAttachesTo": { "compatibleTypes": "->Signals Providers->" }, @@ -4915,14 +11770,13 @@ "config": true }, "initialValues": { - "code": "{ \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", "properties": [] }, { "type": "Crypto Exchanges", - "docURL": "https://docs.superalgos.org/suite-hierarchy-crypto-ecosystem.html#crypto-exchanges", "menuItems": [ { "action": "Add UI Object", @@ -4943,7 +11797,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Crypto Exchanges", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -4952,7 +11806,6 @@ "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 1, - "icon": "crypto-exchanges", "chainAttachesTo": { "compatibleTypes": "->Crypto Ecosystem->" }, @@ -4968,14 +11821,13 @@ }, { "type": "Crypto Exchange", - "docURL": "https://docs.superalgos.org/suite-hierarchy-crypto-ecosystem.html#crypto-exchange", "menuItems": [ { - "action": "Config Crypto Exchange", + "action": "Configure Thise", "actionFunction": "uiObject.configEditor.activate", - "label": "Config Crypto Exchange", - "iconPathOn": "html", - "iconPathOff": "html" + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" }, { "action": "Add UI Object", @@ -5005,7 +11857,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Crypto Exchange", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -5014,12 +11866,11 @@ "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 2, - "icon": "crypto-exchange", "editors": { "config": true }, "initialValues": { - "code": "{ \n\"codeName\": \"Write here the name of the exchange here.\"\n}" + "config": "{ \n\"codeName\": \"Type the name of the exchange\"\n}" }, "chainAttachesTo": { "compatibleTypes": "->Crypto Exchanges->" @@ -5090,14 +11941,13 @@ }, { "type": "Exchange Assets", - "docURL": "https://docs.superalgos.org/suite-hierarchy-crypto-ecosystem.html#exchange-assets", "menuItems": [ { - "action": "Config Exchange Assets", + "action": "Configure", "actionFunction": "uiObject.configEditor.activate", - "label": "Config Exchange Assets", - "iconPathOn": "html", - "iconPathOff": "html" + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" }, { "action": "Add UI Object", @@ -5118,7 +11968,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Exchange Assets", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -5128,11 +11978,10 @@ "config": true }, "initialValues": { - "code": "{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}" + "config": "{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}" }, "addLeftIcons": true, "level": 3, - "icon": "exchange-assets", "chainAttachesTo": { "compatibleTypes": "->Crypto Exchange->" }, @@ -5147,20 +11996,19 @@ }, { "type": "Asset", - "docURL": "https://docs.superalgos.org/suite-hierarchy-crypto-ecosystem.html#asset", "menuItems": [ { - "action": "Config Asset", + "action": "Configure", "actionFunction": "uiObject.configEditor.activate", - "label": "Config Asset", - "iconPathOn": "html", - "iconPathOff": "html" + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Asset", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -5169,12 +12017,11 @@ "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 4, - "icon": "asset", "editors": { "config": true }, "initialValues": { - "code": "{ \n\"codeName\": \"Write here the code name of the asset here.\"\n}" + "config": "{ \n\"codeName\": \"Type the code name of the asset\"\n}" }, "chainAttachesTo": { "compatibleTypes": "->Exchange Assets->" @@ -5249,7 +12096,6 @@ }, { "type": "Exchange Markets", - "docURL": "https://docs.superalgos.org/suite-hierarchy-crypto-ecosystem.html#exchange-markets", "menuItems": [ { "action": "Add UI Object", @@ -5270,7 +12116,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Exchange Markets", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -5278,7 +12124,6 @@ ], "addLeftIcons": true, "level": 3, - "icon": "exchange-markets", "chainAttachesTo": { "compatibleTypes": "->Crypto Exchange->" }, @@ -5293,14 +12138,13 @@ }, { "type": "Market", - "docURL": "https://docs.superalgos.org/suite-hierarchy-crypto-ecosystem.html#market", "menuItems": [ { - "action": "Config Market", + "action": "Configure", "actionFunction": "uiObject.configEditor.activate", - "label": "Config Market", - "iconPathOn": "html", - "iconPathOff": "html" + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" }, { "action": "Add UI Object", @@ -5319,16 +12163,28 @@ "actionFunction": "payload.onMenuItemClick" }, { - "action": "Add UI Object", - "label": "Add Super Action", - "relatedUiObject": "Super Action", + "action": "Install Market", + "label": "Install Market", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Market", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Uninstall Market", + "label": "Uninstall Market", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Market", "actionFunction": "payload.onMenuItemClick" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Market", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -5346,22 +12202,16 @@ "type": "node", "childType": "Market Quoted Asset", "autoAdd": true - }, - { - "name": "superActions", - "type": "array", - "childType": "Super Action" } ], "addLeftIcons": true, "isTitleAllwaysVisible": true, "level": 4, - "icon": "market", "editors": { "config": true }, "initialValues": { - "code": "{ \n\"codeName\": \"Write here the name of the market.\"\n}" + "config": "{ \n\"codeName\": \"Type the name of the market\"\n}" }, "chainAttachesTo": { "compatibleTypes": "->Exchange Markets->" @@ -5370,7 +12220,6 @@ }, { "type": "Exchange Accounts", - "docURL": "https://docs.superalgos.org/suite-hierarchy-crypto-ecosystem.html#exchange-accounts", "menuItems": [ { "action": "Add UI Object", @@ -5382,7 +12231,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Exchange Accounts", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -5390,7 +12239,6 @@ ], "addLeftIcons": true, "level": 3, - "icon": "exchange-accounts", "chainAttachesTo": { "compatibleTypes": "->Crypto Exchange->" }, @@ -5407,7 +12255,6 @@ }, { "type": "User Account", - "docURL": "https://docs.superalgos.org/suite-hierarchy-crypto-ecosystem.html#user-account", "menuItems": [ { "action": "Add UI Object", @@ -5429,7 +12276,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Account", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -5437,7 +12284,6 @@ ], "addLeftIcons": true, "level": 3, - "icon": "user-account", "chainAttachesTo": { "compatibleTypes": "->Exchange Accounts->" }, @@ -5460,7 +12306,6 @@ }, { "type": "User Assets", - "docURL": "https://docs.superalgos.org/suite-hierarchy-crypto-ecosystem.html#user-assets", "menuItems": [ { "action": "Add UI Object", @@ -5472,7 +12317,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete User Assets", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -5480,7 +12325,6 @@ ], "addLeftIcons": true, "level": 3, - "icon": "user-assets", "chainAttachesTo": { "compatibleTypes": "->User Account->" }, @@ -5496,7 +12340,6 @@ }, { "type": "User Keys", - "docURL": "https://docs.superalgos.org/suite-hierarchy-crypto-ecosystem.html#user-keys", "menuItems": [ { "action": "Add UI Object", @@ -5508,7 +12351,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete User Keys", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -5516,7 +12359,6 @@ ], "addLeftIcons": true, "level": 3, - "icon": "user-keys", "chainAttachesTo": { "compatibleTypes": "->User Account->" }, @@ -5533,13 +12375,12 @@ }, { "type": "Exchange Account Asset", - "docURL": "https://docs.superalgos.org/suite-hierarchy-crypto-ecosystem.html#exchange-account-asset", "menuItems": [ { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Asset", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -5554,7 +12395,6 @@ "chainAttachesTo": { "compatibleTypes": "->User Assets->" }, - "icon": "exchange-account-asset", "title": [ "Use Reference Parent" ], @@ -5564,13 +12404,12 @@ }, { "type": "Exchange Account Key", - "docURL": "https://docs.superalgos.org/suite-hierarchy-crypto-ecosystem.html#exchange-account-key", "menuItems": [ { - "action": "Configure Key", - "label": "Configure Key", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, @@ -5578,14 +12417,14 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete This Key", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], "initialValues": { - "code": "{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}" + "config": "{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}" }, "addLeftIcons": true, "editors": { @@ -5595,13 +12434,11 @@ "chainAttachesTo": { "compatibleTypes": "->User Keys->" }, - "icon": "exchange-account-key", "propertyNameAtParent": "keys", "isPersonalData": true }, { "type": "Charting Space", - "docURL": "https://docs.superalgos.org/suite-hierarchy-charting-space.html#charting-space", "menuItems": [ { "action": "Add UI Object", @@ -5616,12 +12453,20 @@ "label": "Add Dashboard", "relatedUiObject": "Dashboard", "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add Missing Dashboards", + "label": "Add Missing Dashboards", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Dashboard", + "actionFunction": "payload.onMenuItemClick" } ], "isHierarchyHead": true, "addLeftIcons": true, - "level": 1, - "icon": "charting-space", + "level": 0, "properties": [ { "name": "viewport", @@ -5638,7 +12483,6 @@ }, { "type": "Dashboard", - "docURL": "https://docs.superalgos.org/suite-hierarchy-charting-space.html#dashboard", "menuItems": [ { "action": "Add UI Object", @@ -5646,20 +12490,30 @@ "relatedUiObject": "Time Machine", "actionFunction": "payload.onMenuItemClick" }, + { + "action": "Add Missing Time Machines", + "label": "Add Missing Time Machines", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Time Machine", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Dashboard", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], - "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 1, - "icon": "dashboard", + "referenceAttachesTo": { + "compatibleTypes": "->Testing Environment->Production Environment->" + }, "chainAttachesTo": { "compatibleTypes": "->Charting Space->" }, @@ -5674,13 +12528,12 @@ }, { "type": "Time Machine", - "docURL": "https://docs.superalgos.org/suite-hierarchy-charting-space.html#time-machine", "menuItems": [ { - "action": "Configure Time Machine", - "label": "Configure Time Machine", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, @@ -5718,14 +12571,14 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Crypto Exchange", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], "initialValues": { - "code": "{}" + "config": "{}" }, "addLeftIcons": true, "editors": { @@ -5733,7 +12586,9 @@ }, "level": 1, "isTitleAllwaysVisible": true, - "icon": "time-machine", + "referenceAttachesTo": { + "compatibleTypes": "->Backtesting Session->Paper Trading Session->Forward Testing Session->Live Trading Session->" + }, "chainAttachesTo": { "compatibleTypes": "->Dashboard->Template Structure->" }, @@ -5761,32 +12616,30 @@ "name": "timelineCharts", "type": "array", "childType": "Timeline Chart", - "autoAdd": true + "autoAdd": false } ] }, { "type": "Viewport", - "docURL": "https://docs.superalgos.org/suite-hierarchy-charting-space.html#viewport", "menuItems": [ { - "action": "Configure Viewport", - "label": "Configure Viewport", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" } ], "initialValues": { - "code": "{ \n\"topMargin\": 40,\n\"bottomMargin\": 40\n}" + "config": "{ \n\"topMargin\": 40,\n\"bottomMargin\": 40\n}" }, "addLeftIcons": true, "editors": { "config": true }, "level": 2, - "icon": "viewport", "chainAttachesTo": { "compatibleTypes": "->Charting Space->" }, @@ -5794,13 +12647,12 @@ }, { "type": "Time Scale", - "docURL": "https://docs.superalgos.org/suite-hierarchy-charting-space.html#time-scale", "menuItems": [ { - "action": "Configure Time Scale", - "label": "Configure Time Scale", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, @@ -5808,21 +12660,20 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Time Scale", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], "initialValues": { - "code": "{ \n\"autoMinScale\": true,\n\"autoMaxScale\": true,\n\"fromDate\": \"2018-01-01\",\n\"toDate\": \"2020-12-31\"\n}" + "config": "{ \n\"autoMinScale\": true,\n\"autoMaxScale\": true,\n\"fromDate\": \"2018-01-01\",\n\"toDate\": \"2020-12-31\"\n}" }, "addLeftIcons": true, "editors": { "config": true }, "level": 2, - "icon": "time-scale", "chainAttachesTo": { "compatibleTypes": "->Time Machine->" }, @@ -5830,13 +12681,12 @@ }, { "type": "Rate Scale", - "docURL": "https://docs.superalgos.org/suite-hierarchy-charting-space.html#rate-scale", "menuItems": [ { - "action": "Configure Rate Scale", - "label": "Configure Rate Scale", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, @@ -5844,21 +12694,20 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Rate Scale", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], "initialValues": { - "code": "{ \n\"autoMinScale\": true,\n\"autoMaxScale\": true,\n\"minValue\": 0,\n\"maxValue\": 25000\n}" + "config": "{ \n\"autoMinScale\": true,\n\"autoMaxScale\": true,\n\"minValue\": 0,\n\"maxValue\": 25000\n}" }, "addLeftIcons": true, "editors": { "config": true }, "level": 2, - "icon": "rate-scale", "chainAttachesTo": { "compatibleTypes": "->Time Machine->Timeline Chart->" }, @@ -5866,13 +12715,12 @@ }, { "type": "Time Frame Scale", - "docURL": "https://docs.superalgos.org/suite-hierarchy-charting-space.html#time-frame-scale", "menuItems": [ { - "action": "Configure Frame Scale", - "label": "Configure Frame Scale", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, @@ -5880,21 +12728,20 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Time Frame Scale", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], "initialValues": { - "code": "{ \n\"value\": \"24-hs\"\n}" + "config": "{ \n\"value\": \"24-hs\"\n}" }, "addLeftIcons": true, "editors": { "config": true }, "level": 2, - "icon": "time-frame-scale", "chainAttachesTo": { "compatibleTypes": "->Time Machine->Timeline Chart->" }, @@ -5902,7 +12749,6 @@ }, { "type": "Timeline Chart", - "docURL": "https://docs.superalgos.org/suite-hierarchy-charting-space.html#timeline-chart", "menuItems": [ { "action": "Add UI Object", @@ -5932,7 +12778,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Time Timeline Chart", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -5941,7 +12787,6 @@ "addLeftIcons": true, "level": 2, "isTitleAllwaysVisible": true, - "icon": "time-line-chart", "referenceAttachesTo": { "compatibleTypes": "->Market->" }, @@ -5970,13 +12815,12 @@ }, { "type": "Layers Manager", - "docURL": "https://docs.superalgos.org/suite-hierarchy-charting-space.html#layers-manager", "menuItems": [ { - "action": "Configure Layers Manager", - "label": "Configure Layers Manager", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, @@ -5986,11 +12830,20 @@ "relatedUiObject": "Layer", "actionFunction": "payload.onMenuItemClick" }, + { + "action": "Add All Mine Layers", + "label": "Add All Mine Layers", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Data Mine Products", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Layers Manager", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -6000,33 +12853,43 @@ "editors": { "config": true }, + "title": [ + "Use Reference Parent" + ], "initialValues": { - "code": "{ \n\"visibleLayers\": 5\n}" + "config": "{ \n\"visibleLayers\": 5\n}" }, "level": 3, - "icon": "layer-manager", "chainAttachesTo": { "compatibleTypes": "->Timeline Chart->" }, + "referenceAttachesTo": { + "compatibleTypes": "->Data Mine Products->" + }, "propertyNameAtParent": "layersManager", "properties": [ { "name": "layers", "type": "array", "childType": "Layer", - "autoAdd": true + "autoAdd": false + }, + { + "name": "botLayers", + "type": "array", + "childType": "Bot Layers", + "autoAdd": false } ] }, { "type": "Layer", - "docURL": "https://docs.superalgos.org/suite-hierarchy-charting-space.html#layer", "menuItems": [ { - "action": "Configure Layer", - "label": "Configure Layer", - "iconPathOn": "html", - "iconPathOff": "html", + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", "dontShowAtFullscreen": true, "actionFunction": "uiObject.configEditor.activate" }, @@ -6042,7 +12905,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Layer", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -6050,7 +12913,7 @@ ], "isTitleAllwaysVisible": true, "initialValues": { - "code": "{ \n\"status\": \"off\"\n}" + "config": "{ \n\"status\": \"off\"\n}" }, "addLeftIcons": true, "editors": { @@ -6064,9 +12927,8 @@ "compatibleTypes": "->Data Product->" }, "chainAttachesTo": { - "compatibleTypes": "->Layer Manager->Layers Manager->" + "compatibleTypes": "->Layers Manager->Bot Layers->Layer Folder->" }, - "icon": "attractive", "propertyNameAtParent": "layers", "properties": [ { @@ -6077,30 +12939,121 @@ ] }, { - "type": "Data Storage", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#data-storage", + "type": "Bot Layers", "menuItems": [ { "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "sessionIndependentData", - "label": "Add Session Ind Data", - "relatedUiObject": "Session Independent Data", + "label": "Add Layer", + "relatedUiObject": "Layer", "actionFunction": "payload.onMenuItemClick" }, { "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "sessionBasedData", - "label": "Add Session Based Data", - "relatedUiObject": "Session Based Data", + "label": "Add Layer Folder", + "relatedUiObject": "Layer Folder", "actionFunction": "payload.onMenuItemClick" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Data Storage", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Layers Manager->" + }, + "propertyNameAtParent": "botLayers", + "properties": [ + { + "name": "layers", + "type": "array", + "childType": "Layer", + "autoAdd": false + }, + { + "name": "layerFolders", + "type": "array", + "childType": "Layer Folder", + "autoAdd": false + } + ] + }, + { + "type": "Layer Folder", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Layer", + "relatedUiObject": "Layer", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Layer Folder", + "relatedUiObject": "Layer Folder", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Layer Folder->Bot Layers->" + }, + "propertyNameAtParent": "layerFolders", + "properties": [ + { + "name": "layers", + "type": "array", + "childType": "Layer", + "autoAdd": false + }, + { + "name": "layerFolders", + "type": "array", + "childType": "Layer Folder", + "autoAdd": false + } + ] + }, + { + "type": "Data Storage", + "menuItems": [ + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "dataMinesData", + "label": "Add Session Ind Data", + "relatedUiObject": "Data Mines Data", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "tradingMinesData", + "label": "Add Trading Mines Data", + "relatedUiObject": "Trading Mines Data", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -6108,28 +13061,27 @@ ], "addLeftIcons": true, "level": 2, - "icon": "data-storage", "chainAttachesTo": { "compatibleTypes": "->Network Node->" }, "propertyNameAtParent": "dataStorage", "properties": [ { - "name": "sessionIndependentData", + "name": "dataMinesData", "type": "node", - "childType": "Session Independent Data", + "childType": "Data Mines Data", "autoAdd": true }, { - "name": "sessionBasedData", + "name": "tradingMinesData", "type": "node", - "childType": "Session Based Data", + "childType": "Trading Mines Data", "autoAdd": true } ] }, { - "type": "Exchange Tasks", + "type": "Data Mine Tasks", "menuItems": [ { "action": "Run All Task Managers", @@ -6137,8 +13089,8 @@ "askConfirmation": true, "confirmationLabel": "Confirm to Run", "workDoneLabel": "Run Request Sent", - "iconPathOn": "paper-plane", - "iconPathOff": "paper-plane", + "iconPathOn": "run", + "iconPathOff": "run", "actionFunction": "payload.onMenuItemClick" }, { @@ -6157,11 +13109,20 @@ "relatedUiObject": "Task Manager", "actionFunction": "payload.onMenuItemClick" }, + { + "action": "Add All Tasks", + "label": "Add All Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Task", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Exchange Tasks", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -6169,19 +13130,18 @@ ], "addLeftIcons": true, "level": 2, - "icon": "crypto-exchange", "referenceAttachesTo": { - "compatibleTypes": "->Crypto Exchange->" + "compatibleTypes": "->Data Mine->" }, "chainAttachesTo": { - "compatibleTypes": "->Data Mining->Testing Environment->Production Environment->Template Structure->" + "compatibleTypes": "->Market Data Tasks->" }, "alternativeIcons": "Use Reference Parent", "title": [ "Use Reference Parent" ], "isTitleAllwaysVisible": true, - "propertyNameAtParent": "exchangeTasks", + "propertyNameAtParent": "dataMineTasks", "properties": [ { "name": "taskManagers", @@ -6189,25 +13149,24 @@ "childType": "Task Manager", "monitorChildrenRunning": true } - ] + ] }, { - "type": "Data Mining", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#data-mining", + "type": "Trading Mine Tasks", "menuItems": [ { - "action": "Run All Exchange Tasks", - "label": "Run All Exchange Tasks", + "action": "Run All Task Managers", + "label": "Run All Task Managers", "askConfirmation": true, "confirmationLabel": "Confirm to Run", "workDoneLabel": "Run Request Sent", - "iconPathOn": "paper-plane", - "iconPathOff": "paper-plane", + "iconPathOn": "run", + "iconPathOff": "run", "actionFunction": "payload.onMenuItemClick" }, { - "action": "Stop All Exchange Tasks", - "label": "Stop All Exchange Tasks", + "action": "Stop All Task Managers", + "label": "Stop All Task Managers", "askConfirmation": true, "confirmationLabel": "Confirm to Stop", "workDoneLabel": "Stop Request Sent", @@ -6217,15 +13176,381 @@ }, { "action": "Add UI Object", - "label": "Add Exchange Tasks", - "relatedUiObject": "Exchange Tasks", + "label": "Add Task Manager", + "relatedUiObject": "Task Manager", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add All Tasks", + "label": "Add All Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Task", "actionFunction": "payload.onMenuItemClick" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Data Mining", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 2, + "referenceAttachesTo": { + "compatibleTypes": "->Trading Mine->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Market Trading Tasks->" + }, + "alternativeIcons": "Use Reference Parent", + "title": [ + "Use Reference Parent" + ], + "isTitleAllwaysVisible": true, + "propertyNameAtParent": "tradingMineTasks", + "properties": [ + { + "name": "taskManagers", + "type": "array", + "childType": "Task Manager", + "monitorChildrenRunning": true + } + ] + }, + { + "type": "Market Data Tasks", + "menuItems": [ + { + "action": "Run All Data Mine Tasks", + "label": "Run All Data Mine Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Run", + "workDoneLabel": "Run Request Sent", + "iconPathOn": "run", + "iconPathOff": "run", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Stop All Data Mine Tasks", + "label": "Stop All Data Mine Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Stop", + "workDoneLabel": "Stop Request Sent", + "iconPathOn": "stop", + "iconPathOff": "stop", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Data Mine Tasks", + "relatedUiObject": "Data Mine Tasks", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add Missing Data Mine Tasks", + "label": "Add Missing Data Mine Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Data Mine Tasks", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 2, + "referenceAttachesTo": { + "compatibleTypes": "->Market->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Exchange Data Tasks->" + }, + "alternativeIcons": "Use Reference Parent", + "title": [ + "Use Reference Parent Parent Parent", + "Use Reference Parent" + ], + "isTitleAllwaysVisible": true, + "propertyNameAtParent": "marketDataTasks", + "properties": [ + { + "name": "dataMineTasks", + "type": "array", + "childType": "Data Mine Tasks", + "monitorChildrenRunning": true + } + ] + }, + { + "type": "Market Trading Tasks", + "menuItems": [ + { + "action": "Run All Trading Mine Tasks", + "label": "Run All Trading Mine Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Run", + "workDoneLabel": "Run Request Sent", + "iconPathOn": "run", + "iconPathOff": "run", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Stop All Trading Mine Tasks", + "label": "Stop All Trading Mine Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Stop", + "workDoneLabel": "Stop Request Sent", + "iconPathOn": "stop", + "iconPathOff": "stop", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Trading Mine Tasks", + "relatedUiObject": "Trading Mine Tasks", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add Missing Trading Mine Tasks", + "label": "Add Missing Trading Mine Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Trading Mine Tasks", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 2, + "referenceAttachesTo": { + "compatibleTypes": "->Market->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Exchange Trading Tasks->" + }, + "alternativeIcons": "Use Reference Parent", + "title": [ + "Use Reference Parent Parent Parent", + "Use Reference Parent" + ], + "isTitleAllwaysVisible": true, + "propertyNameAtParent": "marketTradingTasks", + "properties": [ + { + "name": "tradingMineTasks", + "type": "array", + "childType": "Trading Mine Tasks", + "monitorChildrenRunning": true + } + ] + }, + { + "type": "Exchange Data Tasks", + "menuItems": [ + { + "action": "Run All Market Data Tasks", + "label": "Run All Market Data Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Run", + "workDoneLabel": "Run Request Sent", + "iconPathOn": "run", + "iconPathOff": "run", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Stop All Market Data Tasks", + "label": "Stop All Market Data Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Stop", + "workDoneLabel": "Stop Request Sent", + "iconPathOn": "stop", + "iconPathOff": "stop", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Market Data Tasks", + "relatedUiObject": "Market Data Tasks", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add Missing Market Data Tasks", + "label": "Add Missing Markets", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Market Data Tasks", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 2, + "referenceAttachesTo": { + "compatibleTypes": "->Crypto Exchange->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Data Mining->" + }, + "alternativeIcons": "Use Reference Parent", + "title": [ + "Use Reference Parent" + ], + "isTitleAllwaysVisible": true, + "propertyNameAtParent": "exchangeDataTasks", + "properties": [ + { + "name": "marketDataTasks", + "type": "array", + "childType": "Market Data Tasks", + "monitorChildrenRunning": true + } + ] + }, + { + "type": "Exchange Trading Tasks", + "menuItems": [ + { + "action": "Run All Market Trading Tasks", + "label": "Run All Market Trading Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Run", + "workDoneLabel": "Run Request Sent", + "iconPathOn": "run", + "iconPathOff": "run", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Stop All Market Trading Tasks", + "label": "Stop All Market Trading Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Stop", + "workDoneLabel": "Stop Request Sent", + "iconPathOn": "stop", + "iconPathOff": "stop", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Market Trading Tasks", + "relatedUiObject": "Market Trading Tasks", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add Missing Market Trading Tasks", + "label": "Add Missing Markets", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Market Trading Tasks", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 2, + "referenceAttachesTo": { + "compatibleTypes": "->Crypto Exchange->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Testing Environment->Production Environment->" + }, + "alternativeIcons": "Use Reference Parent", + "title": [ + "Use Reference Parent" + ], + "isTitleAllwaysVisible": true, + "propertyNameAtParent": "exchangeTradingTasks", + "properties": [ + { + "name": "marketTradingTasks", + "type": "array", + "childType": "Market Trading Tasks", + "monitorChildrenRunning": true + } + ] + }, + { + "type": "Data Mining", + "menuItems": [ + { + "action": "Run All Exchange Data Tasks", + "label": "Run All Exchange Data Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Run", + "workDoneLabel": "Run Request Sent", + "iconPathOn": "run", + "iconPathOff": "run", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Stop All Exchange Data Tasks", + "label": "Stop All Exchange Data Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Stop", + "workDoneLabel": "Stop Request Sent", + "iconPathOn": "stop", + "iconPathOff": "stop", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Exchange Data Tasks", + "relatedUiObject": "Exchange Data Tasks", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add Missing Exchange Data Tasks", + "label": "Add Missing Exchanges", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Exchange Data Tasks", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -6233,37 +13558,35 @@ ], "addLeftIcons": true, "level": 2, - "icon": "data-mining", "chainAttachesTo": { "compatibleTypes": "->Network Node->" }, "propertyNameAtParent": "dataMining", "properties": [ { - "name": "exchangeTasks", + "name": "exchangeDataTasks", "type": "array", - "childType": "Exchange Tasks", + "childType": "Exchange Data Tasks", "monitorChildrenRunning": true } ] }, { "type": "Testing Environment", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#testing-environment", "menuItems": [ { - "action": "Run All Exchange Tasks", - "label": "Run All Exchange Tasks", + "action": "Run All Exchange Trading Tasks", + "label": "Run All Exchange Trading Tasks", "askConfirmation": true, "confirmationLabel": "Confirm to Run", "workDoneLabel": "Run Request Sent", - "iconPathOn": "paper-plane", - "iconPathOff": "paper-plane", + "iconPathOn": "run", + "iconPathOff": "run", "actionFunction": "payload.onMenuItemClick" }, { - "action": "Stop All Exchange Tasks", - "label": "Stop All Exchange Tasks", + "action": "Stop All Exchange Trading Tasks", + "label": "Stop All Exchange Trading Tasks", "askConfirmation": true, "confirmationLabel": "Confirm to Stop", "workDoneLabel": "Stop Request Sent", @@ -6273,53 +13596,60 @@ }, { "action": "Add UI Object", - "label": "Add Exchange Tasks", - "relatedUiObject": "Exchange Tasks", + "label": "Add Exchange Trading Tasks", + "relatedUiObject": "Exchange Trading Tasks", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add Missing Exchange Trading Tasks", + "label": "Add Missing Exchanges", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Exchange Trading Tasks", "actionFunction": "payload.onMenuItemClick" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Environment", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], "addLeftIcons": true, - "level": 2, - "icon": "testing-environment", + "level": 0, "chainAttachesTo": { "compatibleTypes": "->Network Node->" }, "propertyNameAtParent": "testingEnvironment", "properties": [ { - "name": "exchangeTasks", + "name": "exchangeTradingTasks", "type": "array", - "childType": "Exchange Tasks", + "childType": "Exchange Trading Tasks", "monitorChildrenRunning": true } ] }, { "type": "Production Environment", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#production-environment", "menuItems": [ { - "action": "Run All Exchange Tasks", - "label": "Run All Exchange Tasks", + "action": "Run All Exchange Trading Tasks", + "label": "Run All Exchange Trading Tasks", "askConfirmation": true, "confirmationLabel": "Confirm to Run", "workDoneLabel": "Run Request Sent", - "iconPathOn": "paper-plane", - "iconPathOff": "paper-plane", + "iconPathOn": "run", + "iconPathOff": "run", "actionFunction": "payload.onMenuItemClick" }, { - "action": "Stop All Exchange Tasks", - "label": "Stop All Exchange Tasks", + "action": "Stop All Exchange Trading Tasks", + "label": "Stop All Exchange Trading Tasks", "askConfirmation": true, "confirmationLabel": "Confirm to Stop", "workDoneLabel": "Stop Request Sent", @@ -6329,32 +13659,40 @@ }, { "action": "Add UI Object", - "label": "Add Exchange Tasks", - "relatedUiObject": "Exchange Tasks", + "label": "Add Exchange Trading Tasks", + "relatedUiObject": "Exchange Trading Tasks", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add Missing Exchange Trading Tasks", + "label": "Add Missing Exchanges", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Exchange Trading Tasks", "actionFunction": "payload.onMenuItemClick" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Environment", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" } ], "addLeftIcons": true, - "level": 2, - "icon": "production-environment", + "level": 0, "chainAttachesTo": { "compatibleTypes": "->Network Node->" }, "propertyNameAtParent": "productionEnvironment", "properties": [ { - "name": "exchangeTasks", + "name": "exchangeTradingTasks", "type": "array", - "childType": "Exchange Tasks", + "childType": "Exchange Trading Tasks", "monitorChildrenRunning": true } ] @@ -6364,15 +13702,24 @@ "menuItems": [ { "action": "Add UI Object", - "label": "Add Single Market Data", - "relatedUiObject": "Single Market Data", + "label": "Add Market Data Products", + "relatedUiObject": "Market Data Products", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add Missing Market Data Products", + "label": "Add Missing Markets", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Market Data Products", "actionFunction": "payload.onMenuItemClick" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Data Storage", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -6385,29 +13732,36 @@ "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 3, - "icon": "crypto-exchange", "referenceAttachesTo": { "compatibleTypes": "->Crypto Exchange->" }, "chainAttachesTo": { - "compatibleTypes": "->Session Independent Data->" + "compatibleTypes": "->Data Mines Data->" }, "propertyNameAtParent": "exchangeDataProducts", "properties": [ { - "name": "singleMarketData", + "name": "marketDataProducts", "type": "array", - "childType": "Single Market Data" + "childType": "Market Data Products" } ] }, { - "type": "Session Independent Data", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#session-independent-data", + "type": "Data Mines Data", "menuItems": [ { "action": "Add UI Object", - "label": "Add Exchange", + "label": "Add Exchange Data Products", + "relatedUiObject": "Exchange Data Products", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add Missing Exchange Data Products", + "label": "Add Missing Exchanges", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", "relatedUiObject": "Exchange Data Products", "actionFunction": "payload.onMenuItemClick" }, @@ -6415,7 +13769,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Data Storage", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -6423,11 +13777,10 @@ ], "addLeftIcons": true, "level": 3, - "icon": "session-independent-data", "chainAttachesTo": { "compatibleTypes": "->Data Storage->" }, - "propertyNameAtParent": "sessionIndependentData", + "propertyNameAtParent": "dataMinesData", "properties": [ { "name": "exchangeDataProducts", @@ -6437,19 +13790,30 @@ ] }, { - "type": "Exchange Sessions", + "type": "Exchange Trading Products", "menuItems": [ { "action": "Add UI Object", - "label": "Add Session Reference", - "relatedUiObject": "Session Reference", + "label": "Add Market Trading Products", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "marketTradingProducts", + "relatedUiObject": "Market Trading Products", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add Missing Market Trading Products", + "label": "Add Missing Markets", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Market Trading Products", "actionFunction": "payload.onMenuItemClick" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Exchange Sessions", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -6462,37 +13826,45 @@ "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 3, - "icon": "crypto-exchange", "referenceAttachesTo": { "compatibleTypes": "->Crypto Exchange->" }, "chainAttachesTo": { - "compatibleTypes": "->Session Based Data->" + "compatibleTypes": "->Trading Mines Data->" }, - "propertyNameAtParent": "exchangeSessions", + "propertyNameAtParent": "exchangeTradingProducts", "properties": [ { - "name": "sessionReferences", + "name": "marketTradingProducts", "type": "array", - "childType": "Session Reference" + "childType": "Market Trading Products", + "autoAdd": false } ] }, { - "type": "Session Based Data", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#session-based-data", + "type": "Trading Mines Data", "menuItems": [ { "action": "Add UI Object", - "label": "Add Exchange Sessions", - "relatedUiObject": "Exchange Sessions", + "label": "Add Exchange Trading Products", + "relatedUiObject": "Exchange Trading Products", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add Missing Exchange Trading Products", + "label": "Add Missing Exchanges", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Exchange Trading Products", "actionFunction": "payload.onMenuItemClick" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Data Storage", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -6500,36 +13872,47 @@ ], "addLeftIcons": true, "level": 3, - "icon": "session-based-data", "chainAttachesTo": { "compatibleTypes": "->Data Storage->" }, - "propertyNameAtParent": "sessionBasedData", + "propertyNameAtParent": "tradingMinesData", "properties": [ { - "name": "exchangeSessions", + "name": "exchangeTradingProducts", "type": "array", - "childType": "Exchange Sessions" + "childType": "Exchange Trading Products" } ] }, { "type": "Session Reference", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#session-reference", "menuItems": [ { "action": "Add UI Object", - "label": "Add Single Market Data", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "singleMarketData", - "relatedUiObject": "Single Market Data", + "label": "Add Data Product", + "relatedUiObject": "Data Product", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Trading Mine Products", + "relatedUiObject": "Trading Mine Products", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add All Trading Mine Products", + "label": "Add All Trading Mine Products", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Trading Mine Products", "actionFunction": "payload.onMenuItemClick" }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Data Storage", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -6538,32 +13921,52 @@ "isTitleAllwaysVisible": true, "title": [ "Use Reference Parent", - "Use Child @singleMarketData" + "Use Reference Parent Type", + "Use Child @marketDataProducts" ], "addLeftIcons": true, "level": 3, - "icon": "session-reference", "alternativeIcons": "Use Reference Parent", "referenceAttachesTo": { "compatibleTypes": "->Backtesting Session->Paper Trading Session->Forward Testing Session->Live Trading Session->" }, "chainAttachesTo": { - "compatibleTypes": "->Exchange Sessions->Template Structure->" + "compatibleTypes": "->Market Trading Products->" }, "propertyNameAtParent": "sessionReferences", "properties": [ { - "name": "singleMarketData", - "type": "node", - "childType": "Single Market Data", - "autoAdd": true + "name": "dataProducts", + "type": "array", + "childType": "Data Product", + "autoAdd": false + }, + { + "name": "tradingMineProducts", + "type": "array", + "childType": "Trading Mine Products", + "autoAdd": false } ] }, { - "type": "Single Market Data", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#single-market-data", + "type": "Market Data Products", "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Data Mine Products", + "relatedUiObject": "Data Mine Products", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add All Data Mine Products", + "label": "Add All Data Mine Products", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Data Mine Products", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Add UI Object", "label": "Add Data Product", @@ -6574,7 +13977,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Single Market Data", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -6587,32 +13990,86 @@ "Use Reference Parent Parent Parent", "Use Reference Parent" ], - "icon": "single-market-data", "referenceAttachesTo": { "compatibleTypes": "->Market->" }, "chainAttachesTo": { - "compatibleTypes": "->Exchange Data Products->Session Reference->Template Structure->" + "compatibleTypes": "->Exchange Data Products->" }, - "propertyNameAtParent": "singleMarketData", + "propertyNameAtParent": "marketDataProducts", "properties": [ { "name": "dataProducts", "type": "array", "childType": "Data Product", - "autoAdd": true + "autoAdd": false + }, + { + "name": "dataMineProducts", + "type": "array", + "childType": "Data Mine Products", + "autoAdd": false } ] }, { - "type": "Data Product", - "docURL": "https://docs.superalgos.org/suite-hierarchy-network.html#data-product", + "type": "Market Trading Products", "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Session Reference", + "relatedUiObject": "Session Reference", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add Missing Session References", + "label": "Add Missing Sessions", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Session Reference", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "Delete Data Product", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "isTitleAllwaysVisible": true, + "title": [ + "Use Reference Parent Parent Parent", + "Use Reference Parent" + ], + "referenceAttachesTo": { + "compatibleTypes": "->Market->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Exchange Trading Products->" + }, + "propertyNameAtParent": "marketTradingProducts", + "properties": [ + { + "name": "sessionReferences", + "type": "array", + "childType": "Session Reference" + } + ] + }, + { + "type": "Data Product", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", "iconPathOn": "delete", "iconPathOff": "delete", "actionFunction": "payload.onMenuItemClick" @@ -6620,7 +14077,6 @@ ], "addLeftIcons": true, "level": 3, - "icon": "data-product", "isTitleAllwaysVisible": true, "title": [ "Use Reference Parent" @@ -6629,9 +14085,884 @@ "compatibleTypes": "->Product Definition->" }, "chainAttachesTo": { - "compatibleTypes": "->Single Market Data->" + "compatibleTypes": "->Market Data Products->Data Product Folder->Bot Products->Session Reference->" }, "propertyNameAtParent": "dataProducts", "properties": [] + }, + { + "type": "Data Mine Products", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Bot Products", + "relatedUiObject": "Bot Products", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add All Data Products", + "label": "Add All Data Products", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Data Product", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "isTitleAllwaysVisible": true, + "title": [ + "Use Reference Parent" + ], + "referenceAttachesTo": { + "compatibleTypes": "->Data Mine->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Market Data Products->" + }, + "propertyNameAtParent": "dataMineProducts", + "properties": [ + { + "name": "botProducts", + "type": "array", + "childType": "Bot Products", + "autoAdd": false + } + ] + }, + { + "type": "Trading Mine Products", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Bot Products", + "relatedUiObject": "Bot Products", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add All Data Products", + "label": "Add All Data Products", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Data Product", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "isTitleAllwaysVisible": true, + "title": [ + "Use Reference Parent" + ], + "referenceAttachesTo": { + "compatibleTypes": "->Trading Mine->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Session Reference->" + }, + "propertyNameAtParent": "tradingMineProducts", + "properties": [ + { + "name": "botProducts", + "type": "array", + "childType": "Bot Products", + "autoAdd": false + } + ] + }, + { + "type": "Bot Products", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Data Product", + "relatedUiObject": "Data Product", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Data Product Folder", + "relatedUiObject": "Data Product Folder", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Data Mine Products->" + }, + "propertyNameAtParent": "botProducts", + "properties": [ + { + "name": "dataProducts", + "type": "array", + "childType": "Data Product", + "autoAdd": false + }, + { + "name": "dataProductFolders", + "type": "array", + "childType": "Data Product Folder", + "autoAdd": false + } + ] + }, + { + "type": "Data Product Folder", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Data Product", + "relatedUiObject": "Data Product", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Data Product Folder", + "relatedUiObject": "Data Product Folder", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Data Product Folder->Bot Products->" + }, + "propertyNameAtParent": "dataProductFolders", + "properties": [ + { + "name": "dataProducts", + "type": "array", + "childType": "Data Product", + "autoAdd": false + }, + { + "name": "dataProductFolders", + "type": "array", + "childType": "Data Product Folder", + "autoAdd": false + } + ] + }, + { + "type": "Includes", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Includes", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "isHierarchyHead": true, + "addLeftIcons": true, + "level": 0, + "propertyNameAtParent": "includes", + "properties": [ + { + "name": "includedDataMines", + "type": "node", + "childType": "Included Data Mines", + "autoAdd": false + }, + { + "name": "includedTradingMines", + "type": "node", + "childType": "Included Trading Mines", + "autoAdd": false + }, + { + "name": "includedTradingSystems", + "type": "node", + "childType": "Included Trading Systems", + "autoAdd": false + }, + { + "name": "includedTradingEngines", + "type": "node", + "childType": "Included Trading Engines", + "autoAdd": false + }, + { + "name": "includedSuperScripts", + "type": "node", + "childType": "Included Super Scripts", + "autoAdd": false + }, + { + "name": "includedTutorials", + "type": "node", + "childType": "Included Tutorials", + "autoAdd": false + } + ], + "icon": "bitcoin" + }, + { + "type": "Included Data Mines", + "menuItems": [ + { + "action": "Include Missing Data Mines", + "label": "Include Missing Data Mines", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Data Mine", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 1, + "propertyNameAtParent": "includedDataMines", + "properties": [ + { + "name": "includedFiles", + "type": "array", + "childType": "Included File", + "autoAdd": false + } + ], + "icon": "bitcoin" + }, + { + "type": "Included Trading Mines", + "menuItems": [ + { + "action": "Include Missing Trading Mines", + "label": "Include Missing Trading Mines", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Trading Mine", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 1, + "propertyNameAtParent": "includedTradingMines", + "properties": [ + { + "name": "includedFiles", + "type": "array", + "childType": "Included File", + "autoAdd": false + } + ], + "icon": "bitcoin" + }, + { + "type": "Included Trading Systems", + "menuItems": [ + { + "action": "Include Missing Trading Systems", + "label": "Include Missing Trading Systems", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Trading System", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 1, + "propertyNameAtParent": "includedTradingSystems", + "properties": [ + { + "name": "includedFiles", + "type": "array", + "childType": "Included File", + "autoAdd": false + } + ], + "icon": "bitcoin" + }, + { + "type": "Included Trading Engines", + "menuItems": [ + { + "action": "Include Missing Trading Engines", + "label": "Include Missing Trading Engines", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Trading Engine", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 1, + "propertyNameAtParent": "includedTradingEngines", + "properties": [ + { + "name": "includedFiles", + "type": "array", + "childType": "Included File", + "autoAdd": false + } + ], + "icon": "bitcoin" + }, + { + "type": "Included Super Scripts", + "menuItems": [ + { + "action": "Include Missing Super Scripts", + "label": "Include Missing Super Scripts", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Super Scripts", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 1, + "propertyNameAtParent": "includedSuperScripts", + "properties": [ + { + "name": "includedFiles", + "type": "array", + "childType": "Included File", + "autoAdd": false + } + ], + "icon": "bitcoin" + }, + { + "type": "Included Tutorials", + "menuItems": [ + { + "action": "Include Missing Tutorials", + "label": "Include Missing Tutorials", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Tutorial", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 1, + "propertyNameAtParent": "includedTutorials", + "properties": [ + { + "name": "includedFiles", + "type": "array", + "childType": "Included File", + "autoAdd": false + } + ], + "icon": "bitcoin" + }, + { + "type": "Included File", + "menuItems": [ + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "includedFilePosition", + "actionFunction": "payload.onMenuItemClick", + "label": "Add Included File Position", + "relatedUiObject": "Included File Position", + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 2, + "propertyNameAtParent": "includedFiles", + "properties": [ + { + "name": "includedFilePosition", + "type": "node", + "childType": "Included File Position", + "autoAdd": false + } + ], + "icon": "bitcoin" + }, + { + "type": "Included File Position", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "title": [ + "Use Parent" + ], + "addLeftIcons": true, + "level": 3, + "propertyNameAtParent": "includedFilePosition", + "properties": [ + ], + "icon": "bitcoin" + }, + { + "type": "Tutorial", + "menuItems": [ + { + "action": "Play Tutorial", + "label": "Play", + "iconPathOn": "play", + "iconPathOff": "play", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Resume Tutorial", + "label": "Resume", + "iconPathOn": "resume", + "iconPathOff": "resume", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, + { + "action": "Add UI Object", + "label": "Add Tutorial Step", + "relatedUiObject": "Tutorial Step", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Tutorial Topic", + "relatedUiObject": "Tutorial Topic", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Reset Tutorial Progress", + "askConfirmation": true, + "confirmationLabel": "Confirm to Reset", + "label": "Reset Tutorial Progress", + "iconPathOn": "reset", + "iconPathOff": "reset", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{ \n\"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": \n[\n [\"\", \"\"], \n[\"\", \"\"], \n[\"\", \"\"] \n],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}" + }, + "isTitleAllwaysVisible": true, + "isHierarchyHead": true, + "addLeftIcons": true, + "level": 0, + "propertyNameAtParent": "tutorials", + "properties": [ + { + "name": "tutorialSteps", + "type": "array", + "childType": "Tutorial Step", + "autoAdd": false + }, + { + "name": "tutorialTopics", + "type": "array", + "childType": "Tutorial Topic", + "autoAdd": false + } + ] + }, + { + "type": "Tutorial Topic", + "menuItems": [ + { + "action": "Play Tutorial Topic", + "label": "Play", + "iconPathOn": "play", + "iconPathOff": "play", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Resume Tutorial Topic", + "label": "Resume", + "iconPathOn": "resume", + "iconPathOff": "resume", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, + { + "action": "Add UI Object", + "label": "Add Tutorial Step", + "relatedUiObject": "Tutorial Step", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Tutorial Topic", + "relatedUiObject": "Tutorial Topic", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{ \n\"title\": \"\",\n \"summary\": \"\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": \n[\n [\"\", \"\"], \n[\"\", \"\"], \n[\"\", \"\"] \n],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}" + }, + "referenceAttachesTo": { + "compatibleTypes": "->*Any Node*->", + "incompatibleTypes": "->Tutorial->Tutorial Topic->Tutorial Step->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Tutorial->" + }, + "addLeftIcons": true, + "level": 1, + "propertyNameAtParent": "tutorialTopics", + "properties": [ + { + "name": "tutorialSteps", + "type": "array", + "childType": "Tutorial Step", + "autoAdd": false + }, + { + "name": "tutorialTopics", + "type": "array", + "childType": "Tutorial Topic", + "autoAdd": false + } + ] + }, + { + "type": "Tutorial Step", + "menuItems": [ + { + "action": "Play Tutorial Step", + "label": "Play", + "iconPathOn": "play", + "iconPathOff": "play", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Resume Tutorial Step", + "label": "Resume", + "iconPathOn": "resume", + "iconPathOff": "resume", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{ \n \"subTitle\": \"\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": \n[\n [\"\", \"\"], \n[\"\", \"\"], \n[\"\", \"\"] \n],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}" + }, + "referenceAttachesTo": { + "compatibleTypes": "->*Any Node*->", + "incompatibleTypes": "->Tutorial Topic->Tutorial Step->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Tutorial->Tutorial Topic->" + }, + "addLeftIcons": true, + "level": 2, + "propertyNameAtParent": "tutorialSteps", + "properties": [ + ] + }, + { + "type": "Data Mine Data Dependencies", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Bot Data Dependencies", + "relatedUiObject": "Bot Data Dependencies", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add All Data Dependencies", + "label": "Add All Data Dependencies", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Data Dependency", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "isTitleAllwaysVisible": true, + "title": [ + "Use Reference Parent" + ], + "referenceAttachesTo": { + "compatibleTypes": "->Data Mine->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Process Dependencies->" + }, + "propertyNameAtParent": "dataMineDataDependencies", + "properties": [ + { + "name": "botDataDependencies", + "type": "array", + "childType": "Bot Data Dependencies", + "autoAdd": false + } + ] + }, + { + "type": "Bot Data Dependencies", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Data Dependency", + "relatedUiObject": "Data Dependency", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Dependency Product Folder", + "relatedUiObject": "Dependency Product Folder", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Data Mine Data Dependencies->" + }, + "propertyNameAtParent": "botDataDependencies", + "properties": [ + { + "name": "dataDependencies", + "type": "array", + "childType": "Data Dependency", + "autoAdd": false + }, + { + "name": "dataDependencyFolders", + "type": "array", + "childType": "Data Dependency Folder", + "autoAdd": false + } + ] + }, + { + "type": "Data Dependency Folder", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Data Dependency", + "relatedUiObject": "Data Dependency", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add UI Object", + "label": "Add Data Dependency Folder", + "relatedUiObject": "Data Dependency Folder", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Data Dependency Folder->Bot Data Dependencies->" + }, + "propertyNameAtParent": "dataDependencyFolders", + "properties": [ + { + "name": "dataDependencies", + "type": "array", + "childType": "Data Dependency", + "autoAdd": false + }, + { + "name": "dataDependencyFolders", + "type": "array", + "childType": "Data Dependency Folder", + "autoAdd": false + } + ] } ] \ No newline at end of file diff --git a/BackendServers/.env b/BackendServers/.env index 4df3b114e..1e532c64c 100644 --- a/BackendServers/.env +++ b/BackendServers/.env @@ -8,6 +8,6 @@ WRITE_LOGS_TO_FILES=true BOTS_PATH=../Legacy-Code LOG_PATH=../Log-Files -WEB_SOCKETS_SERVER_PORT=8080 -WEB_SERVER_PORT=34247 +WEB_SOCKETS_SERVER_PORT=8081 +WEB_SERVER_PORT=34248 WEB_SERVER_URL=localhost diff --git a/BackendServers/WebServer/AppLoader.js b/BackendServers/WebServer/AppLoader.js index f038011dc..d1925874c 100644 --- a/BackendServers/WebServer/AppLoader.js +++ b/BackendServers/WebServer/AppLoader.js @@ -19,15 +19,17 @@ function newAppLoader() { let plotters let modulesArray = [] - + plotters = defaultPlotters() - + modulesArray = modulesArray.concat([ 'ChartingSpace/Viewport.js', - + 'Globals.js', - + 'AppSchema.js', + 'DocSchema.js', + 'ConceptSchema.js', 'Workspace.js', 'ChartingSpace/EdgeEditor.js', @@ -44,17 +46,37 @@ function newAppLoader() { 'DesignSpace/Workspace/FunctionLibraries/NodeDeleter.js', 'DesignSpace/Workspace/FunctionLibraries/ProtocolNode.js', 'DesignSpace/Workspace/FunctionLibraries/NodeCloning.js', - 'DesignSpace/Workspace/FunctionLibraries/NodeChildren.js', + 'DesignSpace/Workspace/FunctionLibraries/NodeChildren.js', 'DesignSpace/Workspace/FunctionLibraries/TaskFunctions.js', 'DesignSpace/Workspace/FunctionLibraries/SessionFunctions.js', 'DesignSpace/Workspace/FunctionLibraries/ShortcutKeys.js', 'DesignSpace/Workspace/FunctionLibraries/OnFocus.js', 'DesignSpace/Workspace/FunctionLibraries/SuperScripts.js', - 'DesignSpace/Workspace/FunctionLibraries/CCXTFunctions.js', - 'DesignSpace/Workspace/FunctionLibraries/WebhookFunctions.js', + 'DesignSpace/Workspace/FunctionLibraries/CryptoEcosystemFunctions.js', + 'DesignSpace/Workspace/FunctionLibraries/WebhookFunctions.js', 'DesignSpace/Workspace/FunctionLibraries/DependenciesFilter.js', - - 'Utilities/RoundedCornersBackground.js', + 'DesignSpace/Workspace/FunctionLibraries/NodePath.js', + 'DesignSpace/Workspace/FunctionLibraries/DataMineFunctions.js', + 'DesignSpace/Workspace/FunctionLibraries/DataStorageFunctions.js', + 'DesignSpace/Workspace/FunctionLibraries/ChartingSpaceFunctions.js', + 'DesignSpace/Workspace/FunctionLibraries/TutorialFunctions.js', + 'DesignSpace/Workspace/FunctionLibraries/IncludesFunctions.js', + + 'Utilities/CoordinateTransformations.js', + 'Utilities/DateRateTransformations.js', + 'Utilities/Download.js', + 'Utilities/Clipboard.js', + 'Utilities/DrawPrint.js', + 'Utilities/LoadSaveFrame.js', + 'Utilities/LoadSaveTutorial.js', + 'Utilities/NodeConfig.js', + 'Utilities/Hiriarchy.js', + 'Utilities/Folders.js', + 'Utilities/Branches.js', + 'Utilities/Meshes.js', + 'Utilities/NodeChildren.js', + 'Utilities/Menu.js', + 'Utilities/Dates.js', 'Panels/LayersPanel.js', 'Panels/UpDownButton.js', @@ -62,7 +84,7 @@ function newAppLoader() { 'Panels/Layer.js', 'Panels/PlotterPanel.js', 'Panels/PanelsVisibleButton.js', - + 'SideSpace/SidePanelTab.js', 'SideSpace/ListView.js', 'SideSpace/ListItem.js', @@ -74,6 +96,9 @@ function newAppLoader() { 'Spaces/FloatingSpace.js', 'Spaces/DesignSpace.js', 'Spaces/SideSpace.js', + 'Spaces/DocSpace.js', + 'Spaces/ChatSpace.js', + 'Spaces/TutorialSpace.js', 'Files/SingleFile.js', 'Files/FileCloud.js', @@ -92,7 +117,7 @@ function newAppLoader() { 'FloatingSpace/CircularMenuItem.js', 'FloatingSpace/CircularProgressBar.js', 'FloatingSpace/BusyProgressBar.js', - 'FloatingSpace/CodeEditor.js', + 'FloatingSpace/CodeEditor.js', 'FloatingSpace/ConfigEditor.js', 'FloatingSpace/ConditionEditor.js', 'FloatingSpace/FormulaEditor.js', @@ -103,29 +128,36 @@ function newAppLoader() { 'Scales/TimeFrameScale.js', 'Scales/Commons.js', 'Scales/AutoScaleButton.js', - + 'CockpitSpace/AssetBalances.js', 'CockpitSpace/Speedometer.js', 'CockpitSpace/FullScreen.js', 'EventsServerClient.js', - 'VideoRecorder.js', - 'Plotter.js', + 'Plotting/Plotter.js', + 'Plotting/NodesHighlights.js', + 'Plotting/NodesErrors.js', + 'Plotting/NodesWarnings.js', + 'Plotting/NodesInfos.js', + 'Plotting/NodesValues.js', + 'Plotting/NodesStatus.js', + 'Plotting/NodesProgress.js', + 'Plotting/NodesRunning.js', + 'Plotting/NodesAnnouncements.js', + 'Plotting/RecordValues.js', + 'LegacyPlotter.js', 'PlotterPanel.js', + 'VideoRecorder.js', 'ProductStorage.js', - 'SplashScreen.js', 'Canvas.js', 'EventHandler.js', 'Frame.js', - 'Animation.js', - 'Container.js', - 'Utilities.js', 'PostLoader.js' ]) @@ -133,13 +165,9 @@ function newAppLoader() { modulesArray = modulesArray.concat(plotters) let downloadedCounter = 0 - let versionParam = window.canvasApp.version - if (versionParam === undefined) { versionParam = '' } else { - versionParam = '?' + versionParam - } for (let i = 0; i < modulesArray.length; i++) { - let path = window.canvasApp.urlPrefix + modulesArray[i] + versionParam + let path = modulesArray[i] REQUIREJS([path], onRequired) @@ -176,23 +204,14 @@ function newAppLoader() { } function defaultPlotters() { - return [ + return [ 'Plotters/Masters/Plotters-Candles-Volumes/Candles.js', 'Plotters/Masters/Plotters-Candles-Volumes/CandlePanel.js', 'Plotters/Masters/Plotters-Candles-Volumes/Volumes.js', 'Plotters/Masters/Plotters-Candles-Volumes/VolumePanel.js', 'Plotters/Masters/Plotters-Bollinger-Bands/BollingerBands.js', 'Plotters/Masters/Plotters-Bollinger-Bands/BollingerBandsPanel.js', - 'Plotters/Masters/Plotters-Bollinger-Bands/PercentageBandwidth.js', - 'Plotters/TradingEngines/Plotters-Trading-Simulation/TradingSimulation.js', - 'Plotters/TradingEngines/Plotters-Trading-Simulation/TradingSimulationAssetBalancesPanel.js', - 'Plotters/TradingEngines/Plotters-Trading-Simulation/TradingSimulationCurrentPositionPanel.js', - 'Plotters/TradingEngines/Plotters-Trading-Simulation/TradingSimulationPartialResultsPanel.js', - 'Plotters/TradingEngines/Plotters-Trading-Simulation/Conditions.js', - 'Plotters/TradingEngines/Plotters-Trading-Simulation/Strategies.js', - 'Plotters/TradingEngines/Plotters-Trading-Simulation/Trades.js', - 'Plotters/TradingEngines/Plotters-Trading-Simulation/SimulationExecution.js', - 'Plotters/TradingEngines/Plotters-Trading-Simulation/SimulationExecutionPanel.js' + 'Plotters/Masters/Plotters-Bollinger-Bands/PercentageBandwidth.js' ] } diff --git a/BackendServers/WebServer/AppPreLoader.js b/BackendServers/WebServer/AppPreLoader.js index 2e150a408..07238ef7b 100644 --- a/BackendServers/WebServer/AppPreLoader.js +++ b/BackendServers/WebServer/AppPreLoader.js @@ -39,109 +39,83 @@ function loadSuperalgos() { const MODULE_NAME = "App Pre-Loader"; const INFO_LOG = false; - const ERROR_LOG = true; - if (INFO_LOG === true) { console.log(spacePad(MODULE_NAME, 50) + " : " + "[INFO] loadSuperalgos -> Entering function."); } + setupHTMLTextArea() + setupHTMLInput() + setupHTMLCanvas() + loadDebugModule() - /* The first thing to do here is to add the canvas where all the action is going to happen. */ + function setupHTMLTextArea() { + let textArea = document.createElement('textarea'); + textArea.id = "textArea"; + textArea.spellcheck = false; + textArea.style = 'resize: none;' + + ' border: none;' + + ' outline: none;' + + 'box-shadow: none;' + + 'overflow:hidden;' + + 'font-family: ' + 'Saira' + ';' + + 'font-size: 12px;' + + 'background-color: rgb(255, 255, 255);' + + 'color:rgb(255, 255, 255);' + + 'width: ' + 600 + 'px;' + + 'height: ' + 400 + 'px' + let textAreaDiv = document.getElementById('textAreaDiv'); + textAreaDiv.appendChild(textArea); + textAreaDiv.style = 'position:fixed; top:' + -1500 + 'px; left:' + 500 + 'px; z-index:10; ' + } - let textArea = document.createElement('textarea'); - textArea.id = "textArea"; - textArea.spellcheck = false; - textArea.style = 'resize: none;' + - ' border: none;' + - ' outline: none;' + - 'box-shadow: none;' + - 'overflow:hidden;' + - 'font-family: ' + 'Saira' + ';' + - 'font-size: 12px;' + - 'background-color: rgb(255, 255, 255);' + - 'color:rgb(255, 255, 255);' + - 'width: ' + 800 + 'px;' + - 'height: ' + 600 + 'px' + function setupHTMLInput() { + let input = document.createElement('input'); + input.id = "input"; + input.spellcheck = false; + input.style = "border: none; outline: none; box-shadow: none; overflow:hidden; width: 0px; height: 0px;"; - let textAreaDiv = document.getElementById('textAreaDiv'); - textAreaDiv.appendChild(textArea); - textAreaDiv.style = 'position:fixed; top:' + -1500 + 'px; left:' + 500 + 'px; z-index:10; ' + let inputDiv = document.getElementById('inputDiv'); + inputDiv.appendChild(input); + } - let input = document.createElement('input'); - input.id = "input"; - input.spellcheck = false; - input.style = "border: none; outline: none; box-shadow: none; overflow:hidden; width: 0px; height: 0px;"; + function setupHTMLCanvas() { + let canvas = document.createElement('canvas'); - let inputDiv = document.getElementById('inputDiv'); - inputDiv.appendChild(input); + canvas.id = "canvas"; + canvas.width = 1400; + canvas.height = 600; + canvas.style.border = "0"; + canvas.style = "position:absolute; top:0px; left:0px; z-index:1"; + let canvasApp = document.getElementById('canvasApp'); + canvasApp.appendChild(canvas); - let canvas = document.createElement('canvas'); + browserCanvas = document.getElementById('canvas'); - canvas.id = "canvas"; - canvas.width = 1400; - canvas.height = 600; - canvas.style.border = "0"; - canvas.style = "position:absolute; top:0px; left:0px; z-index:1"; + browserCanvas.width = window.innerWidth; + browserCanvas.height = window.innerHeight; + browserCanvas.style.border = "none"; - let canvasApp = document.getElementById('canvasApp'); - canvasApp.appendChild(canvas); - - browserCanvas = document.getElementById('canvas'); - - browserCanvas.width = window.innerWidth; - browserCanvas.height = window.innerHeight - window.canvasApp.topMargin; - browserCanvas.style.border = "none"; - - browserCanvas.style.top = window.canvasApp.topMargin + 'px'; - - - - loadDebugModule(); + browserCanvas.style.top = 0 + 'px'; + } function loadDebugModule() { + let path = "WebDebugLog.js"; + REQUIREJS([path], onRequired); - try { - if (INFO_LOG === true) { console.log(spacePad(MODULE_NAME, 50) + " : " + "[INFO] loadDebugModule -> Entering function."); } - - let path = window.canvasApp.urlPrefix + "WebDebugLog.js"; - - REQUIREJS([path], onRequired); - - function onRequired(pModule) { - - if (INFO_LOG === true) { console.log(spacePad(MODULE_NAME, 50) + " : " + "[INFO] " + path + " downloaded."); } - - loadModules(); - - } - } - catch (err) { - console.log(spacePad(MODULE_NAME, 50) + " : " + "[ERROR] loadDebugModule --> " + path + " --> err = " + err.stack); + function onRequired(pModule) { + if (INFO_LOG === true) { console.log(spacePad(MODULE_NAME, 50) + " : " + "[INFO] " + path + " downloaded."); } + loadModules(); } } /* And Finally, we start loading all the scripts we will inmediatelly need. */ - function loadModules() { + let path = "WebServer/AppLoader.js"; + REQUIREJS([path], onRequired); - try { - - if (INFO_LOG === true) { console.log(spacePad(MODULE_NAME, 50) + " : " + "[INFO] loadModules -> Entering function."); } - - let path = window.canvasApp.urlPrefix + "WebServer/AppLoader.js"; - - REQUIREJS([path], onRequired); - - function onRequired(pModule) { - - if (INFO_LOG === true) { console.log(spacePad(MODULE_NAME, 50) + " : " + "[INFO] " + path + " downloaded."); } - - let APP_LOADER_MODULE = newAppLoader(); - APP_LOADER_MODULE.loadModules(); - - } - } - catch (err) { - console.log(spacePad(MODULE_NAME, 50) + " : " + "[ERROR] loadModules --> " + path + " --> err = " + err.stack); + function onRequired(pModule) { + if (INFO_LOG === true) { console.log(spacePad(MODULE_NAME, 50) + " : " + "[INFO] " + path + " downloaded."); } + let APP_LOADER_MODULE = newAppLoader(); + APP_LOADER_MODULE.loadModules(); } } } diff --git a/BackendServers/WebServer/Fonts/Saira-Condensed.woff2 b/BackendServers/WebServer/Fonts/Saira-Condensed.woff2 new file mode 100644 index 000000000..8a7ff57d0 Binary files /dev/null and b/BackendServers/WebServer/Fonts/Saira-Condensed.woff2 differ diff --git a/BackendServers/WebServer/Fonts/Saira.woff2 b/BackendServers/WebServer/Fonts/Saira.woff2 new file mode 100644 index 000000000..5c1b242e1 Binary files /dev/null and b/BackendServers/WebServer/Fonts/Saira.woff2 differ diff --git a/BackendServers/WebServer/Fonts/fontawesome-webfont.ttf b/BackendServers/WebServer/Fonts/fontawesome-webfont.ttf new file mode 100644 index 000000000..35acda2fa Binary files /dev/null and b/BackendServers/WebServer/Fonts/fontawesome-webfont.ttf differ diff --git a/BackendServers/WebServer/Fonts/fontawesome-webfont.woff b/BackendServers/WebServer/Fonts/fontawesome-webfont.woff new file mode 100644 index 000000000..400014a4b Binary files /dev/null and b/BackendServers/WebServer/Fonts/fontawesome-webfont.woff differ diff --git a/BackendServers/WebServer/Fonts/fontawesome-webfont.woff2 b/BackendServers/WebServer/Fonts/fontawesome-webfont.woff2 new file mode 100644 index 000000000..4d13fc604 Binary files /dev/null and b/BackendServers/WebServer/Fonts/fontawesome-webfont.woff2 differ diff --git a/BackendServers/WebServer/Fonts/segoeui.woff b/BackendServers/WebServer/Fonts/segoeui.woff new file mode 100644 index 000000000..afe528bc7 Binary files /dev/null and b/BackendServers/WebServer/Fonts/segoeui.woff differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/150-next-phase-event.png b/BackendServers/WebServer/Images/Icons/style-01/150-next-phase-event.png deleted file mode 100644 index fe469f85f..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/150-next-phase-event.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/actual-rate.png b/BackendServers/WebServer/Images/Icons/style-01/actual-rate.png new file mode 100644 index 000000000..4c36b4bc3 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/actual-rate.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/algorithm-name.png b/BackendServers/WebServer/Images/Icons/style-01/algorithm-name.png new file mode 100644 index 000000000..7146ced5b Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/algorithm-name.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/analysis-1.png b/BackendServers/WebServer/Images/Icons/style-01/analysis-1.png deleted file mode 100644 index 8b3d61b9e..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/analysis-1.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/analysis.png b/BackendServers/WebServer/Images/Icons/style-01/analysis.png deleted file mode 100644 index 80ede07af..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/analysis.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/announcement.png b/BackendServers/WebServer/Images/Icons/style-01/announcement.png new file mode 100644 index 000000000..a19527b12 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/announcement.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/annualized-rate-of-return.png b/BackendServers/WebServer/Images/Icons/style-01/annualized-rate-of-return.png new file mode 100644 index 000000000..278adc3a4 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/annualized-rate-of-return.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/approve.png b/BackendServers/WebServer/Images/Icons/style-01/approve.png deleted file mode 100644 index 2145a1626..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/approve.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/attach.png b/BackendServers/WebServer/Images/Icons/style-01/attach.png deleted file mode 100644 index 678806e32..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/attach.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/session-backtesting.png b/BackendServers/WebServer/Images/Icons/style-01/backtesting-session.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/session-backtesting.png rename to BackendServers/WebServer/Images/Icons/style-01/backtesting-session.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/menu-backup.png b/BackendServers/WebServer/Images/Icons/style-01/backup.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/menu-backup.png rename to BackendServers/WebServer/Images/Icons/style-01/backup.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/balance.png b/BackendServers/WebServer/Images/Icons/style-01/balance.png new file mode 100644 index 000000000..a5c57b4b9 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/balance.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/band.png b/BackendServers/WebServer/Images/Icons/style-01/band.png deleted file mode 100644 index de6aa8c55..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/band.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/base-asset.png b/BackendServers/WebServer/Images/Icons/style-01/base-asset.png new file mode 100644 index 000000000..ce6d5b5d8 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/base-asset.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/begin-balance.png b/BackendServers/WebServer/Images/Icons/style-01/begin-balance.png new file mode 100644 index 000000000..b8e150248 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/begin-balance.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/begin-rate.png b/BackendServers/WebServer/Images/Icons/style-01/begin-rate.png new file mode 100644 index 000000000..45ea57dee Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/begin-rate.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/begin.png b/BackendServers/WebServer/Images/Icons/style-01/begin.png new file mode 100644 index 000000000..987caba2c Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/begin.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/bot-data-dependencies.png b/BackendServers/WebServer/Images/Icons/style-01/bot-data-dependencies.png new file mode 100644 index 000000000..476d5f8e8 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/bot-data-dependencies.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/bot-layers.png b/BackendServers/WebServer/Images/Icons/style-01/bot-layers.png new file mode 100644 index 000000000..6f1185b9f Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/bot-layers.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/bot-products.png b/BackendServers/WebServer/Images/Icons/style-01/bot-products.png new file mode 100644 index 000000000..5bd381b2b Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/bot-products.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/brainstorming.png b/BackendServers/WebServer/Images/Icons/style-01/brainstorming.png deleted file mode 100644 index 993bf0ec2..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/brainstorming.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/broken-link.png b/BackendServers/WebServer/Images/Icons/style-01/broken-link.png deleted file mode 100644 index 1d13ad8ac..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/broken-link.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/bullet-cancelled-order.png b/BackendServers/WebServer/Images/Icons/style-01/bullet-cancelled-order.png new file mode 100644 index 000000000..4034707bf Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/bullet-cancelled-order.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/bullet-error.png b/BackendServers/WebServer/Images/Icons/style-01/bullet-error.png new file mode 100644 index 000000000..8607ac4e7 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/bullet-error.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/bullet-info.png b/BackendServers/WebServer/Images/Icons/style-01/bullet-info.png new file mode 100644 index 000000000..af5a698d1 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/bullet-info.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/bullet-limit-buy-order-filled.png b/BackendServers/WebServer/Images/Icons/style-01/bullet-limit-buy-order-filled.png new file mode 100644 index 000000000..4de65d3f4 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/bullet-limit-buy-order-filled.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/bullet-limit-buy-order.png b/BackendServers/WebServer/Images/Icons/style-01/bullet-limit-buy-order.png new file mode 100644 index 000000000..31305169d Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/bullet-limit-buy-order.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/bullet-limit-sell-order-filled.png b/BackendServers/WebServer/Images/Icons/style-01/bullet-limit-sell-order-filled.png new file mode 100644 index 000000000..a95a47f44 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/bullet-limit-sell-order-filled.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/bullet-limit-sell-order.png b/BackendServers/WebServer/Images/Icons/style-01/bullet-limit-sell-order.png new file mode 100644 index 000000000..58a410544 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/bullet-limit-sell-order.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/bullet-market-buy-order-filled.png b/BackendServers/WebServer/Images/Icons/style-01/bullet-market-buy-order-filled.png new file mode 100644 index 000000000..de96a44e8 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/bullet-market-buy-order-filled.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/bullet-market-buy-order.png b/BackendServers/WebServer/Images/Icons/style-01/bullet-market-buy-order.png new file mode 100644 index 000000000..ae3cb45a9 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/bullet-market-buy-order.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/bullet-market-sell-order-filled.png b/BackendServers/WebServer/Images/Icons/style-01/bullet-market-sell-order-filled.png new file mode 100644 index 000000000..b131de218 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/bullet-market-sell-order-filled.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/bullet-market-sell-order.png b/BackendServers/WebServer/Images/Icons/style-01/bullet-market-sell-order.png new file mode 100644 index 000000000..cbec30b38 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/bullet-market-sell-order.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/bullet-warning.png b/BackendServers/WebServer/Images/Icons/style-01/bullet-warning.png new file mode 100644 index 000000000..2719f8ac2 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/bullet-warning.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/cancel-order-event.png b/BackendServers/WebServer/Images/Icons/style-01/cancel-order-event.png new file mode 100644 index 000000000..341ee7e42 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/cancel-order-event.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/cancel-order.png b/BackendServers/WebServer/Images/Icons/style-01/cancel-order.png new file mode 100644 index 000000000..4ac0a2ad1 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/cancel-order.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/candle.png b/BackendServers/WebServer/Images/Icons/style-01/candle.png new file mode 100644 index 000000000..64546a5ab Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/candle.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/candles.png b/BackendServers/WebServer/Images/Icons/style-01/candles.png deleted file mode 100644 index 8db4abd30..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/candles.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/chat.png b/BackendServers/WebServer/Images/Icons/style-01/chat.png deleted file mode 100644 index 0b424a267..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/chat.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/close-execution.png b/BackendServers/WebServer/Images/Icons/style-01/close-execution.png new file mode 100644 index 000000000..c8508470c Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/close-execution.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/close-order.png b/BackendServers/WebServer/Images/Icons/style-01/close-order.png new file mode 100644 index 000000000..a318696d7 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/close-order.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/close-position.png b/BackendServers/WebServer/Images/Icons/style-01/close-position.png new file mode 100644 index 000000000..8c769f44f Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/close-position.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/close-stage-event.png b/BackendServers/WebServer/Images/Icons/style-01/close-stage-event.png new file mode 100644 index 000000000..dbc9d5cfb Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/close-stage-event.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/close-stage.png b/BackendServers/WebServer/Images/Icons/style-01/close-stage.png new file mode 100644 index 000000000..cb64d4f3d Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/close-stage.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/close.png b/BackendServers/WebServer/Images/Icons/style-01/close.png new file mode 100644 index 000000000..43c923667 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/close.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/menu-tree-minus.png b/BackendServers/WebServer/Images/Icons/style-01/collapse.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/menu-tree-minus.png rename to BackendServers/WebServer/Images/Icons/style-01/collapse.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/compass.png b/BackendServers/WebServer/Images/Icons/style-01/compass.png deleted file mode 100644 index e9b80e7b7..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/compass.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/competition.png b/BackendServers/WebServer/Images/Icons/style-01/competition.png deleted file mode 100644 index 96082a10d..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/competition.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/testing.png b/BackendServers/WebServer/Images/Icons/style-01/condition.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/testing.png rename to BackendServers/WebServer/Images/Icons/style-01/condition.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/configuration.png b/BackendServers/WebServer/Images/Icons/style-01/configuration.png new file mode 100644 index 000000000..b9edd20c9 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/configuration.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/content.png b/BackendServers/WebServer/Images/Icons/style-01/content.png deleted file mode 100644 index b46362501..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/content.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/copy-path.png b/BackendServers/WebServer/Images/Icons/style-01/copy-path.png new file mode 100644 index 000000000..ca02cd314 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/copy-path.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/counters.png b/BackendServers/WebServer/Images/Icons/style-01/counters.png new file mode 100644 index 000000000..3a02b018a Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/counters.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/create-order-event.png b/BackendServers/WebServer/Images/Icons/style-01/create-order-event.png new file mode 100644 index 000000000..aac91c298 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/create-order-event.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/create-order.png b/BackendServers/WebServer/Images/Icons/style-01/create-order.png new file mode 100644 index 000000000..4eb5942c7 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/create-order.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/crypto-ecosystem.png b/BackendServers/WebServer/Images/Icons/style-01/crypto-ecosystem.png new file mode 100644 index 000000000..60b436b12 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/crypto-ecosystem.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/current.png b/BackendServers/WebServer/Images/Icons/style-01/current.png new file mode 100644 index 000000000..9c0f63baf Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/current.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/cycle.png b/BackendServers/WebServer/Images/Icons/style-01/cycle.png new file mode 100644 index 000000000..26e0af5f9 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/cycle.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/data-dependency-folder.png b/BackendServers/WebServer/Images/Icons/style-01/data-dependency-folder.png new file mode 100644 index 000000000..6bcf4558e Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/data-dependency-folder.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/data-mine-data-dependencies.png b/BackendServers/WebServer/Images/Icons/style-01/data-mine-data-dependencies.png new file mode 100644 index 000000000..53d09b64a Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/data-mine-data-dependencies.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/data-mine-products.png b/BackendServers/WebServer/Images/Icons/style-01/data-mine-products.png new file mode 100644 index 000000000..af676213e Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/data-mine-products.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/data-mine-tasks.png b/BackendServers/WebServer/Images/Icons/style-01/data-mine-tasks.png new file mode 100644 index 000000000..9bc5e1d7f Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/data-mine-tasks.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/session-independent-data.png b/BackendServers/WebServer/Images/Icons/style-01/data-mines-data.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/session-independent-data.png rename to BackendServers/WebServer/Images/Icons/style-01/data-mines-data.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/data-mining.png b/BackendServers/WebServer/Images/Icons/style-01/data-mining.png index 069479644..30c298ab4 100644 Binary files a/BackendServers/WebServer/Images/Icons/style-01/data-mining.png and b/BackendServers/WebServer/Images/Icons/style-01/data-mining.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/data-product-folder.png b/BackendServers/WebServer/Images/Icons/style-01/data-product-folder.png new file mode 100644 index 000000000..4e1c96544 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/data-product-folder.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/days.png b/BackendServers/WebServer/Images/Icons/style-01/days.png new file mode 100644 index 000000000..20d706f8a Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/days.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/delete.png b/BackendServers/WebServer/Images/Icons/style-01/delete.png index a26ebea98..2c31a2f3e 100644 Binary files a/BackendServers/WebServer/Images/Icons/style-01/delete.png and b/BackendServers/WebServer/Images/Icons/style-01/delete.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/design-tool.png b/BackendServers/WebServer/Images/Icons/style-01/design-tool.png deleted file mode 100644 index 7eb24f192..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/design-tool.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/distance-to-event.png b/BackendServers/WebServer/Images/Icons/style-01/distance-to-event.png new file mode 100644 index 000000000..4289fb186 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/distance-to-event.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/down.png b/BackendServers/WebServer/Images/Icons/style-01/down.png new file mode 100644 index 000000000..e6a4c776a Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/down.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/dynamic-indicator.png b/BackendServers/WebServer/Images/Icons/style-01/dynamic-indicator.png new file mode 100644 index 000000000..0ff75a16f Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/dynamic-indicator.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/end-balance.png b/BackendServers/WebServer/Images/Icons/style-01/end-balance.png new file mode 100644 index 000000000..10fee7632 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/end-balance.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/end-rate.png b/BackendServers/WebServer/Images/Icons/style-01/end-rate.png new file mode 100644 index 000000000..5eac98536 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/end-rate.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/end.png b/BackendServers/WebServer/Images/Icons/style-01/end.png new file mode 100644 index 000000000..b448a95ad Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/end.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/entry-target-rate.png b/BackendServers/WebServer/Images/Icons/style-01/entry-target-rate.png new file mode 100644 index 000000000..94564f194 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/entry-target-rate.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/entry-target-size.png b/BackendServers/WebServer/Images/Icons/style-01/entry-target-size.png new file mode 100644 index 000000000..d2087eefb Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/entry-target-size.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/episode-base-asset.png b/BackendServers/WebServer/Images/Icons/style-01/episode-base-asset.png new file mode 100644 index 000000000..286ed367c Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/episode-base-asset.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/episode-counters.png b/BackendServers/WebServer/Images/Icons/style-01/episode-counters.png new file mode 100644 index 000000000..a747a1b42 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/episode-counters.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/episode-quoted-asset.png b/BackendServers/WebServer/Images/Icons/style-01/episode-quoted-asset.png new file mode 100644 index 000000000..c2ef7c9ef Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/episode-quoted-asset.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/episode-statistics.png b/BackendServers/WebServer/Images/Icons/style-01/episode-statistics.png new file mode 100644 index 000000000..842566530 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/episode-statistics.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/episode.png b/BackendServers/WebServer/Images/Icons/style-01/episode.png new file mode 100644 index 000000000..dd5ad4592 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/episode.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/exchange-data-products.png b/BackendServers/WebServer/Images/Icons/style-01/exchange-data-products.png new file mode 100644 index 000000000..ce0ee40d9 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/exchange-data-products.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/exchange-data-tasks.png b/BackendServers/WebServer/Images/Icons/style-01/exchange-data-tasks.png new file mode 100644 index 000000000..1170f2d22 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/exchange-data-tasks.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/exchange-id.png b/BackendServers/WebServer/Images/Icons/style-01/exchange-id.png new file mode 100644 index 000000000..204ea68e4 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/exchange-id.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/exchange-orders.png b/BackendServers/WebServer/Images/Icons/style-01/exchange-orders.png new file mode 100644 index 000000000..43fa83f42 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/exchange-orders.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/exchange-tasks.png b/BackendServers/WebServer/Images/Icons/style-01/exchange-tasks.png new file mode 100644 index 000000000..72357c43a Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/exchange-tasks.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/exchange-trading-products.png b/BackendServers/WebServer/Images/Icons/style-01/exchange-trading-products.png new file mode 100644 index 000000000..e352bca8d Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/exchange-trading-products.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/exchange-trading-tasks.png b/BackendServers/WebServer/Images/Icons/style-01/exchange-trading-tasks.png new file mode 100644 index 000000000..adc788876 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/exchange-trading-tasks.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/execution-algorithm.png b/BackendServers/WebServer/Images/Icons/style-01/execution-algorithm.png new file mode 100644 index 000000000..7b0bce8a5 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/execution-algorithm.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/exit-target-rate.png b/BackendServers/WebServer/Images/Icons/style-01/exit-target-rate.png new file mode 100644 index 000000000..969ed0808 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/exit-target-rate.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/exit-target-size.png b/BackendServers/WebServer/Images/Icons/style-01/exit-target-size.png new file mode 100644 index 000000000..c7ea2f902 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/exit-target-size.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/exit-type.png b/BackendServers/WebServer/Images/Icons/style-01/exit-type.png new file mode 100644 index 000000000..0fd16e71d Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/exit-type.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/menu-tree-plus.png b/BackendServers/WebServer/Images/Icons/style-01/expand.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/menu-tree-plus.png rename to BackendServers/WebServer/Images/Icons/style-01/expand.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/fails.png b/BackendServers/WebServer/Images/Icons/style-01/fails.png new file mode 100644 index 000000000..bd0b988a3 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/fails.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/sitemap.png b/BackendServers/WebServer/Images/Icons/style-01/fee-structure.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/sitemap.png rename to BackendServers/WebServer/Images/Icons/style-01/fee-structure.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/fees-paid.png b/BackendServers/WebServer/Images/Icons/style-01/fees-paid.png new file mode 100644 index 000000000..f1f6de8ad Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/fees-paid.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/pipette.png b/BackendServers/WebServer/Images/Icons/style-01/formula.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/pipette.png rename to BackendServers/WebServer/Images/Icons/style-01/formula.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/session-paper-trading.png b/BackendServers/WebServer/Images/Icons/style-01/forward-testing-session.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/session-paper-trading.png rename to BackendServers/WebServer/Images/Icons/style-01/forward-testing-session.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/menu-mobility-freeze.png b/BackendServers/WebServer/Images/Icons/style-01/freeze.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/menu-mobility-freeze.png rename to BackendServers/WebServer/Images/Icons/style-01/freeze.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/full-board.png b/BackendServers/WebServer/Images/Icons/style-01/full-board.png new file mode 100644 index 000000000..aa13435b8 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/full-board.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/grid.png b/BackendServers/WebServer/Images/Icons/style-01/grid.png deleted file mode 100644 index b68f70a44..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/grid.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/headphones.png b/BackendServers/WebServer/Images/Icons/style-01/headphones.png deleted file mode 100644 index d7c099510..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/headphones.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/heartbeats.png b/BackendServers/WebServer/Images/Icons/style-01/heartbeats.png new file mode 100644 index 000000000..ef69b801e Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/heartbeats.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/histogram.png b/BackendServers/WebServer/Images/Icons/style-01/histogram.png deleted file mode 100644 index 6c5711764..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/histogram.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/hit-fail.png b/BackendServers/WebServer/Images/Icons/style-01/hit-fail.png new file mode 100644 index 000000000..dbf6e4cf0 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/hit-fail.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/hit-ratio.png b/BackendServers/WebServer/Images/Icons/style-01/hit-ratio.png new file mode 100644 index 000000000..b7b436c11 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/hit-ratio.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/hits.png b/BackendServers/WebServer/Images/Icons/style-01/hits.png new file mode 100644 index 000000000..0ed6d54cb Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/hits.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/html-code.png b/BackendServers/WebServer/Images/Icons/style-01/html-code.png new file mode 100644 index 000000000..ed3776799 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/html-code.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/html.png b/BackendServers/WebServer/Images/Icons/style-01/html.png deleted file mode 100644 index fa46b2b7b..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/html.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/identifier.png b/BackendServers/WebServer/Images/Icons/style-01/identifier.png new file mode 100644 index 000000000..eaa4605bb Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/identifier.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/image-condition.png b/BackendServers/WebServer/Images/Icons/style-01/image-condition.png new file mode 100644 index 000000000..1791f9c5d Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/image-condition.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/image-position.png b/BackendServers/WebServer/Images/Icons/style-01/image-position.png new file mode 100644 index 000000000..e46dd330f Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/image-position.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/image.png b/BackendServers/WebServer/Images/Icons/style-01/image.png index 60b436b12..41d647283 100644 Binary files a/BackendServers/WebServer/Images/Icons/style-01/image.png and b/BackendServers/WebServer/Images/Icons/style-01/image.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/index.png b/BackendServers/WebServer/Images/Icons/style-01/index.png new file mode 100644 index 000000000..ea03df35b Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/index.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/bot-indicator.png b/BackendServers/WebServer/Images/Icons/style-01/indicator-bot-instance.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/bot-indicator.png rename to BackendServers/WebServer/Images/Icons/style-01/indicator-bot-instance.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/indicator-bot.png b/BackendServers/WebServer/Images/Icons/style-01/indicator-bot.png new file mode 100644 index 000000000..96a7d7fd1 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/indicator-bot.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/indicator-function.png b/BackendServers/WebServer/Images/Icons/style-01/indicator-function.png new file mode 100644 index 000000000..3f02bd8f4 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/indicator-function.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/process.png b/BackendServers/WebServer/Images/Icons/style-01/indicator-process-instance.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/process.png rename to BackendServers/WebServer/Images/Icons/style-01/indicator-process-instance.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/initial-targets.png b/BackendServers/WebServer/Images/Icons/style-01/initial-targets.png new file mode 100644 index 000000000..7c5c96d16 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/initial-targets.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/javascript-code.png b/BackendServers/WebServer/Images/Icons/style-01/javascript-code.png new file mode 100644 index 000000000..43f82c782 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/javascript-code.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/key-arrows.png b/BackendServers/WebServer/Images/Icons/style-01/key-arrows.png new file mode 100644 index 000000000..2bf524627 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/key-arrows.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/login.png b/BackendServers/WebServer/Images/Icons/style-01/key-reference.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/login.png rename to BackendServers/WebServer/Images/Icons/style-01/key-reference.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/last.png b/BackendServers/WebServer/Images/Icons/style-01/last.png new file mode 100644 index 000000000..ef4a328be Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/last.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/layer-bands.png b/BackendServers/WebServer/Images/Icons/style-01/layer-bands.png new file mode 100644 index 000000000..4c11d52ac Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/layer-bands.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/layer-candles.png b/BackendServers/WebServer/Images/Icons/style-01/layer-candles.png new file mode 100644 index 000000000..d571f45b0 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/layer-candles.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/layer-folder.png b/BackendServers/WebServer/Images/Icons/style-01/layer-folder.png new file mode 100644 index 000000000..9db1e6ebb Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/layer-folder.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/layer-histogram.png b/BackendServers/WebServer/Images/Icons/style-01/layer-histogram.png new file mode 100644 index 000000000..ebc921a13 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/layer-histogram.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/layer-moving-averages.png b/BackendServers/WebServer/Images/Icons/style-01/layer-moving-averages.png new file mode 100644 index 000000000..b5be71cad Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/layer-moving-averages.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/layer-oscilator.png b/BackendServers/WebServer/Images/Icons/style-01/layer-oscilator.png new file mode 100644 index 000000000..f294c55f1 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/layer-oscilator.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/layer-resistance.png b/BackendServers/WebServer/Images/Icons/style-01/layer-resistance.png new file mode 100644 index 000000000..2bf34ab99 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/layer-resistance.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/layer-support.png b/BackendServers/WebServer/Images/Icons/style-01/layer-support.png new file mode 100644 index 000000000..fe1b5e107 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/layer-support.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/layer-trends.png b/BackendServers/WebServer/Images/Icons/style-01/layer-trends.png new file mode 100644 index 000000000..54d5922f9 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/layer-trends.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/layer-volume.png b/BackendServers/WebServer/Images/Icons/style-01/layer-volume.png new file mode 100644 index 000000000..3fd663f9f Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/layer-volume.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/attractive.png b/BackendServers/WebServer/Images/Icons/style-01/layer.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/attractive.png rename to BackendServers/WebServer/Images/Icons/style-01/layer.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/layer-manager.png b/BackendServers/WebServer/Images/Icons/style-01/layers-manager.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/layer-manager.png rename to BackendServers/WebServer/Images/Icons/style-01/layers-manager.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/layout.png b/BackendServers/WebServer/Images/Icons/style-01/layout.png deleted file mode 100644 index eb93ce845..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/layout.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/limit-buy-order.png b/BackendServers/WebServer/Images/Icons/style-01/limit-buy-order.png new file mode 100644 index 000000000..0adb6de55 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/limit-buy-order.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/limit-buy-orders.png b/BackendServers/WebServer/Images/Icons/style-01/limit-buy-orders.png new file mode 100644 index 000000000..a1eac1979 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/limit-buy-orders.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/limit-order.png b/BackendServers/WebServer/Images/Icons/style-01/limit-order.png new file mode 100644 index 000000000..fdcbd2a61 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/limit-order.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/limit-sell-order.png b/BackendServers/WebServer/Images/Icons/style-01/limit-sell-order.png new file mode 100644 index 000000000..164c86c42 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/limit-sell-order.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/limit-sell-orders.png b/BackendServers/WebServer/Images/Icons/style-01/limit-sell-orders.png new file mode 100644 index 000000000..ca6bba333 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/limit-sell-orders.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/session-live-trading.png b/BackendServers/WebServer/Images/Icons/style-01/live-trading-session.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/session-live-trading.png rename to BackendServers/WebServer/Images/Icons/style-01/live-trading-session.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/loading.png b/BackendServers/WebServer/Images/Icons/style-01/loading.png deleted file mode 100644 index 845c02cbd..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/loading.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/lock.png b/BackendServers/WebServer/Images/Icons/style-01/lock.png new file mode 100644 index 000000000..c84abdce4 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/lock.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/manage-stage.png b/BackendServers/WebServer/Images/Icons/style-01/manage-stage.png new file mode 100644 index 000000000..b3cd204b5 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/manage-stage.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/managed-stop-loss.png b/BackendServers/WebServer/Images/Icons/style-01/managed-stop-loss.png new file mode 100644 index 000000000..4b0ed532a Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/managed-stop-loss.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/managed-take-profit.png b/BackendServers/WebServer/Images/Icons/style-01/managed-take-profit.png new file mode 100644 index 000000000..cd36856e7 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/managed-take-profit.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/market-base-asset.png b/BackendServers/WebServer/Images/Icons/style-01/market-base-asset.png new file mode 100644 index 000000000..ce6d5b5d8 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/market-base-asset.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/market-buy-order.png b/BackendServers/WebServer/Images/Icons/style-01/market-buy-order.png new file mode 100644 index 000000000..efc7c70d1 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/market-buy-order.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/market-buy-orders.png b/BackendServers/WebServer/Images/Icons/style-01/market-buy-orders.png new file mode 100644 index 000000000..0b3b7893d Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/market-buy-orders.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/single-market-data.png b/BackendServers/WebServer/Images/Icons/style-01/market-data-products.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/single-market-data.png rename to BackendServers/WebServer/Images/Icons/style-01/market-data-products.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/market-data-tasks.png b/BackendServers/WebServer/Images/Icons/style-01/market-data-tasks.png new file mode 100644 index 000000000..196e690b2 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/market-data-tasks.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/market-order.png b/BackendServers/WebServer/Images/Icons/style-01/market-order.png new file mode 100644 index 000000000..eb9296d01 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/market-order.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/market-quoted-asset.png b/BackendServers/WebServer/Images/Icons/style-01/market-quoted-asset.png new file mode 100644 index 000000000..ce6d5b5d8 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/market-quoted-asset.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/market-reference.png b/BackendServers/WebServer/Images/Icons/style-01/market-reference.png new file mode 100644 index 000000000..ba224734d Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/market-reference.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/market-sell-order.png b/BackendServers/WebServer/Images/Icons/style-01/market-sell-order.png new file mode 100644 index 000000000..c76356b46 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/market-sell-order.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/market-sell-orders.png b/BackendServers/WebServer/Images/Icons/style-01/market-sell-orders.png new file mode 100644 index 000000000..37f6f2363 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/market-sell-orders.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/market-trading-products.png b/BackendServers/WebServer/Images/Icons/style-01/market-trading-products.png new file mode 100644 index 000000000..be8812962 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/market-trading-products.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/market-trading-tasks.png b/BackendServers/WebServer/Images/Icons/style-01/market-trading-tasks.png new file mode 100644 index 000000000..8da1ec3ed Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/market-trading-tasks.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/max.png b/BackendServers/WebServer/Images/Icons/style-01/max.png new file mode 100644 index 000000000..4e11b9d64 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/max.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/menu-tensor-fixed-angles.png b/BackendServers/WebServer/Images/Icons/style-01/menu-tensor-fixed-angles.png deleted file mode 100644 index 9fe32b7a2..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/menu-tensor-fixed-angles.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/menu-tensor-free-angles.png b/BackendServers/WebServer/Images/Icons/style-01/menu-tensor-free-angles.png deleted file mode 100644 index 2fdd02cca..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/menu-tensor-free-angles.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/min.png b/BackendServers/WebServer/Images/Icons/style-01/min.png new file mode 100644 index 000000000..28214e197 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/min.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/mouse-wheel.png b/BackendServers/WebServer/Images/Icons/style-01/mouse-wheel.png deleted file mode 100644 index c26a3517a..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/mouse-wheel.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/move-to-phase.png b/BackendServers/WebServer/Images/Icons/style-01/move-to-phase.png new file mode 100644 index 000000000..e149ee484 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/move-to-phase.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/moving-average.png b/BackendServers/WebServer/Images/Icons/style-01/moving-average.png deleted file mode 100644 index 5d62c67e3..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/moving-average.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/next-phase.png b/BackendServers/WebServer/Images/Icons/style-01/next-phase.png new file mode 100644 index 000000000..efc14dbd0 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/next-phase.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/open-execution.png b/BackendServers/WebServer/Images/Icons/style-01/open-execution.png new file mode 100644 index 000000000..bcf9cfcf7 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/open-execution.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/open-stage.png b/BackendServers/WebServer/Images/Icons/style-01/open-stage.png new file mode 100644 index 000000000..7b81b1619 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/open-stage.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/open.png b/BackendServers/WebServer/Images/Icons/style-01/open.png new file mode 100644 index 000000000..67e31d7f7 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/open.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/order-base-asset.png b/BackendServers/WebServer/Images/Icons/style-01/order-base-asset.png new file mode 100644 index 000000000..9e5161b03 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/order-base-asset.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/order-counters.png b/BackendServers/WebServer/Images/Icons/style-01/order-counters.png new file mode 100644 index 000000000..3a02b018a Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/order-counters.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/order-name.png b/BackendServers/WebServer/Images/Icons/style-01/order-name.png new file mode 100644 index 000000000..01ee8a09c Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/order-name.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/order-quoted-asset.png b/BackendServers/WebServer/Images/Icons/style-01/order-quoted-asset.png new file mode 100644 index 000000000..c2ef7c9ef Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/order-quoted-asset.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/order-rate.png b/BackendServers/WebServer/Images/Icons/style-01/order-rate.png new file mode 100644 index 000000000..9504cb870 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/order-rate.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/order-statistics.png b/BackendServers/WebServer/Images/Icons/style-01/order-statistics.png new file mode 100644 index 000000000..842566530 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/order-statistics.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/orders.png b/BackendServers/WebServer/Images/Icons/style-01/orders.png new file mode 100644 index 000000000..6ba5b11cf Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/orders.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/oscillator.png b/BackendServers/WebServer/Images/Icons/style-01/oscillator.png deleted file mode 100644 index 7c4f9445a..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/oscillator.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/output-dataset-folder.png b/BackendServers/WebServer/Images/Icons/style-01/output-dataset-folder.png new file mode 100644 index 000000000..2312a20ff Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/output-dataset-folder.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/data-entry.png b/BackendServers/WebServer/Images/Icons/style-01/panel-data.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/data-entry.png rename to BackendServers/WebServer/Images/Icons/style-01/panel-data.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/pantone.png b/BackendServers/WebServer/Images/Icons/style-01/pantone.png deleted file mode 100644 index 0ea9cae40..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/pantone.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/paper-plane.png b/BackendServers/WebServer/Images/Icons/style-01/paper-plane.png deleted file mode 100644 index b61292bbc..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/paper-plane.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/session-forward-testing.png b/BackendServers/WebServer/Images/Icons/style-01/paper-trading-session.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/session-forward-testing.png rename to BackendServers/WebServer/Images/Icons/style-01/paper-trading-session.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/settings.png b/BackendServers/WebServer/Images/Icons/style-01/parameters.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/settings.png rename to BackendServers/WebServer/Images/Icons/style-01/parameters.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/percentage-filled.png b/BackendServers/WebServer/Images/Icons/style-01/percentage-filled.png new file mode 100644 index 000000000..861ce4807 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/percentage-filled.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/periods.png b/BackendServers/WebServer/Images/Icons/style-01/periods.png new file mode 100644 index 000000000..497b9a286 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/periods.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/placeholder.png b/BackendServers/WebServer/Images/Icons/style-01/phase-0.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/placeholder.png rename to BackendServers/WebServer/Images/Icons/style-01/phase-0.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/phase-1.png b/BackendServers/WebServer/Images/Icons/style-01/phase-1.png new file mode 100644 index 000000000..b9d3765cf Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/phase-1.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/phase.png b/BackendServers/WebServer/Images/Icons/style-01/phase.png new file mode 100644 index 000000000..b9d3765cf Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/phase.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/photo-camera.png b/BackendServers/WebServer/Images/Icons/style-01/photo-camera.png deleted file mode 100644 index 77336bdff..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/photo-camera.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/piggy-bank.png b/BackendServers/WebServer/Images/Icons/style-01/piggy-bank.png deleted file mode 100644 index 5fe9f5062..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/piggy-bank.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/menu-fix-pinned.png b/BackendServers/WebServer/Images/Icons/style-01/pinned.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/menu-fix-pinned.png rename to BackendServers/WebServer/Images/Icons/style-01/pinned.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/pixel.png b/BackendServers/WebServer/Images/Icons/style-01/pixel.png deleted file mode 100644 index 0dd36069e..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/pixel.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/planning.png b/BackendServers/WebServer/Images/Icons/style-01/planning.png deleted file mode 100644 index d6e3db3d5..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/planning.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/play.png b/BackendServers/WebServer/Images/Icons/style-01/play.png new file mode 100644 index 000000000..b6f5da755 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/play.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/chart-point-formula.png b/BackendServers/WebServer/Images/Icons/style-01/point-formula.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/chart-point-formula.png rename to BackendServers/WebServer/Images/Icons/style-01/point-formula.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/chart-point.png b/BackendServers/WebServer/Images/Icons/style-01/point.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/chart-point.png rename to BackendServers/WebServer/Images/Icons/style-01/point.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/shapes-polygon-body.png b/BackendServers/WebServer/Images/Icons/style-01/polygon-body.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/shapes-polygon-body.png rename to BackendServers/WebServer/Images/Icons/style-01/polygon-body.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/shapes-polygon-border.png b/BackendServers/WebServer/Images/Icons/style-01/polygon-border.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/shapes-polygon-border.png rename to BackendServers/WebServer/Images/Icons/style-01/polygon-border.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/polygon-condition.png b/BackendServers/WebServer/Images/Icons/style-01/polygon-condition.png new file mode 100644 index 000000000..bb5d9dc0d Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/polygon-condition.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/shapes-polygon-vertex.png b/BackendServers/WebServer/Images/Icons/style-01/polygon-vertex.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/shapes-polygon-vertex.png rename to BackendServers/WebServer/Images/Icons/style-01/polygon-vertex.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/shapes-polygon.png b/BackendServers/WebServer/Images/Icons/style-01/polygon.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/shapes-polygon.png rename to BackendServers/WebServer/Images/Icons/style-01/polygon.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/position-base-asset.png b/BackendServers/WebServer/Images/Icons/style-01/position-base-asset.png new file mode 100644 index 000000000..286ed367c Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/position-base-asset.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/position-counters.png b/BackendServers/WebServer/Images/Icons/style-01/position-counters.png new file mode 100644 index 000000000..3a02b018a Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/position-counters.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/position-quoted-asset.png b/BackendServers/WebServer/Images/Icons/style-01/position-quoted-asset.png new file mode 100644 index 000000000..c2ef7c9ef Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/position-quoted-asset.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/stage-open-postion-rate.png b/BackendServers/WebServer/Images/Icons/style-01/position-rate.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/stage-open-postion-rate.png rename to BackendServers/WebServer/Images/Icons/style-01/position-rate.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/stage-open-position-size.png b/BackendServers/WebServer/Images/Icons/style-01/position-size.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/stage-open-position-size.png rename to BackendServers/WebServer/Images/Icons/style-01/position-size.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/position-statistics.png b/BackendServers/WebServer/Images/Icons/style-01/position-statistics.png new file mode 100644 index 000000000..842566530 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/position-statistics.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/position.png b/BackendServers/WebServer/Images/Icons/style-01/position.png new file mode 100644 index 000000000..c97dd7e0c Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/position.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/positions.png b/BackendServers/WebServer/Images/Icons/style-01/positions.png new file mode 100644 index 000000000..c97dd7e0c Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/positions.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/procedure-loop.png b/BackendServers/WebServer/Images/Icons/style-01/procedure-loop.png index bd5b5990a..01ca63c75 100644 Binary files a/BackendServers/WebServer/Images/Icons/style-01/procedure-loop.png and b/BackendServers/WebServer/Images/Icons/style-01/procedure-loop.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/product-definition-folder.png b/BackendServers/WebServer/Images/Icons/style-01/product-definition-folder.png new file mode 100644 index 000000000..d2ea60300 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/product-definition-folder.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/profit-loss.png b/BackendServers/WebServer/Images/Icons/style-01/profit-loss.png new file mode 100644 index 000000000..a7ae65adc Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/profit-loss.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/promotion.png b/BackendServers/WebServer/Images/Icons/style-01/promotion.png deleted file mode 100644 index 2d38a607d..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/promotion.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/quality.png b/BackendServers/WebServer/Images/Icons/style-01/quality.png deleted file mode 100644 index 10ee8b6bd..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/quality.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/quoted-asset.png b/BackendServers/WebServer/Images/Icons/style-01/quoted-asset.png new file mode 100644 index 000000000..ce6d5b5d8 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/quoted-asset.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/rate.png b/BackendServers/WebServer/Images/Icons/style-01/rate.png new file mode 100644 index 000000000..9504cb870 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/rate.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/reset.png b/BackendServers/WebServer/Images/Icons/style-01/reset.png new file mode 100644 index 000000000..8f1a8de04 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/reset.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/responsive.png b/BackendServers/WebServer/Images/Icons/style-01/responsive.png deleted file mode 100644 index 3de364530..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/responsive.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/resume.png b/BackendServers/WebServer/Images/Icons/style-01/resume.png new file mode 100644 index 000000000..d9b831b93 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/resume.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/roi.png b/BackendServers/WebServer/Images/Icons/style-01/roi.png new file mode 100644 index 000000000..10ef69bb9 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/roi.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/run.png b/BackendServers/WebServer/Images/Icons/style-01/run.png new file mode 100644 index 000000000..b6f5da755 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/run.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/search.png b/BackendServers/WebServer/Images/Icons/style-01/search.png deleted file mode 100644 index 595845f03..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/search.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/security.png b/BackendServers/WebServer/Images/Icons/style-01/security.png deleted file mode 100644 index cc32f2462..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/security.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/bot-sensor.png b/BackendServers/WebServer/Images/Icons/style-01/sensor-bot-instance.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/bot-sensor.png rename to BackendServers/WebServer/Images/Icons/style-01/sensor-bot-instance.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/sensor-bot.png b/BackendServers/WebServer/Images/Icons/style-01/sensor-bot.png new file mode 100644 index 000000000..650a239d6 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/sensor-bot.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/sensor-process-instance.png b/BackendServers/WebServer/Images/Icons/style-01/sensor-process-instance.png new file mode 100644 index 000000000..bf6e71161 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/sensor-process-instance.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/serial-number.png b/BackendServers/WebServer/Images/Icons/style-01/serial-number.png new file mode 100644 index 000000000..0b813a476 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/serial-number.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/session-base-asset.png b/BackendServers/WebServer/Images/Icons/style-01/session-base-asset.png new file mode 100644 index 000000000..e3a799cc0 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/session-base-asset.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/session-quoted-asset.png b/BackendServers/WebServer/Images/Icons/style-01/session-quoted-asset.png new file mode 100644 index 000000000..c2ef7c9ef Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/session-quoted-asset.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/session-reference.png b/BackendServers/WebServer/Images/Icons/style-01/session-reference.png index d3c017532..8753ae7bc 100644 Binary files a/BackendServers/WebServer/Images/Icons/style-01/session-reference.png and b/BackendServers/WebServer/Images/Icons/style-01/session-reference.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/menu-share.png b/BackendServers/WebServer/Images/Icons/style-01/share.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/menu-share.png rename to BackendServers/WebServer/Images/Icons/style-01/share.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/simulated-actual-rate.png b/BackendServers/WebServer/Images/Icons/style-01/simulated-actual-rate.png new file mode 100644 index 000000000..8ea6b98af Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/simulated-actual-rate.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/simulated-exchange-events.png b/BackendServers/WebServer/Images/Icons/style-01/simulated-exchange-events.png new file mode 100644 index 000000000..21c1014a2 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/simulated-exchange-events.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/simulated-fees-paid.png b/BackendServers/WebServer/Images/Icons/style-01/simulated-fees-paid.png new file mode 100644 index 000000000..c26c2ad85 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/simulated-fees-paid.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/simulated-partial-fill.png b/BackendServers/WebServer/Images/Icons/style-01/simulated-partial-fill.png new file mode 100644 index 000000000..196efe4a3 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/simulated-partial-fill.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/situation-name.png b/BackendServers/WebServer/Images/Icons/style-01/situation-name.png new file mode 100644 index 000000000..2f287ae43 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/situation-name.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/pyramid.png b/BackendServers/WebServer/Images/Icons/style-01/situation.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/pyramid.png rename to BackendServers/WebServer/Images/Icons/style-01/situation.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/size-filled.png b/BackendServers/WebServer/Images/Icons/style-01/size-filled.png new file mode 100644 index 000000000..e0a6c5002 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/size-filled.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/size-placed.png b/BackendServers/WebServer/Images/Icons/style-01/size-placed.png new file mode 100644 index 000000000..cb7c3df05 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/size-placed.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/size.png b/BackendServers/WebServer/Images/Icons/style-01/size.png new file mode 100644 index 000000000..cf57e7c55 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/size.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/support.png b/BackendServers/WebServer/Images/Icons/style-01/slippage.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/support.png rename to BackendServers/WebServer/Images/Icons/style-01/slippage.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/snapshots.png b/BackendServers/WebServer/Images/Icons/style-01/snapshots.png new file mode 100644 index 000000000..0a70abbd5 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/snapshots.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/social-bot.png b/BackendServers/WebServer/Images/Icons/style-01/social-bot.png deleted file mode 100644 index 1df5bcc28..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/social-bot.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/stage-base-asset.png b/BackendServers/WebServer/Images/Icons/style-01/stage-base-asset.png new file mode 100644 index 000000000..286ed367c Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/stage-base-asset.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/stage-close.png b/BackendServers/WebServer/Images/Icons/style-01/stage-close.png deleted file mode 100644 index beb6dc1bd..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/stage-close.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/stage-open-take-profit.png b/BackendServers/WebServer/Images/Icons/style-01/stage-open-take-profit.png deleted file mode 100644 index c3db5908e..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/stage-open-take-profit.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/stage-quoted-asset.png b/BackendServers/WebServer/Images/Icons/style-01/stage-quoted-asset.png new file mode 100644 index 000000000..c2ef7c9ef Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/stage-quoted-asset.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/stage-trigger-take-position.png b/BackendServers/WebServer/Images/Icons/style-01/stage-trigger-take-position.png deleted file mode 100644 index 5e03218d2..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/stage-trigger-take-position.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/stage-trigger-trigger-on.png b/BackendServers/WebServer/Images/Icons/style-01/stage-trigger-trigger-on.png deleted file mode 100644 index e56d56f64..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/stage-trigger-trigger-on.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/startup.png b/BackendServers/WebServer/Images/Icons/style-01/startup.png deleted file mode 100644 index 7ed8d6cb0..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/startup.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/statistics.png b/BackendServers/WebServer/Images/Icons/style-01/statistics.png new file mode 100644 index 000000000..61232f2f3 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/statistics.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/status.png b/BackendServers/WebServer/Images/Icons/style-01/status.png new file mode 100644 index 000000000..ffa7254ad Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/status.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/stop-loss-phase.png b/BackendServers/WebServer/Images/Icons/style-01/stop-loss-phase.png new file mode 100644 index 000000000..2c028a362 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/stop-loss-phase.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/stop-loss-position.png b/BackendServers/WebServer/Images/Icons/style-01/stop-loss-position.png new file mode 100644 index 000000000..197710052 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/stop-loss-position.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/stop-loss.png b/BackendServers/WebServer/Images/Icons/style-01/stop-loss.png new file mode 100644 index 000000000..4b0ed532a Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/stop-loss.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/stop.png b/BackendServers/WebServer/Images/Icons/style-01/stop.png index 65fff4f18..9ab9dadd6 100644 Binary files a/BackendServers/WebServer/Images/Icons/style-01/stop.png and b/BackendServers/WebServer/Images/Icons/style-01/stop.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/strategies.png b/BackendServers/WebServer/Images/Icons/style-01/strategies.png new file mode 100644 index 000000000..7036ea65a Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/strategies.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/strategy-close-stage.png b/BackendServers/WebServer/Images/Icons/style-01/strategy-close-stage.png new file mode 100644 index 000000000..512e4223e Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/strategy-close-stage.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/strategy-counters.png b/BackendServers/WebServer/Images/Icons/style-01/strategy-counters.png new file mode 100644 index 000000000..ffe21fcde Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/strategy-counters.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/strategy-manage-stage.png b/BackendServers/WebServer/Images/Icons/style-01/strategy-manage-stage.png new file mode 100644 index 000000000..0a5917259 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/strategy-manage-stage.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/strategy-name.png b/BackendServers/WebServer/Images/Icons/style-01/strategy-name.png new file mode 100644 index 000000000..99abc01af Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/strategy-name.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/stage-open.png b/BackendServers/WebServer/Images/Icons/style-01/strategy-open-stage.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/stage-open.png rename to BackendServers/WebServer/Images/Icons/style-01/strategy-open-stage.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/stage-trigger.png b/BackendServers/WebServer/Images/Icons/style-01/strategy-trigger-stage.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/stage-trigger.png rename to BackendServers/WebServer/Images/Icons/style-01/strategy-trigger-stage.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/strategy.png b/BackendServers/WebServer/Images/Icons/style-01/strategy.png new file mode 100644 index 000000000..de7cad2cb Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/strategy.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/super-actions.png b/BackendServers/WebServer/Images/Icons/style-01/super-actions.png new file mode 100644 index 000000000..bd4a29da9 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/super-actions.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/take-position-event.png b/BackendServers/WebServer/Images/Icons/style-01/take-position-event.png new file mode 100644 index 000000000..1e552cd8c Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/take-position-event.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/take-position.png b/BackendServers/WebServer/Images/Icons/style-01/take-position.png new file mode 100644 index 000000000..1e552cd8c Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/take-position.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/take-profit-phase.png b/BackendServers/WebServer/Images/Icons/style-01/take-profit-phase.png new file mode 100644 index 000000000..e0c331046 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/take-profit-phase.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/take-profit-position.png b/BackendServers/WebServer/Images/Icons/style-01/take-profit-position.png new file mode 100644 index 000000000..89797528e Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/take-profit-position.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/take-profit.png b/BackendServers/WebServer/Images/Icons/style-01/take-profit.png new file mode 100644 index 000000000..ec35d6df6 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/take-profit.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/tap.png b/BackendServers/WebServer/Images/Icons/style-01/tap.png deleted file mode 100644 index 7f958daf5..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/tap.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/target-rate.png b/BackendServers/WebServer/Images/Icons/style-01/target-rate.png new file mode 100644 index 000000000..f90f28e84 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/target-rate.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/target-size-in-base-asset.png b/BackendServers/WebServer/Images/Icons/style-01/target-size-in-base-asset.png new file mode 100644 index 000000000..c647b1c60 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/target-size-in-base-asset.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/target-size-in-quoted-asset.png b/BackendServers/WebServer/Images/Icons/style-01/target-size-in-quoted-asset.png new file mode 100644 index 000000000..7afd7fe81 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/target-size-in-quoted-asset.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/target-size.png b/BackendServers/WebServer/Images/Icons/style-01/target-size.png new file mode 100644 index 000000000..bb0822363 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/target-size.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/targeting.png b/BackendServers/WebServer/Images/Icons/style-01/targeting.png deleted file mode 100644 index ef53bb1e6..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/targeting.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/task.png b/BackendServers/WebServer/Images/Icons/style-01/task.png index e85e1ba2b..8a7051d9f 100644 Binary files a/BackendServers/WebServer/Images/Icons/style-01/task.png and b/BackendServers/WebServer/Images/Icons/style-01/task.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/text-condition.png b/BackendServers/WebServer/Images/Icons/style-01/text-condition.png new file mode 100644 index 000000000..cc0ad2239 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/text-condition.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/text-formula.png b/BackendServers/WebServer/Images/Icons/style-01/text-formula.png new file mode 100644 index 000000000..de0196867 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/text-formula.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/text-position.png b/BackendServers/WebServer/Images/Icons/style-01/text-position.png new file mode 100644 index 000000000..592c32a3e Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/text-position.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/text-style.png b/BackendServers/WebServer/Images/Icons/style-01/text-style.png new file mode 100644 index 000000000..a9ee3d7b4 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/text-style.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/text.png b/BackendServers/WebServer/Images/Icons/style-01/text.png index 959e64e90..ab4ac4e40 100644 Binary files a/BackendServers/WebServer/Images/Icons/style-01/text.png and b/BackendServers/WebServer/Images/Icons/style-01/text.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/time-period.png b/BackendServers/WebServer/Images/Icons/style-01/time-frame.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/time-period.png rename to BackendServers/WebServer/Images/Icons/style-01/time-frame.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/time-frames-filter.png b/BackendServers/WebServer/Images/Icons/style-01/time-frames-filter.png new file mode 100644 index 000000000..00f2e12e9 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/time-frames-filter.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/schedule.png b/BackendServers/WebServer/Images/Icons/style-01/time-range.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/schedule.png rename to BackendServers/WebServer/Images/Icons/style-01/time-range.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/time-line-chart.png b/BackendServers/WebServer/Images/Icons/style-01/timeline-chart.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/time-line-chart.png rename to BackendServers/WebServer/Images/Icons/style-01/timeline-chart.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/timeline.png b/BackendServers/WebServer/Images/Icons/style-01/timeline.png deleted file mode 100644 index 8a7051d9f..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/timeline.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/toggle-panel-off.png b/BackendServers/WebServer/Images/Icons/style-01/toggle-panel-off.png index 032a33409..820109293 100644 Binary files a/BackendServers/WebServer/Images/Icons/style-01/toggle-panel-off.png and b/BackendServers/WebServer/Images/Icons/style-01/toggle-panel-off.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/toggle-panel-on.png b/BackendServers/WebServer/Images/Icons/style-01/toggle-panel-on.png new file mode 100644 index 000000000..001875359 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/toggle-panel-on.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/tools.png b/BackendServers/WebServer/Images/Icons/style-01/tools.png deleted file mode 100644 index a22d7f0a3..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/tools.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/trading-bot-instance.png b/BackendServers/WebServer/Images/Icons/style-01/trading-bot-instance.png new file mode 100644 index 000000000..7783471df Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/trading-bot-instance.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/trading-bot.png b/BackendServers/WebServer/Images/Icons/style-01/trading-bot.png new file mode 100644 index 000000000..7783471df Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/trading-bot.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/trading-engine-reference.png b/BackendServers/WebServer/Images/Icons/style-01/trading-engine-reference.png new file mode 100644 index 000000000..2d3393503 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/trading-engine-reference.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/bot-trading.png b/BackendServers/WebServer/Images/Icons/style-01/trading-engine.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/bot-trading.png rename to BackendServers/WebServer/Images/Icons/style-01/trading-engine.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/trading-mine-products.png b/BackendServers/WebServer/Images/Icons/style-01/trading-mine-products.png new file mode 100644 index 000000000..84957c842 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/trading-mine-products.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/trading-mine-tasks.png b/BackendServers/WebServer/Images/Icons/style-01/trading-mine-tasks.png new file mode 100644 index 000000000..f27e13d53 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/trading-mine-tasks.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/trading-mine.png b/BackendServers/WebServer/Images/Icons/style-01/trading-mine.png new file mode 100644 index 000000000..9c5299e7f Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/trading-mine.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/session-based-data.png b/BackendServers/WebServer/Images/Icons/style-01/trading-mines-data.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/session-based-data.png rename to BackendServers/WebServer/Images/Icons/style-01/trading-mines-data.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/trading-process-instance.png b/BackendServers/WebServer/Images/Icons/style-01/trading-process-instance.png new file mode 100644 index 000000000..bf6e71161 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/trading-process-instance.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/trading-strategy.png b/BackendServers/WebServer/Images/Icons/style-01/trading-strategy.png new file mode 100644 index 000000000..7036ea65a Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/trading-strategy.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/trading-system-reference.png b/BackendServers/WebServer/Images/Icons/style-01/trading-system-reference.png new file mode 100644 index 000000000..0bdf45019 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/trading-system-reference.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/trading-system.png b/BackendServers/WebServer/Images/Icons/style-01/trading-system.png new file mode 100644 index 000000000..e0ab51d3c Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/trading-system.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/trend.png b/BackendServers/WebServer/Images/Icons/style-01/trend.png deleted file mode 100644 index 1a57bb1a1..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/trend.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/stage-trigger-trigger-off.png b/BackendServers/WebServer/Images/Icons/style-01/trigger-off-event.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/stage-trigger-trigger-off.png rename to BackendServers/WebServer/Images/Icons/style-01/trigger-off-event.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/trigger-off.png b/BackendServers/WebServer/Images/Icons/style-01/trigger-off.png new file mode 100644 index 000000000..cb1076837 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/trigger-off.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/chronometer.png b/BackendServers/WebServer/Images/Icons/style-01/trigger-on-event.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/chronometer.png rename to BackendServers/WebServer/Images/Icons/style-01/trigger-on-event.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/trigger-on.png b/BackendServers/WebServer/Images/Icons/style-01/trigger-on.png new file mode 100644 index 000000000..9f4821359 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/trigger-on.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/trigger-stage.png b/BackendServers/WebServer/Images/Icons/style-01/trigger-stage.png new file mode 100644 index 000000000..83a87e2d6 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/trigger-stage.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/tutorial-step.png b/BackendServers/WebServer/Images/Icons/style-01/tutorial-step.png new file mode 100644 index 000000000..fc38a62ba Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/tutorial-step.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/tutorial-topic.png b/BackendServers/WebServer/Images/Icons/style-01/tutorial-topic.png new file mode 100644 index 000000000..e80e242f3 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/tutorial-topic.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/tutorial.png b/BackendServers/WebServer/Images/Icons/style-01/tutorial.png new file mode 100644 index 000000000..3112320cd Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/tutorial.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/menu-mobility-unfreeze.png b/BackendServers/WebServer/Images/Icons/style-01/unfreeze.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/menu-mobility-unfreeze.png rename to BackendServers/WebServer/Images/Icons/style-01/unfreeze.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/menu-fix-unpinned.png b/BackendServers/WebServer/Images/Icons/style-01/unpinned.png similarity index 100% rename from BackendServers/WebServer/Images/Icons/style-01/menu-fix-unpinned.png rename to BackendServers/WebServer/Images/Icons/style-01/unpinned.png diff --git a/BackendServers/WebServer/Images/Icons/style-01/upload.png b/BackendServers/WebServer/Images/Icons/style-01/upload.png deleted file mode 100644 index 50e4d79c2..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/upload.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/user-defined-counter.png b/BackendServers/WebServer/Images/Icons/style-01/user-defined-counter.png new file mode 100644 index 000000000..67b24ce0c Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/user-defined-counter.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/user-defined-parameters.png b/BackendServers/WebServer/Images/Icons/style-01/user-defined-parameters.png new file mode 100644 index 000000000..52d568cb7 Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/user-defined-parameters.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/user-defined-statistic.png b/BackendServers/WebServer/Images/Icons/style-01/user-defined-statistic.png new file mode 100644 index 000000000..ac3a2100d Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/user-defined-statistic.png differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/vector.png b/BackendServers/WebServer/Images/Icons/style-01/vector.png deleted file mode 100644 index b9b1e7a02..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/vector.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/video-player.png b/BackendServers/WebServer/Images/Icons/style-01/video-player.png deleted file mode 100644 index b382fe80e..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/video-player.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/volume.png b/BackendServers/WebServer/Images/Icons/style-01/volume.png deleted file mode 100644 index 60d213b6d..000000000 Binary files a/BackendServers/WebServer/Images/Icons/style-01/volume.png and /dev/null differ diff --git a/BackendServers/WebServer/Images/Icons/style-01/workspace.png b/BackendServers/WebServer/Images/Icons/style-01/workspace.png new file mode 100644 index 000000000..45045251a Binary files /dev/null and b/BackendServers/WebServer/Images/Icons/style-01/workspace.png differ diff --git a/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-backtesting-trading-engine-visualization-01.gif b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-backtesting-trading-engine-visualization-01.gif new file mode 100644 index 000000000..dcb17d828 Binary files /dev/null and b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-backtesting-trading-engine-visualization-01.gif differ diff --git a/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-backtesting-trading-engine-visualization-02.gif b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-backtesting-trading-engine-visualization-02.gif new file mode 100644 index 000000000..d8c45e3e4 Binary files /dev/null and b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-backtesting-trading-engine-visualization-02.gif differ diff --git a/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-layer-managers-scroll.gif b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-layer-managers-scroll.gif new file mode 100644 index 000000000..c735fe627 Binary files /dev/null and b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-layer-managers-scroll.gif differ diff --git a/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-layer-on.gif b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-layer-on.gif new file mode 100644 index 000000000..1d5702d00 Binary files /dev/null and b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-layer-on.gif differ diff --git a/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-layer-panels.gif b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-layer-panels.gif new file mode 100644 index 000000000..5dea3f194 Binary files /dev/null and b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-layer-panels.gif differ diff --git a/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-scales-auto-locked.gif b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-scales-auto-locked.gif new file mode 100644 index 000000000..bb52b737e Binary files /dev/null and b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-scales-auto-locked.gif differ diff --git a/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-scales-time-frame-scale.gif b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-scales-time-frame-scale.gif new file mode 100644 index 000000000..b8a03adf7 Binary files /dev/null and b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-scales-time-frame-scale.gif differ diff --git a/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-scales-unlock-rate-scale.gif b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-scales-unlock-rate-scale.gif new file mode 100644 index 000000000..702577d28 Binary files /dev/null and b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-scales-unlock-rate-scale.gif differ diff --git a/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-scales-unlock-time-scale.gif b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-scales-unlock-time-scale.gif new file mode 100644 index 000000000..9ae03e1b3 Binary files /dev/null and b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-charts-scales-unlock-time-scale.gif differ diff --git a/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-live-trading-binance-orders.gif b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-live-trading-binance-orders.gif new file mode 100644 index 000000000..f90ecd636 Binary files /dev/null and b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-live-trading-binance-orders.gif differ diff --git a/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-live-trading-console.gif b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-live-trading-console.gif new file mode 100644 index 000000000..3e641bc7e Binary files /dev/null and b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-live-trading-console.gif differ diff --git a/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-live-trading-process-progress.gif b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-live-trading-process-progress.gif new file mode 100644 index 000000000..464b6bdd0 Binary files /dev/null and b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-live-trading-process-progress.gif differ diff --git a/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-live-trading-run.gif b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-live-trading-run.gif new file mode 100644 index 000000000..d346eea22 Binary files /dev/null and b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-live-trading-run.gif differ diff --git a/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-start-data-mining-console.gif b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-start-data-mining-console.gif new file mode 100644 index 000000000..15938d5ee Binary files /dev/null and b/BackendServers/WebServer/Images/Tutorial/Gifs/welcome-start-data-mining-console.gif differ diff --git a/BackendServers/WebServer/Images/favicon.ico b/BackendServers/WebServer/Images/favicon.ico new file mode 100644 index 000000000..cd2c5d6af Binary files /dev/null and b/BackendServers/WebServer/Images/favicon.ico differ diff --git a/BackendServers/WebServer/Images/superalgos-logo-for-color-background.png b/BackendServers/WebServer/Images/superalgos-logo-for-color-background.png index 40f8de2ab..b92430f37 100644 Binary files a/BackendServers/WebServer/Images/superalgos-logo-for-color-background.png and b/BackendServers/WebServer/Images/superalgos-logo-for-color-background.png differ diff --git a/BackendServers/WebServer/Images/superalgos-platform.jpg b/BackendServers/WebServer/Images/superalgos-platform.jpg index 7aecf4958..d091da9ef 100644 Binary files a/BackendServers/WebServer/Images/superalgos-platform.jpg and b/BackendServers/WebServer/Images/superalgos-platform.jpg differ diff --git a/BackendServers/WebServer/PlotterPanel.js b/BackendServers/WebServer/PlotterPanel.js index 75e63863e..40fad93d6 100644 --- a/BackendServers/WebServer/PlotterPanel.js +++ b/BackendServers/WebServer/PlotterPanel.js @@ -2,5 +2,10 @@ let functionName = pDataMineOrHost + pPlotter + pModule + pPanel; functionName = functionName.replace(/-/g, ""); functionName = 'new' + functionName - return window[functionName](); + try { + return window[functionName](); + } catch (err) { + console.log('[ERROR] getNewPlotterPanel -> Error trying to Load a Plotter Panel. err = ' + err.stack) + console.log('[ERROR] getNewPlotterPanel -> functionName = ' + functionName) + } } diff --git a/BackendServers/WebServer/font-awasome.css b/BackendServers/WebServer/font-awasome.css new file mode 100644 index 000000000..865522cd8 --- /dev/null +++ b/BackendServers/WebServer/font-awasome.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../Fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../Fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../Fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../Fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../Fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../Fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} \ No newline at end of file diff --git a/BackendServers/WebServer/index.html b/BackendServers/WebServer/index.html index 40277d726..eafb392e1 100644 --- a/BackendServers/WebServer/index.html +++ b/BackendServers/WebServer/index.html @@ -1,45 +1,34 @@ - - +
Superalgos is open-source and free thanks to the generosity of contributors:
+Luis Fernando Molina, Julian Molina, Andreja Cobeljic, Matías Benitez, Ira Miller, Eduardo Remis, Jeff Braun, rico4dev, Barry Low, Nikola Bjelogrlic, Hirajin Koizuko, and Francisco J. Santillán.
+Help us keep Superalgos free for all. Become a contributor!
+|
+
+ | + +The trading engine hierarchy is the data structure used by the trading bot to keep runtime information highly accessible and exposed to others. + + |
You will use this hierarchy for two main purposes:
+ +The hierarchy exposes—literally—all the information processed by the trading bot, providing a comprehensive feedback loop to trading systems and analysis capabilities to users. The hierarchy exposes—literally—all the information processed by the trading bot, providing a comprehensive feedback loop to trading systems and analysis capabilities to users.
+ +To let your trading systems: This allows strategies to keep track of and react to current and past events—including those involving the exchange, such as orders placed or filled—as the bot is running.
+To keep track of the actions: By analyzing runtime information, you may gain a detailed understanding of what happens, when, and why, throughout a trading session.
+The hierarchy exposes—literally—all the information processed by the trading bot, providing a comprehensive feedback loop to trading systems and analysis capabilities to users.
+ +The hierarchy exposes all the information processed by the trading bot, providing a comprehensive feedback loop to trading systems and analysis capabilities to users. The hierarchy exposes all the information processed by the trading bot, providing a comprehensive feedback loop to trading systems and analysis capabilities to users.
+ +Calculo que con este segundo nivel de titulo alcanza.
+ +|
+
+ | + +The trading engine hierarchy is the data structure used by the trading bot to keep runtime information highly accessible and exposed to others. + + |
| ' + if (nodeConfig.image !== undefined && nodeConfig.image !== '') { + html = html + '' + newImageName = nodeConfig.image + } + html = html + ' | ' + html = html + '' + html = html + '' + addToolTips(nodeConfig.definition) + '' + html = html + ' | ' + html = html + '
| Rejections <\\/th>\\r\\n | Graphics <\\/th>\\r\\n | Comments<\\/th>\\r\\n <\\/tr>\\r\\n <\\/thead>\\r\\n |
|---|---|---|
| 1<\\/td>\\r\\n | <\\/span><\\/td>\\r\\n | A faint, grey dotted line.<\\/td>\\r\\n <\\/tr>\\r\\n |
| 2<\\/td>\\r\\n | <\\/span><\\/td>\\r\\n | A grey block.<\\/td>\\r\\n <\\/tr>\\r\\n |
| 3<\\/td>\\r\\n | <\\/span><\\/td>\\r\\n | A turquoise block.<\\/td>\\r\\n <\\/tr>\\r\\n |
| 4<\\/td>\\r\\n | <\\/span><\\/td>\\r\\n | A yellow block.<\\/td>\\r\\n <\\/tr>\\r\\n |
| 5<\\/td>\\r\\n | <\\/span><\\/td>\\r\\n | A green block.<\\/td>\\r\\n <\\/tr>\\r\\n |
| 6<\\/td>\\r\\n | <\\/span><\\/td>\\r\\n | An orange block.<\\/td>\\r\\n <\\/tr>\\r\\n |
| 7 or more<\\/td>\\r\\n | <\\/span><\\/td>\\r\\n | A purple block.<\\/td>\\r\\n <\\/tr>\\r\\n <\\/tbody>\\r\\n <\\/table>\",\n \"paragraph2\": \" For a new support level with one rejection, the dotted line marks the exact level on which price bounced. For further rejections, the blocks mark the rate ranges on which subsequent rejections are counted.\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","id":"1b10ba0b-25e4-40e6-9298-fd0e060218c7","savedPayload":{"position":{"x":17375.98774411628,"y":43401.18678428934},"targetPosition":{"x":17821.929771982217,"y":43628.4390538609},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"The Power of Data Mining","config":"{\n \"subTitle\": \"The Power of Data Mining\",\n \"gif\": \"\",\n \"image\": \"layer-resistance\",\n \"definition\": \"Why do levels jump up and down? There's something I haven't told you yet, 'cos I'm afraid it may blow your mind!\",\n \"paragraph1\": \"\",\n \"callOut\": \"The bot keeps track of all support levels alive since the start of the dataset, but only shows you the five levels closest to the current price.\",\n \"paragraph2\": \"Keeping track of information for the whole span of the dataset—which may count years—is the true value of data mining, and the kind of things you wouldn't be able to calculate with a function, on the fly. The ->Plotter-> associated with the ->Indicator Bot-> dynamically shows the five levels of support closest to the price because those are the relevant levels for the context.\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}\n","id":"8019055c-dcbd-4f0c-a1be-715cf6512a09","savedPayload":{"position":{"x":17549.297837563205,"y":43208.70732098896},"targetPosition":{"x":17821.929771982217,"y":43628.4390538609},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Find the Logic Challenge","config":"{\n \"subTitle\": \"Find the Logic Challenge!\",\n \"gif\": \"\",\n \"image\": \"layer-resistance\",\n \"definition\": \"Now that you know how the indicator works, can you find the relationship between buy orders and support levels?\",\n \"paragraph1\": \"\",\n \"callOut\": \"Take some time to explore the period of time tested looking for clues on how support levels determine the rate of the ->Limit Buy Order->!\",\n \"paragraph2\": \"It's fun noticing how new levels form when price changes direction, and how an established level changes color when price bounces-off it.\",\n \"tip\": \"But the trick lies in counting levels above the order!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","id":"1b6dc587-016b-4c65-9f8e-3e3e59ddc9b7","savedPayload":{"position":{"x":17795.596034086502,"y":43128.63291589612},"targetPosition":{"x":17821.929771982217,"y":43628.4390538609},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Here's How It Works","config":"{\n \"subTitle\": \"Here's How it Works...\",\n \"gif\": \"\",\n \"image\": \"layer-resistance\",\n \"definition\": \"Got it? The ->Trading Bot-> places the ->Limit Buy Order-> at the fifth support level! What's the logic behind this?\",\n \"paragraph1\": \"It's sort of arbitrary, but the strategy defines a falling knife as the price action capable of breaching at least four support levels and getting to the fifth during a single minute. Statistically, such events—in this time frame—produce more bounces than continuations. They may be caused by large market orders that temporarily increase the bid/ask spread in the order book.\",\n \"callOut\": \"Take a minute to verify that buy orders are placed at the fifth support level!\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","id":"f9e682fd-3906-4dd4-ad44-9c4af0d8a632","savedPayload":{"position":{"x":18048.740796807728,"y":43182.454521090134},"targetPosition":{"x":17821.929771982217,"y":43628.4390538609},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"dbb272f3-27d5-4938-96a4-e5ee1b87bff2","savedPayload":{"position":{"x":17822.21090663398,"y":43628.28339415014},"targetPosition":{"x":18094.78231361018,"y":44047.9377260618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"5e3deefe-2224-4b65-be4d-0b7ab311bd48","savedPayload":{"position":{"x":18094.78231361018,"y":44047.9377260618},"targetPosition":{"x":18540.446296048747,"y":44275.55173107869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Trading System","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","tutorialSteps":[{"type":"Tutorial Step","name":"Come Meet Someone","config":"{\n \"subTitle\": \"Come Meet Someone!\",\n \"gif\": \"\",\n \"image\": \"execution-algorithm\",\n \"definition\": \"Sorry for dragging you away from the charts, but I wanted to introduce you to someone: the guy on the right is the one placing the buy orders!\",\n \"paragraph1\": \"We are inside the Lightning Strike ->Trading System->, within the definitions of the ->Open Stage->. In this stage, the ->Execution Algorithm-> takes over after the decision to take a position has already been made on the ->Trigger Stage->. I know you still don't know what a ->Situation-> or a ->Condition-> are, but I'd still like you to do something...\",\n \"callOut\": \"Take a few minutes to explore the nodes below the execution algorithm, check the formulas and conditions, and see what you can make of them!\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","id":"395d6137-6954-48d0-89d7-a41226d6c667","savedPayload":{"position":{"x":19400.217412411857,"y":36449.60858874119},"targetPosition":{"x":19510.573469233084,"y":36933.052289423926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Execution Algorithm","name":"Buy Orders","id":"e635ed9f-3c8c-45bf-8be0-e3836fa0844e"}}},{"type":"Tutorial Step","name":"Formulations","config":"{\n \"subTitle\": \"Formulations...\",\n \"gif\": \"\",\n \"image\": \"formula\",\n \"definition\": \"What you just went through is the definition of the ->Limit Buy Order-> that is placed and cancelled every minute until it gets filled.\",\n \"paragraph1\": \"This is the node that determines the rate of the limit order. Remember what we discussed earlier about placing the order at the rate of the fifth support level?\",\n \"callOut\": \"Go to the ->Formula-> attached to the ->Order Rate-> node and click Edit on the menu.\",\n \"paragraph2\": \"Well... that is how it's done! As you can see, the syntax is virtually self-explanatory! It involves defining the time frame, the indicator, and the indicator property involved.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","id":"f8c57877-6059-4c16-8dbe-18571d22d8ca","savedPayload":{"position":{"x":19665.91879671924,"y":36457.42473176237},"targetPosition":{"x":19510.573469233084,"y":36933.052289423926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Order Rate","name":"New Order Rate","id":"3ff96eb6-5965-4f82-98d4-cd23bf8d0369"}}},{"type":"Tutorial Step","name":"The Seller","config":"{\n \"subTitle\": \"The Seller\",\n \"gif\": \"\",\n \"image\": \"execution-algorithm\",\n \"definition\": \"We are now in the ->Close Stage->. I though it would be interesting to tell you more about execution algorithms, with another example.\",\n \"paragraph1\": \"An ->Execution Algorithm-> may handle multiple orders, of all types. In this case, multiple limit sell orders are defined.\",\n \"callOut\": \"Select Configure on the menu of the algorithm and reflect on the implications of this definition!\",\n \"paragraph2\": \"Both the open stage, where you define how to take a position, and the close stage, where you define how to exit, may feature multiple execution algorithms, each of them handling a certain amount of capital.\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","id":"29fe5e28-80f8-4ca0-902b-5b8de961aeca","savedPayload":{"position":{"x":19882.649921265922,"y":36598.39018086119},"targetPosition":{"x":19510.573469233084,"y":36933.052289423926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Execution Algorithm","name":"Race to Break Even","id":"0fe764ce-3312-4964-9841-b55500e3f80a"}}},{"type":"Tutorial Step","name":"Simplifying Complexity","config":"{\n \"subTitle\": \"Simplifying Complexity\",\n \"gif\": \"\",\n \"image\": \"trading-system\",\n \"definition\": \"We haven't discussed trading systems as a framework, but a feature relevant to this explanation is that they may handle multiple strategies.\",\n \"paragraph1\": \"Each strategy features an ->Open Stage-> and a ->Close Stage->, each with its own execution definitions. Each stage may feature multiple execution algorithms, and each algorithm may handle multiple orders.\",\n \"callOut\": \"Do you see the pattern? We call it granularity. \",\n \"paragraph2\": \"Superalgos breaks down each issue to the minimum expression, and integrates the solutions. This is how it allows you to design, deploy, and manage both simple and the most complex trading setups you may envision.\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","id":"4b24efc4-d836-4a22-9791-8f34fed6f6d2","savedPayload":{"position":{"x":20034.9669346752,"y":36797.6408586289},"targetPosition":{"x":19510.573469233084,"y":36933.052289423926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Strategy","name":"My Trading Strategy","id":"711041eb-3055-4611-b64f-570363bae854"}}},{"type":"Tutorial Step","name":"Let's Take a Peek","config":"{\n \"subTitle\": \"Let's Take a Peek...\",\n \"gif\": \"\",\n \"image\": \"limit-sell-order\",\n \"definition\": \"Before we leave the trading system, let's take a quick look into one of these orders and see what may be of interest.\",\n \"paragraph1\": \"\",\n \"callOut\": \"Expand Profit 0.6 and check the formula of the ->Order Rate-> node.\",\n \"paragraph2\": \"Let's focus on this misterious bit of the formula: tradingEngine.current.position.exitTargetRate.valueThe formula is fetching the value of the ->Exit Target Rate->, defined elsewhere. Let's not focus and what this target rate may be. Instead, let's take a look at the mechanism by which a ->Trading System-> may have access to information processed by the ->Trading Bot->. \",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","id":"66730e1d-6c7d-4af9-a053-b77d3c0c80a3","savedPayload":{"position":{"x":19986.4937190843,"y":37087.71203626196},"targetPosition":{"x":19510.573469233084,"y":36933.052289423926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Limit Sell Order","name":"Profit 0.6","id":"b80fe127-d306-4fc1-a3a8-95bf88de046f"}}}],"tutorialTopics":[],"id":"4a22546a-13ad-4d99-8309-9583c44d331a","savedPayload":{"position":{"x":18313.287318614694,"y":43829.600148277634},"targetPosition":{"x":18540.446296048747,"y":44275.55173107869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Trading Engine","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","tutorialSteps":[{"type":"Tutorial Step","name":"Find the Node Challenge","config":"{\n \"subTitle\": \"Find the Node Challenge\",\n \"gif\": \"\",\n \"image\": \"trading-engine\",\n \"definition\": \"The ->Trading Engine-> administers the complexity entailed in automated trading by making information accessible to users and trading systems.\",\n \"paragraph1\": \"Rember my comments about granularity? Remember how the formula on the trading system fetched the value of the exit target rate? Here's a quick reminder: tradingEngine.current.position.exitTargetRate.value\",\n \"callOut\": \"What if I told you that this string holds the path to that piece of information in the data structure of the ->Trading Engine-> hierarchy? Can you find the ->Exit Target Rate-> node? Expand the node and follow the breadcrumb trail!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","id":"1da79160-ab19-4a67-ad10-383158a5330c","savedPayload":{"position":{"x":18910.236951329134,"y":36375.28515925685},"targetPosition":{"x":19106.78637393252,"y":36835.74721863334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},{"type":"Tutorial Step","name":"Found It?","config":"{\n \"subTitle\": \"Found It?\",\n \"gif\": \"\",\n \"image\": \"copy-path\",\n \"definition\": \"This is how the ->Trading Engine-> makes every bit of information processed by the ->Trading Bot-> available to trading systems.\",\n \"paragraph1\": \"There is a path to every piece of data, and by knowing the path, you may access the data from within any ->Formula-> or ->Condition-> in a ->Trading Strategy->. Let's run a quick check:\",\n \"callOut\": \"Open the menu of the ->Exit Target Rate-> node to the left, and click Copy Node Path. Now, open a text editor and paste what you copied.\",\n \"paragraph2\": \"Ok! This is how formulas and conditions access the information... How about humans?\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","id":"ff08fcfb-7c33-4d70-9260-f960f4e1dd12","savedPayload":{"position":{"x":19129.274702347146,"y":36335.57217731544},"targetPosition":{"x":19106.78637393252,"y":36835.74721863334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Exit Target Rate","name":"New Exit Target Rate","id":"bc637b55-04bd-4701-9683-78593832cb09"}}},{"type":"Tutorial Step","name":"The Coolest Trick!","config":"{\n \"subTitle\": \"The Coolest Trick!\",\n \"gif\": \"\",\n \"image\": \"exit-target-rate\",\n \"definition\": \"Humans may access this information by using a cool trick that makes the charting space interact with the design space!\",\n \"bulletListIntro\": \"To use this trick, I just did the following:\",\n \"bulletArray\": [\n [\n \"Split the screen in half\",\n \" pulling the slider up so that we can see both spaces at the same time.\"\n ],\n [\n \"Turn on the Current Position layer\",\n \" on the Trading Engine layers manager. I chose this layer because it corresponds to this section of the hierarchy... tradingEngine.current.position... remember ?\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"Now, slide the mouse pointer across the candles on which the position is taken and see what happens on the nodes to the left...\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-08-31T23:40:00.000Z\",\n \"toDate\": \"2020-09-01T01:00:00.000Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 11000,\n \"maxValue\": 11800\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-min\"\n }\n },\n {\n \"nodePath\": \"referenceParent.timelineCharts[1].layersManager\",\n \"properties\": {\n \"visibleLayers\": 3,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n }\n },\n {\n \"nodePath\": \"referenceParent.timelineCharts[1].layersManager.botLayers[0].layerFolders[0].layerFolders[2].layers[0]\",\n \"properties\": {\n \"status\": \"on\"\n }\n }\n ],\n \"documentationURL\": \"\"\n}","id":"2cc2befe-1858-4c96-a45c-52e3dbfa7384","savedPayload":{"position":{"x":19343.97061836935,"y":36394.84513213194},"targetPosition":{"x":19106.78637393252,"y":36835.74721863334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"welcome-backtesting-trading-engine-visualization-01\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"positionAtReferenceParent\": true\n}","id":"0276fff4-493c-42c8-8d06-267a23646783","savedPayload":{"position":{"x":19511.71684671561,"y":36541.32367026914},"targetPosition":{"x":19106.78637393252,"y":36835.74721863334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Exit Target Rate","name":"New Exit Target Rate","id":"bc637b55-04bd-4701-9683-78593832cb09"}}},{"type":"Tutorial Step","name":"Feedback Loops","config":"{\n \"subTitle\": \"Feedback Loops\",\n \"gif\": \"\",\n \"image\": \"limit-buy-order\",\n \"definition\": \"Lets take a look at another example to let the notion of the constant feedback loop sink in before we move on!\",\n \"paragraph1\": \"This is the data structure where information about limit buy orders is kept.\",\n \"callOut\": \"Go to the Trading Engine layers manager on the charts (the second counting from the left). Scroll down and turn on the Limit Buy Orders layer. Now swipe the mouse pointer over a few of the buy orders and check the effect on the nodes on the design space.\",\n \"paragraph2\": \"Can you envision the implications of having this level of control over the data managed by the trading bot?\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","id":"f5c6cc94-ab96-4729-aa90-12c904c58066","savedPayload":{"position":{"x":19599.454772728794,"y":36745.84812660786},"targetPosition":{"x":19106.78637393252,"y":36835.74721863334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Rate","name":"New Rate","id":"1c848292-d64a-456f-b1b9-b9e4a387436e"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"welcome-backtesting-trading-engine-visualization-02\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"positionAtReferenceParent\": true\n}","id":"3169f747-4d89-463d-8307-aa7f7b4a4a62","savedPayload":{"position":{"x":19616.63029253556,"y":37004.2162260887},"targetPosition":{"x":19106.78637393252,"y":36835.74721863334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"9c34436a-f531-443a-bcd5-d69e352da251","savedPayload":{"position":{"x":18611.497846935807,"y":43805.6854730638},"targetPosition":{"x":18540.446296048747,"y":44275.55173107869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"9cf3ea6e-9edb-44ed-81ff-8a00886ce731","savedPayload":{"position":{"x":18540.446296048747,"y":44275.55173107869},"targetPosition":{"x":18893.791666666664,"y":44629.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Live Trading","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Set Up & Run","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","tutorialSteps":[{"type":"Tutorial Step","name":"Enough Chit Chat","config":"{\n \"subTitle\": \"Enough Chit Chat!\",\n \"gif\": \"\",\n \"image\": \"production-environment\",\n \"definition\": \"Ok, my friend... It's time for the real deal! Are you ready for a little ->Live Trading Session->?\",\n \"bulletListIntro\": \"I'll help you with the three main requirements:\",\n \"bulletArray\": [\n [\n \"Check your parameters,\",\n \" in particular, decide how much capital you wish to assign to the session.\"\n ],\n [\n \"Set up an ->Exchange Account Key->\",\n \" so that the app may access your account at the exchange.\"\n ],\n [\n \"Ensure a live data feed\",\n \", that is, the data mining operation with the indicators required by the ->Trading System-> must be running and up to date.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"To proceed with a ->Live Trading Session->, click Next.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","id":"8dfa9fdb-3591-4dbe-a865-0ef760ce9742","savedPayload":{"position":{"x":18151.272682972678,"y":36842.0484591931},"targetPosition":{"x":18646.621267607057,"y":36743.10774608528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Production Environment","name":"New Production Environment","id":"65a40d20-837c-4652-8356-f8054b4e1346"}}},{"type":"Tutorial Step","name":"Warning!","config":"{\n \"warning\": \"Superalgos is a piece of computer software. Like with any software, errors may occur at any point, including errors that may cause you to lose money. You are responsible for taking all precautions you may deem appropriate before trading live. Even if you take all possible precautionary measures, things may still go wrong and errors may occur. By using this software to trade live despite the warnings, you acknowledge that you are aware of the inherent risks in trading and in using software for that purpose. The Superalgos Project offers the software AS IS, with no explicit or implied warranties of any kind. The project, the software, the superalgos.org website, and this tutorial do not offer financial advice. Although the strategies shipping with the system may be fully functional, Superalgos does not make any express or implied recommendation as to how you should use them. We share strategies for educational purposes only. Trade under your responsibility and at your own risk. The use of the software is subject to the terms of the LICENSE.\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","id":"1ad5babb-40d3-48f4-a784-5c2ea0e6b171","savedPayload":{"position":{"x":18149.116172849153,"y":36690.1732869149},"targetPosition":{"x":18646.621267607057,"y":36743.10774608528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Let's Start With 20 Bucks!","config":"{\n \"subTitle\": \"Let's Start With 20 Bucks!\",\n \"gif\": \"\",\n \"image\": \"session-quoted-asset\",\n \"definition\": \"The default initialBalance is set to 20 USDT, which ensures we are above the minimum transaction amount supported by Binance.\",\n \"paragraph1\": \"The initialBalance is defined in the configuration of the ->Session Quoted Asset->.\",\n \"callOut\": \"Check that the above is the case and decide for yourself if you wish to change it.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"important\": \"Make sure you have at least 20 USDT at the exchange! The ->Trading Bot-> will place one limit order for 20 USDT, and cancel it the next minute in case it is not filled, as explained earlier.\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","id":"04b09505-d781-4d1f-8686-57eb3a0cf95c","savedPayload":{"position":{"x":18189.71414351859,"y":36539.037133627135},"targetPosition":{"x":18646.621267607057,"y":36743.10774608528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Session Quoted Asset","name":"","id":"f6cd46c1-66df-422c-82d4-02ac8e37f689"}}},{"type":"Tutorial Step","name":"Enjoy the Outdoors!","config":"{\n \"subTitle\": \"Enjoy the Outdoors!\",\n \"gif\": \"\",\n \"image\": \"crypto-ecosystem\",\n \"definition\": \"I believe you haven't visited the ->Crypto Ecosystem-> hierarchy, right? This is where you configure which exchanges and markets you wish to work with...\",\n \"paragraph1\": \"... among other things, such as your accounts with those exchanges, your API keys, your assets, and so on.\",\n \"callOut\": \"Why don't you take a little walk and I'll catch up with you in the next step?\",\n \"paragraph2\": \"\",\n \"tip\": \"Just look around... enjoy the views...\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","id":"ff963975-de14-44e0-a552-44b29644a938","savedPayload":{"position":{"x":18275.057980918613,"y":36407.74506356766},"targetPosition":{"x":18646.621267607057,"y":36743.10774608528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","id":"7217b56c-e854-4c06-8b8a-d5d3c05a153d"}}},{"type":"Tutorial Step","name":"Your Keys, Your Coins!","config":"{\n \"subTitle\": \"Your Keys, Your Coins!\",\n \"gif\": \"\",\n \"image\": \"exchange-account-key\",\n \"definition\": \"This is where you configure your ->Exchange Account Key-> for the Lightning Strike ->Live Trading Session->.\",\n \"paragraph1\": \"\",\n \"callOut\": \"Open the configuration and carefully enter the API name or label and the API secret key.\",\n \"paragraph2\": \"Delete the default text string for each parameter first, so that no foreign character gets mixed up with the keys.\",\n \"note\": \"In the future, when you get to run multiple live sessions at the same time, you will need to set up one ->Exchange Account Key-> per session. This is a requirement in most exchanges.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","id":"a36187cc-415e-424b-8275-352f953552f8","savedPayload":{"position":{"x":18396.720160624332,"y":36309.165434983646},"targetPosition":{"x":18646.621267607057,"y":36743.10774608528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Exchange Account Key","name":"Key for Lighting Strike","id":"e85bbbd6-aca8-450f-9237-788062de5761"}}},{"type":"Tutorial Step","name":"Fire Up the Machine!","config":"{\n \"subTitle\": \"Fire Up the Machine!\",\n \"gif\": \"\",\n \"image\": \"data-mining\",\n \"definition\": \"Now it's time to fire up your ->Data Mining-> operation.\",\n \"paragraph1\": \"\",\n \"callOut\": \"Select Run All Exchange Data Tasks on the menu.\",\n \"paragraph2\": \"We'll give it a few minutes to catch up with the present time. Remember, all indicators must get to 100% before we can start trading!\",\n \"tip\": \"If you're getting a bit anxious, feel free to go down the ->Data Mining-> section and check the status of the process instances!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","id":"87824465-1fda-4f6a-bb4f-31f6d7f77268","savedPayload":{"position":{"x":18542.880762064968,"y":36253.07819241989},"targetPosition":{"x":18646.621267607057,"y":36743.10774608528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Mining","name":"New Data Mining","id":"4df1cb4e-b9ca-4f62-bb5f-c7e262aaa22a"}}},{"type":"Tutorial Step","name":"Are We Ready Yet?","config":"{\n \"subTitle\": \"Are We Ready Yet?\",\n \"gif\": \"\",\n \"image\": \"indicator-process-instance\",\n \"definition\": \"Resistances and Supports Multi-Period-Daily to the left is the last of the process to finish.\",\n \"paragraph1\": \"If this process is at 100%, then we are ready to go.\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"Either way, nothing catastrophic happens if you attempt to run a ->Live Trading Session-> when the required indicators are not up to date. There would be an error, and you'd be notified of the reason. So, no big deal!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","id":"f05ce10a-6ccd-4910-9373-8f3d211fe390","savedPayload":{"position":{"x":18699.063491628538,"y":36244.93142289231},"targetPosition":{"x":18646.621267607057,"y":36743.10774608528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Daily","id":"c5395fbe-4b5a-4492-a7fb-e2d259905e27"}}},{"type":"Tutorial Step","name":"Let's Do this!","config":"{\n \"subTitle\": \"Let's Do This!\",\n \"gif\": \"\",\n \"image\": \"live-trading-session\",\n \"definition\": \"We've gone through the 3-point checklist and we are ready to go, so let's get on with it!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Run the Lightning Strike ->Task->, and then run the Lightning Strike ->Live Trading Session-> to the right!\",\n \"paragraph2\": \"\",\n \"note\": \"Once you run the session, the trading bot may have to wait up to 60 seconds for the last indicator to finish processing. Once it does, you will see the current date and a 0% progress notice under the ->Trading Process Instance->, which will remain like that throughout the run.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","id":"ba33c98c-dc22-408d-8206-c173344cdb24","savedPayload":{"position":{"x":18850.462373841467,"y":36285.5831070938},"targetPosition":{"x":18646.621267607057,"y":36743.10774608528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Task","name":"Lightning Strike","id":"c8492c4a-a7a7-4a80-a25a-a610377e6180"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"welcome-live-trading-process-progress\",\n \"position\": \"Left\",\n\"positionAtReferenceParent\": true,\n \"slider\": \"toTop\"\n}","id":"bd2e54f6-f3ca-4bf7-a453-b2a2ce55e65c","savedPayload":{"position":{"x":18982.00116780749,"y":36371.20811973339},"targetPosition":{"x":18646.621267607057,"y":36743.10774608528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Process Instance","name":"Low Frequency Trading","id":"4d7e7fa0-afcb-4b2f-983b-ceacea91b29d"}}}],"tutorialTopics":[],"id":"8f866187-280e-4e87-b871-41dc645fd412","savedPayload":{"position":{"x":18651.616700251197,"y":43671.04639384764},"targetPosition":{"x":18894.078796021226,"y":44128.98447307867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Monitoring","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","tutorialSteps":[{"type":"Tutorial Step","name":"Check Your Console!","config":"{\n \"subTitle\": \"Check Your Console!\",\n \"gif\": \"\",\n \"image\": \"trading-process-instance\",\n \"definition\": \"If you don't see any errors on the ->Trading Process Instance->, chances are everything is working fine!\",\n \"paragraph1\": \"However, you may want to take a look at your console application and see if you notice anything out of the norm.\",\n \"callOut\": \"Take a look at your console app!\",\n \"paragraph2\": \"\",\n \"note\": \"You should be able to see the alternating executions of the Candles-Volumes and Resistances-And-Support indicators, with the Low-Frequency ->Trading Bot->\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","id":"036556c5-b0bd-494a-bec2-bd7413506475","savedPayload":{"position":{"x":18894.33004087129,"y":43262.26755031533},"targetPosition":{"x":19144.249510366495,"y":43695.83851699316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"welcome-live-trading-console\",\n \"position\": \"Left\",\n \"slider\": \"toTop\"\n}","id":"2708d375-3245-455d-85d2-b164ab3ba86f","savedPayload":{"position":{"x":19144.33154604035,"y":43195.306320067524},"targetPosition":{"x":19144.249510366495,"y":43695.83851699316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Is It Working?","config":"{\n \"subTitle\": \"Is It Working?\",\n \"gif\": \"\",\n \"image\": \"binance\",\n \"definition\": \"The unequivocal way to verify things are working fine is logging on to Binance and checking your order history for BTC/USDT.\",\n \"paragraph1\": \"\",\n \"callOut\": \"Go to Binance and take a look at what's going on!\",\n \"paragraph2\": \"\",\n \"note\": \"At any point in time, you should see one open order and a number of canceled orders pilling up in your order history, pretty much like in the video on the next step!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","id":"8f6913ec-257f-49ba-bdbb-dcd43e5fe727","savedPayload":{"position":{"x":19394.494588705675,"y":43262.38996809292},"targetPosition":{"x":19144.249510366495,"y":43695.83851699316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"welcome-live-trading-binance-orders\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"changeNodeConfigWithEvalReferenceParent\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"(new Date((new Date()).valueOf() - 60000 * 120)).toISOString()\",\n \"toDate\": \"(new Date((new Date()).valueOf() + 60000 * 120)).toISOString()\"\n }\n}","id":"9a3be7a3-9fe8-4d58-a84c-abd59c43e7f2","savedPayload":{"position":{"x":19577.647181258162,"y":43445.53920116535},"targetPosition":{"x":19144.249510366495,"y":43695.83851699316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Scale","name":"New Time Scale","id":"708c5a9f-a995-4210-aaaf-0794782f0e9e"}}},{"type":"Tutorial Step","name":"Monitor the Fun Way","config":"{\n \"subTitle\": \"Monitoring the Fun Way!\",\n \"gif\": \"\",\n \"image\": \"bullet-limit-buy-order\",\n \"definition\": \"You thought we would let you monitor the ->Live Trading Session-> watching the ugly list of orders at the exchange? No way!\",\n \"paragraph1\": \"Superalgos produces the same kind of simulations you love for live sessions too, in realtime!\",\n \"callOut\": \"Can you see the first few buy orders on the chart?\",\n \"paragraph2\": \"\",\n \"note\": \"Notice that the ->Time Scale-> is set to automatic mode on the right-hand side to glue the current candle to the right border of the screen. The ->Rate Scale-> is automatic on both ends. Feel free to change those to your liking.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"repositionAtTimeMachineReferenceParent\": true,\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-min\"\n }\n }\n ]\n}","id":"d84be58b-a1c7-4504-89aa-f98efe132c30","savedPayload":{"position":{"x":19644.70725474376,"y":43695.77846722921},"targetPosition":{"x":19144.249510366495,"y":43695.83851699316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Live Trading Session My Computer","id":"cc1fcc1e-81de-4011-8e59-c37ebe32ecf7"}}}],"tutorialTopics":[],"id":"03e5e234-40eb-4fbe-8df3-95a40f1b34ea","savedPayload":{"position":{"x":19144.38873000197,"y":43695.62703466544},"targetPosition":{"x":18894.078796021226,"y":44128.98447307867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"8f829077-b2bd-4747-a01d-762f35b3a070","savedPayload":{"position":{"x":18894.078796021226,"y":44128.98447307867},"targetPosition":{"x":18893.791666666664,"y":44629.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"The End","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","tutorialSteps":[{"type":"Tutorial Step","name":"What's Next?","config":"{\n \"subTitle\": \"What's Next?\",\n \"gif\": \"\",\n \"image\": \"bullet-info\",\n \"definition\": \"There are tons of things we haven't covered yet, I know! Just look around! So much stuff to see! It's mind-boggling.\",\n \"paragraph1\": \"I'm sure you still have tons of questions floating in your head... How do I build my own strategies? How do I measure performance? How do I build an indicator? How do I deploy a trading farm? How may I integrate with TradingView? How do I set up Telegram announcements? Don't worry! You'll get there my friend... you'll just have to do some reading!\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"tip\": \"In the meantime, remember to stop your live session and data mining when you no longer need them running, and especially before closing the backend.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","id":"06efb824-f003-4a3c-8323-549a6427d83e","savedPayload":{"position":{"x":19377.772686222084,"y":43792.651442330716},"targetPosition":{"x":19247.752701769314,"y":44275.60166052519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"This Is The End","config":"{\n \"subTitle\": \"This Is The End!\",\n \"gif\": \"\",\n \"image\": \"close-stage-event\",\n \"definition\": \"Ok, my friend, this is the end! I hope you've enjoyed the show and that I've managed to get you hooked to Superalgos!\",\n \"paragraph1\": \"There's no doubt in my mind that you haven't seen anything like Superalgos before. As you may now figure, Superalgos is a vast system and keeps growing by the hour. The community behind the project has a very ambitious vision and is determined to make it a reality. I hope we can count on your help once you start using the system! Superalgos is a community project, and we need your help to keep it open-source and free!\",\n \"callOut\": \"Check the documentation and \",\n \"externalLink\": [\n \"join the community!\",\n \"https://t.me/superalgoscommunity\"\n ],\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","id":"708b6ed8-28ac-41c8-bf4f-7c1cec6af6a3","savedPayload":{"position":{"x":19731.324808665206,"y":44146.217273429946},"targetPosition":{"x":19247.752701769314,"y":44275.60166052519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"fcea7b25-5a13-40e6-a92f-9c530b8a7476","savedPayload":{"position":{"x":19247.801507723423,"y":44275.45947450139},"targetPosition":{"x":18893.791666666664,"y":44629.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"6f36f540-8de9-4458-b2c7-875884121b87","savedPayload":{"position":{"x":18893.791666666664,"y":44629.094484167515},"targetPosition":{"x":18893.791666666664,"y":44629.094484167515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isPlaying":true,"isRunning":false},"tutorial":{"status":"Done"}}},{"type":"Tutorial","name":"Install a New Market","config":"{\n \"title\": \"Install a New Market\",\n \"summary\": \"\",\n \"subTitle\": \"\",\n \"gif\": \"\",\n \"image\": \"market\",\n \"definition\": \"This tutorial walks you through the process of setting up a new ->Market-> on which to run data mining and trading operations.\",\n \"bulletListIntro\": \"Setting up a new Market involves:\",\n \"bulletArray\": [\n [\n \"1. Adding the assets \",\n \"for the exchange of choice.\"\n ],\n [\n \"2. Setting up a market \",\n \"with the said assets.\"\n ],\n [\n \"3. Installing the market\",\n \"\"\n ]\n ],\n \"paragraph1\": \"Let's get on with it!\",\n \"callOut\": \"When you click the Next button below, you will go to the ->Exchange Assets-> node under Binance, in the ->Crypto Ecosystem-> hierarchy.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Add the Assets","config":"{\n \"title\": \"Add the Assets\",\n \"summary\": \"\",\n \"gif\": \"\",\n \"image\": \"asset\",\n \"definition\": \"If the assets you wish to work with are not listed under ->Exchange Assets->, you must add and configure them first.\",\n \"paragraph1\": \"\",\n \"callOut\": \"In this section of the tutorial, you will learn to define which assets you may want to work with.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Each exchange may list hundreds of assets, however, you will likely be interested in just a few. Some automated operations may feed on your definitions, so keeping them free of junk is always a good idea.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","tutorialSteps":[{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"title\": \"Add the Assets\",\n \"summary\": \"\",\n \"subTitle\": \"Step 1: Add Nodes\",\n \"gif\": \"\",\n \"image\": \"exchange-assets\",\n \"definition\": \"Open the ->Exchange Assets-> node menu and use the Add Asset button to add the required assets.\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"Assets under Exchange Assets may not be duplicated. If the definitions for the assets you are interested in already exist, you may reuse them instead of creating new ones. If such is the case, simply skip the next few steps until you need to set up the ->Market->.\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","id":"1b3b8d0e-3aa9-4aba-8b74-351647a3b5b5","savedPayload":{"position":{"x":25806.74622643583,"y":44283.6114026464},"targetPosition":{"x":25452.976661117904,"y":44637.291552450784},"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 \"title\": \"Add the Assets\",\n \"summary\": \"\",\n \"subTitle\": \"Step 2: Configure Assets\",\n \"gif\": \"\",\n \"image\": \"asset\",\n \"definition\": \"Edit the configuration of each of the new assets entering the ticker (as listed by the exchange) in the codeName property. For example: 'codeName': 'ETH'\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"If the icon for the configured assets exist in the image library, the default icon is replaced automatically.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","id":"05f7092a-2326-40e7-b618-f3be5523e670","savedPayload":{"position":{"x":25953.29181755802,"y":44637.28585791704},"targetPosition":{"x":25452.976661117904,"y":44637.291552450784},"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 \"title\": \"Add the Assets\",\n \"summary\": \"\",\n \"subTitle\": \"Step 3: Label Nodes\",\n \"gif\": \"\",\n \"image\": \"asset\",\n \"definition\": \"Label the assets with the descriptive name of the coin or token, for ease of use. For example: Ether.\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Keeping a tidy ->Workspace-> with proper labels for significant nodes helps in managing large operations and administering complexity.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","id":"281274f1-a4ec-47a2-b97c-0c29aa71eed9","savedPayload":{"position":{"x":25807.083074038655,"y":44990.51769797708},"targetPosition":{"x":25452.976661117904,"y":44637.291552450784},"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":25452.976661117904,"y":44637.291552450784},"targetPosition":{"x":24952.875,"y":44637.3202247191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"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 \"title\": \"Set Up the Market\",\n \"summary\": \"\",\n \"gif\": \"\",\n \"image\": \"market\",\n \"definition\": \"If there is no ->Market-> set up with the pair you wish to work with under ->Exchange Markets->, you must set up the market definition before installing it.\",\n \"paragraph1\": \"\",\n \"callOut\": \"The next few steps teach you how to set up the market so that you may later install it.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"Make sure that the combination of base and quoted assets that you wish to define as a market in Superalgos exists as a market listed at the exchange.\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n }","tutorialSteps":[{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"title\": \"Set Up the Market\",\n \"summary\": \"\",\n \"subTitle\": \"Step 1: Add Market\",\n \"gif\": \"\",\n \"image\": \"market\",\n \"definition\": \"Add a new Market node using the Add Market option on the menu.\",\n \"paragraph1\": \"A Market node is added featuring two offspring: a ->Market Base Asset-> and a ->Market Quoted Asset->.\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"Before continuing, make sure which is the base and which the quoted asset in the exchange's listing. Usually, the base asset is the first in the name of the pair, but this is not enforced on every exchange, so be vigilant.\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","id":"cae5ddd4-0c48-488d-86f7-38192c7fdbca","savedPayload":{"position":{"x":25700.074654477285,"y":45123.0726775112},"targetPosition":{"x":25202.812579386053,"y":45070.41037869994},"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 \"title\": \"Set Up the Market\",\n \"summary\": \"\",\n \"subTitle\": \"Step 2: Reference Base A.\",\n \"gif\": \"\",\n \"image\": \"asset\",\n \"definition\": \"Establish a reference from the ->Market Base Asset-> node in the Market you just defined to the corresponding ->Asset-> node defined under Exchange Assets.\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"If you are not familiar with establishing references, please read about the topic in the documentation.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"https://docs.superalgos.org/suite-how-to-remove-and-establish-references.html\"\n}","id":"a7a049cb-72e0-4d76-9247-ee0d873e79c8","savedPayload":{"position":{"x":25574.535001819924,"y":45405.272089936414},"targetPosition":{"x":25202.812579386053,"y":45070.41037869994},"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 \"title\": \"Set Up the Market\",\n \"summary\": \"\",\n \"subTitle\": \"Step 3: Reference Quoted A.\",\n \"gif\": \"\",\n \"image\": \"asset\",\n \"definition\": \"Now establish a reference from the ->Market Quoted Asset-> node in the Market you just defined to the corresponding ->Asset-> node defined under Exchange Assets.\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","id":"9710d88d-c4ae-406b-9079-31bcf7395817","savedPayload":{"position":{"x":25306.773966770266,"y":45559.81647184133},"targetPosition":{"x":25202.812579386053,"y":45070.41037869994},"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 \"title\": \"Set Up the Market\",\n \"summary\": \"\",\n \"subTitle\": \"Step 4: Label the Market\",\n \"gif\": \"\",\n \"image\": \"market\",\n \"definition\": \"Label the Market with the ticker names corresponding to the Market Base Asset and the Market Quoted Asset, just like the exchange listing. For example: ETH/USDT.\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Keeping a tidy ->Workspace-> with proper labels for significant nodes helps in managing large operations and administering complexity.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","id":"2d2ce361-6261-44b4-b7ff-466035934334","savedPayload":{"position":{"x":24999.45113888312,"y":45527.486835046875},"targetPosition":{"x":25202.812579386053,"y":45070.41037869994},"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":25202.812579386053,"y":45070.41037869994},"targetPosition":{"x":24952.875,"y":44637.3202247191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"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 \"title\": \"Install the Market\",\n \"summary\": \"Now that the Market is set up, installing it is just a click away.\",\n \"subTitle\": \"Single Step: Install\",\n \"gif\": \"\",\n \"image\": \"market\",\n \"definition\": \"Click the Install Market button on the ->Market-> node you just finished setting up.\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"The Install Market function sets up many data structures in the local ->Network Node-> and in the ->Charting Space->. The next few steps in the tutorial will help you get familiar with the installation.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","tutorialSteps":[],"tutorialTopics":[],"id":"e003540b-91f4-41ce-8082-45122ddb55e7","savedPayload":{"position":{"x":24702.80624850437,"y":45070.49479561351},"targetPosition":{"x":24952.875,"y":44637.3202247191},"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 \"title\": \"Network Verification\",\n \"summary\": \"\",\n \"subTitle\": \"\",\n \"gif\": \"\",\n \"image\": \"network-node\",\n \"definition\": \"The Install Market function sets up many data structures in the local ->Network Node->. \",\n \"paragraph1\": \"In the next few steps, you will verify that each of the expected data structures was created successfully. The expected structures are:\",\n \"callOut\": \"1. ->Data Mining-> tasks for all data mines included in your workspace.2. Backtesting and live trading tasks for all included trading systems. 3. The corresponding ->Data Storage-> definitions.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","tutorialSteps":[{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"title\": \"Network Verification\",\n \"subTitle\": \"Step 1: Verify Data Mining\",\n \"gif\": \"\",\n \"image\": \"data-mining\",\n \"definition\": \"Verify that the ->Data Mining-> tasks for the corresponding Market were created successfully.\",\n \"bulletListIntro\": \"Look for the following data structures:\",\n \"bulletArray\": [\n [\n \"A ->Market Data Tasks-> node\",\n \" for the new market.\"\n ],\n [\n \"One ->Data Mine Tasks-> node\",\n \" for each Data Mine included in the Workspace.\"\n ],\n [\n \"One ->Task Manager-> per ->Data Mine->\",\n \" and one ->Task-> for each bot defined in each data mine.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","id":"4bca0860-329c-4fde-a11e-d404d0f23431","savedPayload":{"position":{"x":24158.696029335413,"y":45041.99841093917},"targetPosition":{"x":24452.794871212405,"y":44637.32193533236},"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 \"title\": \"Network Verification\",\n \"subTitle\": \"Step 2: Verify Testing Env.\",\n \"gif\": \"\",\n \"image\": \"testing-environment\",\n \"definition\": \"Verify that the ->Testing Environment-> tasks for the corresponding ->Market-> were created successfully.\",\n \"bulletListIntro\": \"Look for the following data structures:\",\n \"bulletArray\": [\n [\n \"A ->Market Trading Tasks-> node\",\n \" for the new market.\"\n ],\n [\n \"One ->Trading Mine Tasks-> node\",\n \" for each trading mine included in the Workspace.\"\n ],\n [\n \"One ->Task Manager-> per trading mine and one ->Task-> with a ->Backtesting Session->\",\n \" for each ->Trading System-> in the workspace.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","id":"495e3d4c-87a8-4147-ad2a-06920da9d7a6","savedPayload":{"position":{"x":23976.94609855476,"y":44791.83617884339},"targetPosition":{"x":24452.794871212405,"y":44637.32193533236},"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 \"title\": \"Network Verification\",\n \"subTitle\": \"Step 3: Verify Prod. Env.\",\n \"gif\": \"\",\n \"image\": \"production-environment\",\n \"definition\": \"Verify that the ->Production Environment-> tasks for the corresponding ->Market-> were created successfully.\",\n \"bulletListIntro\": \"Look for the following data structures:\",\n \"bulletArray\": [\n [\n \"A ->Market Trading Tasks-> node\",\n \" for the new market.\"\n ],\n [\n \"One ->Trading Mine Tasks-> node\",\n \" for each trading mine included in the workspace.\"\n ],\n [\n \"One ->Task Manager-> per ->Trading Mine-> and one ->Task-> with a ->Backtesting Session->\",\n \" for each ->Trading System-> in the workspace.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","id":"43b85e55-3417-4b13-a7b6-7c5bc0fb691d","savedPayload":{"position":{"x":23976.927206632343,"y":44482.85992199178},"targetPosition":{"x":24452.794871212405,"y":44637.32193533236},"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 \"title\": \"Network Verification\",\n \"subTitle\": \"Step 4: Verify Data Storage\",\n \"gif\": \"\",\n \"image\": \"data-storage\",\n \"definition\": \"Verify that the ->Data Storage-> nodes for the corresponding ->Market-> were created successfully.\",\n \"bulletListIntro\": \"Look for the following data structures:\",\n \"bulletArray\": [\n [\n \"A ->Market Data Products-> node\",\n \" under ->Data Mines Data->, with a ->Data Mine Products-> node for each ->Data Mine-> in the workspace.\"\n ],\n [\n \"A ->Market Trading Products-> node\",\n \" under ->Trading Mines Data->, with a ->Session Reference-> for each trading session in the testing and production environments.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","id":"f37edf40-24ba-42d0-9458-bf008c123659","savedPayload":{"position":{"x":24158.648260123853,"y":44232.78190433869},"targetPosition":{"x":24452.794871212405,"y":44637.32193533236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"89c6f1e3-d4c8-48c0-aec1-9dda6e0b9797","savedPayload":{"position":{"x":24452.794871212405,"y":44637.32193533236},"targetPosition":{"x":24952.875,"y":44637.3202247191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"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 \"title\": \"Charts Verification\",\n \"summary\": \"\",\n \"subTitle\": \"\",\n \"gif\": \"\",\n \"image\": \"charting-space\",\n \"definition\": \"Beyond the data structures set up in the Network hierarchy, the Install Market function also sets up charts matching the trading sessions created.\",\n \"paragraph1\": \"In the next few steps you will verify that the expected data structures were created successfully.\",\n \"callOut\": \"The charts created allow working with each of the trading sessions independently.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Notice from the organization of the charts that Superalgos allows scaling up your operation to unlimited trading systems and charts.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","tutorialSteps":[{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"title\": \"Charts Verification\",\n \"subTitle\": \"Step 1: Verify Charting S.\",\n \"gif\": \"\",\n \"image\": \"charting-space\",\n \"definition\": \"Verify that the ->Charting Space-> data structures for the corresponding Market were created successfully.\",\n \"bulletListIntro\": \"Look for the following data structures:\",\n \"bulletArray\": [\n [\n \"A ->Time Machine-> node\",\n \" for each trading session created in the ->Testing Environment->.\"\n ],\n [\n \"A ->Time Machine-> node\",\n \" for each trading session created in the ->Production Environment->.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","id":"17eb1e8e-e9f4-4fe4-a8ea-2c0ea0804d87","savedPayload":{"position":{"x":24269.860903032473,"y":43953.81463102257},"targetPosition":{"x":24702.93486808084,"y":44204.15147045983},"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 \"title\": \"Charts Verification\",\n \"subTitle\": \"Step 2: Verify the Charts\",\n \"gif\": \"\",\n \"image\": \"time-machine\",\n \"definition\": \"Verify that the time machines created show up on the chartsing space... you should find...\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": [\n [\n \"A ->Time Machine->\",\n \" for each trading session created in the ->Testing Environment->.\"\n ],\n [\n \"A ->Time Machine->\",\n \" for each trading session created in the ->Production Environment->.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Hover your mouse over a chart to see what ->Crypto Exchange-> and ->Market-> it features.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","id":"a94fa42a-87c8-4874-ba45-ffa0ffd02f36","savedPayload":{"position":{"x":24702.935411101964,"y":43703.8953750845},"targetPosition":{"x":24702.93486808084,"y":44204.15147045983},"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":24702.93486808084,"y":44204.15147045983},"targetPosition":{"x":24952.875,"y":44637.3202247191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"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 \"title\": \"You Made It!\",\n \"subTitle\": \"\",\n \"gif\": \"\",\n \"image\": \"tutorial\",\n \"definition\": \"Congratulations... you have reached the end of this tutorial!\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"You may revisit this tutorial at any point. If you select the Play option on the menu, you start right from the beginning. If you select the Resume option instead, you start where you last left, or where you last skipped a step.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","tutorialSteps":[],"tutorialTopics":[],"id":"9b5e9927-860c-4b89-ac5d-d7f6fd86b18d","savedPayload":{"position":{"x":25202.92749724596,"y":44204.095327049356},"targetPosition":{"x":24952.875,"y":44637.3202247191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"d86ff84f-15d3-4a2d-9674-114c5b526de5","savedPayload":{"position":{"x":24952.875,"y":44637.3202247191},"targetPosition":{"x":24952.875,"y":44637.3202247191},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"}}}]} \ No newline at end of file diff --git a/Includes/Workspaces/Simple Workspace.json b/Includes/Workspaces/Simple Workspace.json new file mode 100644 index 000000000..43278a870 --- /dev/null +++ b/Includes/Workspaces/Simple Workspace.json @@ -0,0 +1 @@ +{"type":"Workspace","name":"Simple Workspace","rootNodes":[{"type":"Network","name":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","code":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34247\", \n\"webSocketsPort\": \"8080\"\n}","dataStorage":{"type":"Data Storage","name":"New Data Storage","dataMinesData":{"type":"Data Mines Data","name":"New Data Mines Data","exchangeDataProducts":[{"type":"Exchange Data Products","name":"Binance","marketDataProducts":[{"type":"Market Data Products","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"dd7c8795-bb24-4438-9d77-b37a9000ad7f","savedPayload":{"position":{"x":23356.151545791756,"y":29738.98747213911},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"98e6c917-f4b7-4b71-9215-de3ccaf3dc0c","savedPayload":{"position":{"x":23289.9634168229,"y":29661.78881099821},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"1d7dd537-5f6f-4eb2-8e56-ddba0aef720f","savedPayload":{"position":{"x":23230.726477172728,"y":29579.136981834145},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"221c8d22-8a7f-4014-a7ed-0bafc886b123","savedPayload":{"position":{"x":23178.792376750385,"y":29491.41855346877},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"6929ebe7-6486-4299-add5-ed0282500d91","savedPayload":{"position":{"x":23134.820126282055,"y":29399.731870197298},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"4a3ed8eb-a73e-4fb4-835a-681cf47d7373","savedPayload":{"position":{"x":23098.94227036551,"y":29304.396880399865},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"5ffc6a67-e33b-422b-8e36-f9711f93c723","savedPayload":{"position":{"x":23071.52275176024,"y":29206.288390341324},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"48f7953c-f62d-4292-b042-d1ac05f8f80f","savedPayload":{"position":{"x":23052.75926008704,"y":29106.03719846947},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"3b9a3c93-6d41-440e-89a2-2fd1b2dde603","savedPayload":{"position":{"x":23042.814830135056,"y":29004.579368724586},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"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","id":"70401ea0-3fed-4e40-8bba-a1e5adce9b8c","savedPayload":{"position":{"x":23041.789677606528,"y":28902.64008643744},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"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","id":"06ac8eb7-8b14-42b1-9e2e-466280ade032","savedPayload":{"position":{"x":23049.700325993366,"y":28801.01149261394},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"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":"Popular EMAs","id":"014bba70-64d4-4035-b06d-145ee9b4c54c","savedPayload":{"position":{"x":23066.451343666628,"y":28700.467627905105},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"768cc06c-6fdf-491a-a741-5e08f0e25e38","savedPayload":{"position":{"x":23091.90243592807,"y":28601.771247408127},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"40794460-b815-498f-a245-e677de0eed86","savedPayload":{"position":{"x":23125.87385332102,"y":28505.678405998704},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"7ccbd0c1-c804-47e3-9314-14cbb756c806","savedPayload":{"position":{"x":23168.113046926162,"y":28412.926671816662},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"728d6f08-086f-41ba-9126-30ec56a45ea5","savedPayload":{"position":{"x":23218.26811393212,"y":28324.208653268815},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"1510fd36-633e-40a7-adbe-680660d64bd0","savedPayload":{"position":{"x":23275.97808919002,"y":28240.21263462143},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"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":"Base5 SMAs","id":"2404b1eb-c7c9-46e7-b22a-93cfcc3739f4","savedPayload":{"position":{"x":23340.794026691627,"y":28161.573768965605},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"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":"Bollinger Channels","id":"d83476c3-2f0b-4d4a-abb2-0e47ed0a421d","savedPayload":{"position":{"x":23412.228306701436,"y":28088.898529126596},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"0428f20b-9620-480e-a531-dbb2e5f59ef4","savedPayload":{"position":{"x":23489.729271167354,"y":28022.735403909905},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"fcfec9fa-1a0d-4285-9fad-4a23409f88ed","savedPayload":{"position":{"x":23572.70454427426,"y":27963.58713898618},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"08f223a8-9707-4c45-b638-1fe0e4a2b053","savedPayload":{"position":{"x":23660.515162473926,"y":27911.893025426885},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"66f1a9be-fe96-48c3-91e4-500c6e246423","savedPayload":{"position":{"x":23752.505298075637,"y":27868.07258252279},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"e432c706-cbcd-4af0-b23c-b18e5b29377a","savedPayload":{"position":{"x":23847.95913527734,"y":27832.427532108184},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"7f2dfd8e-de4a-4bd1-8d34-27581f1a3ed8","savedPayload":{"position":{"x":23946.157909027424,"y":27805.25163401685},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"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","id":"595d148f-6cdf-48d3-ab8f-23fba0052631","savedPayload":{"position":{"x":24046.35154285919,"y":27786.752107717173},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"2045098a-e9b4-4409-9fd9-ee7285d9b7cf","savedPayload":{"position":{"x":24147.77467987278,"y":27777.06705636967},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"295bd09d-e868-4e8b-9944-39bf6e0d7951","savedPayload":{"position":{"x":24245.91228719812,"y":27776.013493575814},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"ba6f23d4-c2e7-41b4-88a0-e14ebb34e21c","savedPayload":{"position":{"x":24349.39951127062,"y":27783.740506660914},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"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"}}},{"type":"Data Product","name":"Resistances","id":"0669d924-aace-46d1-b126-ccced8fd33cf","savedPayload":{"position":{"x":24450.846146593023,"y":27800.63111612365},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Resistances","id":"7a734501-a0fb-4305-803e-7e95d477c513"}}},{"type":"Data Product","name":"Supports","id":"5e7a0e50-e6ed-4106-8025-8b35ad6c597c","savedPayload":{"position":{"x":24545.238460843404,"y":27824.631612616984},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Supports","id":"bc3c43de-6312-47d4-ae3d-0c95c1b039e0"}}},{"type":"Data Product","name":"Basic Candles","id":"4e14ecf7-3eaa-48ce-91fb-c6e1c806fdf8","savedPayload":{"position":{"x":24641.868946969375,"y":27857.909758166585},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Basic Candles","id":"7519e3d8-b5ec-47eb-84c9-8c9262c9efc6"}}},{"type":"Data Product","name":"One-Candle Patterns","id":"e11730aa-5ffb-42bd-8bfb-56e7fa36cd68","savedPayload":{"position":{"x":24738.37016391436,"y":27901.414020469074},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"One-Candle Patterns","id":"f3c0863c-ac0c-4fc0-b9ee-5f0f2bd722ea"}}},{"type":"Data Product","name":"Two-Candles Patterns","id":"3d5a0163-c683-43d8-b344-ec1113c4726c","savedPayload":{"position":{"x":24829.749543811897,"y":27953.46377656059},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Two-Candles Patterns","id":"29283392-6a01-4acd-8f41-328e92281980"}}},{"type":"Data Product","name":"Three-Candles Patterns","id":"86ebf7ee-0102-4dc1-a597-0f0df3e07df8","savedPayload":{"position":{"x":24926.75507085331,"y":28022.599661276992},"targetPosition":{"x":24208.282416169728,"y":28942.5921453813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Three-Candles Patterns","id":"1b6f79d8-d1ba-49e5-a808-42f71fba5657"}}}],"id":"cbdd3605-b905-453f-9ecb-e986cb2729f9","savedPayload":{"position":{"x":24208.282416169728,"y":28942.5921453813},"targetPosition":{"x":25074.84103413734,"y":29722.95696490207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}}],"id":"7f87ecc6-8dd3-42e9-9217-1579b64aae75","savedPayload":{"position":{"x":25074.591135580602,"y":29722.707164537456},"targetPosition":{"x":25508.2464317103,"y":30113.175313762848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"bf04ccea-266d-4115-b50e-fefdf29b873a","savedPayload":{"position":{"x":25508.2464317103,"y":30113.175313762848},"targetPosition":{"x":25941.962394841834,"y":30503.689482436115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"i"}}},"tradingMinesData":{"type":"Trading Mines Data","name":"New Trading Mines Data","exchangeTradingProducts":[{"type":"Exchange Trading Products","name":"Binance","sessionReferences":[{"type":"Session Reference","name":"Back WHB ","marketDataProducts":{"type":"Market Data Products","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"573fb46f-78d2-4bf3-ad11-e42d2531d53e","savedPayload":{"position":{"x":40971.62547458223,"y":28704.67815778764},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"39d7a06d-5aad-4b03-8778-e4df8dacc825","savedPayload":{"position":{"x":40739.2805936536,"y":28612.68448755448},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"7af9d35c-7464-4ed5-9ee6-ccf7a9943894","savedPayload":{"position":{"x":40648.47472250254,"y":28380.33960662585},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"82b46974-7a93-4066-a3b7-378b42710364","savedPayload":{"position":{"x":40749.374350272024,"y":28158.088482315645},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"109e30d5-c839-4e20-8744-2e4dc002f3a8","savedPayload":{"position":{"x":40971.62547458223,"y":28380.33960662585},"targetPosition":{"x":41034.51136563778,"y":28696.544935681453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"3792a579-2f2c-4c29-9cb1-05e2683db5da","savedPayload":{"position":{"x":25598.923749057652,"y":28711.764679557487},"targetPosition":{"x":26184.379330131018,"y":29362.007651139225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"f32f1cdc-425f-4193-a43b-be9312c74234"}}},{"type":"Session Reference","name":"Paper WHB ","marketDataProducts":{"type":"Market Data Products","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"63636068-307e-4cea-b31f-f47e106cea2c","savedPayload":{"position":{"x":41557.474267378886,"y":28704.538380895512},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"20848048-8efb-47b1-aaf0-789d2f6c5b1d","savedPayload":{"position":{"x":41328.36437304013,"y":28614.669001956987},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"87b74841-4f6a-4658-b01b-7feb254b5d2f","savedPayload":{"position":{"x":41238.701960314706,"y":28385.55910761823},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"5e28998c-b35f-4cc0-9fd6-8ee5f5714545","savedPayload":{"position":{"x":41328.657032916315,"y":28156.74187315566},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"12cd1cb4-f163-4d1b-8955-cae6904831c7","savedPayload":{"position":{"x":41557.474267378886,"y":28385.55910761823},"targetPosition":{"x":41536.37709492533,"y":28707.266395142844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"5f2e9d8a-f1df-4efd-8232-718818cab630","savedPayload":{"position":{"x":26093.003519281363,"y":28491.783569682495},"targetPosition":{"x":26184.379330131018,"y":29362.007651139225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"2198ec50-3d31-43b7-a57d-e386bef38a93"}}},{"type":"Session Reference","name":"Live Trading WHB ","marketDataProducts":{"type":"Market Data Products","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"af19e56c-eaf1-4b0b-93f9-74b9ac1843c2","savedPayload":{"position":{"x":42124.2954678251,"y":28863.166820214137},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"30ac52a8-ee50-439c-83c8-df75ab49374a","savedPayload":{"position":{"x":41899.82203310804,"y":28765.34236295704},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"c35fa0be-6e51-4d14-9a52-6b0174cc1aab","savedPayload":{"position":{"x":41803.41381185934,"y":28540.86892823998},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"6a059555-2555-4c7f-a722-2ab4ca0440c5","savedPayload":{"position":{"x":41897.44019113757,"y":28314.01365155245},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"863885a8-2351-4b29-9f2e-ae3aeda223fc","savedPayload":{"position":{"x":42124.2954678251,"y":28540.86892823998},"targetPosition":{"x":42020.66210112073,"y":28846.1629818523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"ee314903-8ee9-4068-8a90-9452c460b910","savedPayload":{"position":{"x":26621.815570035997,"y":28604.216203591706},"targetPosition":{"x":26184.379330131018,"y":29362.007651139225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"5335fd67-ebdc-4cfd-936d-b76af957713e"}}},{"type":"Session Reference","name":"Fwd WHB ","marketDataProducts":{"type":"Market Data Products","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"5919a710-a950-4049-9605-3f127b7fac6b","savedPayload":{"position":{"x":42492.63963403888,"y":28500.7397102676},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"c7030a88-152f-421c-8b32-66f3c222286a","savedPayload":{"position":{"x":42710.36396962775,"y":28492.07047492605},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"f4b18249-5044-4b34-83f7-3cedbbe939c5","savedPayload":{"position":{"x":42891.7169300037,"y":28613.377753949273},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"25db80e6-c4cf-4568-98d3-0cba83625ece","savedPayload":{"position":{"x":42967.139262708275,"y":28818.147267745622},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"9b6e94d5-442d-4882-beb6-6b616adb24a7","savedPayload":{"position":{"x":42636.198275976094,"y":28799.555013396635},"targetPosition":{"x":42436.14135357761,"y":29099.04809298164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"3892574a-ebe9-4d4d-8e79-02e6f0900c44","savedPayload":{"position":{"x":26983.70100916551,"y":29006.098744413946},"targetPosition":{"x":26184.379330131018,"y":29362.007651139225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Forward Testing Session","name":"Fwd WHB","id":"0e7edb98-38ff-4516-89a1-188030989ddc"}}}],"id":"5b3343c9-3fab-46ec-92e3-9c074759a112","savedPayload":{"position":{"x":26184.336812387766,"y":29361.92271222933},"targetPosition":{"x":26063.13281762007,"y":29932.789779714392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"29ca14e5-dabe-470a-be64-ed7996bd1e55","savedPayload":{"position":{"x":26063.13281762007,"y":29932.789779714392},"targetPosition":{"x":25941.962394841834,"y":30503.689482436115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0726a9e4-23b6-4d27-a8de-e91a9665a8ba","savedPayload":{"position":{"x":25942.05131952079,"y":30503.61497742276},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"d"}}},"dataMining":{"type":"Data Mining","name":"New Data Mining","exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Masters BTC/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"b1a110d4-ac93-402d-8465-a35a835d0c22","savedPayload":{"position":{"x":25911.866371765023,"y":29035.22970278082},"targetPosition":{"x":26161.033147086047,"y":29187.786307635728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"fa3aae08-61b3-4a35-af20-c1242b9954c8","savedPayload":{"position":{"x":26161.033147086047,"y":29187.786307635728},"targetPosition":{"x":26410.315846245398,"y":29340.432686747954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"e61db3ab-b80d-4575-8da1-5598e0b1b525","savedPayload":{"position":{"x":26410.315846245398,"y":29340.432686747954},"targetPosition":{"x":26659.69618698426,"y":29492.857356341436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"160f8edd-29cf-40c2-bb21-5f569d97f9d1","savedPayload":{"position":{"x":26659.69618698426,"y":29492.857356341436},"targetPosition":{"x":27157.999720881897,"y":29797.373832633883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"22df3948-2a73-4ca6-a927-4b722dbb27dc","savedPayload":{"position":{"x":26188.27442175536,"y":28720.7107633861},"targetPosition":{"x":26415.410828993652,"y":28904.65215868557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"5324b18d-e2b0-495e-94a0-cfc3f3473766","savedPayload":{"position":{"x":26415.410828993652,"y":28904.65215868557},"targetPosition":{"x":26642.568804807575,"y":29088.530378436128},"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","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"d7e0c235-4024-4888-86ba-32cf5c73b852","savedPayload":{"position":{"x":26328.475813638193,"y":28270.36317952221},"targetPosition":{"x":26485.465233723393,"y":28679.394363334697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"02adb2d3-1740-4f42-975e-e0365e308b97","savedPayload":{"position":{"x":26485.465233723393,"y":28679.394363334697},"targetPosition":{"x":26642.568804807575,"y":29088.530378436128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"ccf1813f-31d2-4359-88ce-8c8e6132f222","savedPayload":{"position":{"x":26642.568804807575,"y":29088.530378436128},"targetPosition":{"x":26814.557146223146,"y":29325.043724758394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b55a2f7e-354e-47ce-8986-a4a0079efe2b","savedPayload":{"position":{"x":26814.557146223146,"y":29325.043724758394},"targetPosition":{"x":27157.999720881897,"y":29797.373832633883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"89bf947b-a245-4aad-a2fa-472ad6f8fd2e","savedPayload":{"position":{"x":26674.739783479326,"y":28431.12954793744},"targetPosition":{"x":26814.084590819686,"y":28688.131186804178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"df74508f-a106-4190-83ae-8c43455cd889","savedPayload":{"position":{"x":26814.084590819686,"y":28688.131186804178},"targetPosition":{"x":26953.443835783408,"y":28945.050126517544},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"441d958c-4ebf-4cc5-b49e-cdaf3802efc3","savedPayload":{"position":{"x":26976.1242270086,"y":28068.78682555253},"targetPosition":{"x":26964.778094890844,"y":28506.842378514466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"daf27799-58cb-480a-832b-4e3404882961","savedPayload":{"position":{"x":26964.778094890844,"y":28506.842378514466},"targetPosition":{"x":26953.443835783408,"y":28945.050126517544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"b1b31e7e-12f8-45fd-9508-cb82030d7507","savedPayload":{"position":{"x":26953.443835783408,"y":28945.050126517544},"targetPosition":{"x":27021.661225205866,"y":29229.486533288866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"52b4b8db-0336-423c-9343-5353225b4bfb","savedPayload":{"position":{"x":27021.661225205866,"y":29229.486533288866},"targetPosition":{"x":27157.999720881897,"y":29797.373832633883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f7457cf6-bcdc-48e1-b6e2-b45de382bc37","savedPayload":{"position":{"x":27234.51336543948,"y":28349.988340088526},"targetPosition":{"x":27264.818633874467,"y":28640.814280711467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"5a6b7843-090c-4b3b-9be4-ed8c8d1f6935","savedPayload":{"position":{"x":27264.818633874467,"y":28640.814280711467},"targetPosition":{"x":27295.136953430276,"y":28931.564545251596},"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":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"e78c5425-7d77-47c5-bb63-db88cad6e060","savedPayload":{"position":{"x":27651.55385606688,"y":28130.76654747594},"targetPosition":{"x":27473.387701277607,"y":28531.091907082726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"4c5ed30f-d600-44e2-ac14-33ce0528178e","savedPayload":{"position":{"x":27473.387701277607,"y":28531.091907082726},"targetPosition":{"x":27295.136953430276,"y":28931.564545251596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"b4fb4df9-2d6e-4c0a-8eb5-d1bd78232d0d","savedPayload":{"position":{"x":27295.136953430276,"y":28931.564545251596},"targetPosition":{"x":27249.359613223736,"y":29220.504934869365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"aacffa8c-5a19-423f-b551-0f9a5c46a628","savedPayload":{"position":{"x":27249.359613223736,"y":29220.504934869365},"targetPosition":{"x":27157.999720881897,"y":29797.373832633883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"7af918d3-d9a4-4553-9b3d-12224b4ad938","savedPayload":{"position":{"x":27782.691779441622,"y":28489.562242457137},"targetPosition":{"x":27699.503502559655,"y":28769.847625622115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"0d8ca3f1-31af-40e4-8f43-4dacc8950dff","savedPayload":{"position":{"x":27699.503502559655,"y":28769.847625622115},"targetPosition":{"x":27616.31118070153,"y":29050.06242422175},"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":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f11fe52f-ba3f-486d-93f2-a6b82fa67c2d","savedPayload":{"position":{"x":28252.21648791965,"y":28446.87019586432},"targetPosition":{"x":27934.385960243617,"y":28748.421109549057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"ba74160c-2b59-497a-b895-4ddade53f72e","savedPayload":{"position":{"x":27934.385960243617,"y":28748.421109549057},"targetPosition":{"x":27616.31118070153,"y":29050.06242422175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"3a93a6a1-0d2e-475b-874e-8784dc4b6c78","savedPayload":{"position":{"x":27616.31118070153,"y":29050.06242422175},"targetPosition":{"x":27463.299881675714,"y":29299.430616794594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"9843b9dd-ff8e-4cef-b063-730b0317420d","savedPayload":{"position":{"x":27463.299881675714,"y":29299.430616794594},"targetPosition":{"x":27157.999720881897,"y":29797.373832633883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"da37aa9d-a68c-49eb-be66-5fcc1a13ab69","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"abae0d8d-c44c-4825-b6ad-aabad604ba2d","savedPayload":{"position":{"x":28104.305767386773,"y":29110.71366353339},"targetPosition":{"x":27867.617154339066,"y":29282.47648161653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"f33858b9-8561-4f70-ba70-d8d168786321","savedPayload":{"position":{"x":27867.617154339066,"y":29282.47648161653},"targetPosition":{"x":27630.747447074114,"y":29454.268224954394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"64e8f70e-829c-47cd-b933-f4e4dd0c90fc","savedPayload":{"position":{"x":27630.747447074114,"y":29454.268224954394},"targetPosition":{"x":27157.999720881897,"y":29797.373832633883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Resistances & Supports","bot":{"type":"Indicator Bot Instance","name":"Resistances & Supports","code":" {\n \"repo\": \"\"\n }","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"5e0f86e6-2a43-49c2-a347-7203f0867c2d","savedPayload":{"position":{"x":28781.037314525078,"y":29175.961565324156},"targetPosition":{"x":28395.989079901734,"y":29384.862138219618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"f9f341a9-ba04-4c03-8f3b-249e72681562","savedPayload":{"position":{"x":28395.989079901734,"y":29384.862138219618},"targetPosition":{"x":28010.758499425036,"y":29593.820159886338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"5d9b2729-43fb-4e7e-aa4f-b8477c424e51"}}},{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"9974d57e-33ac-4fcf-ad75-35a8c4dc549e","savedPayload":{"position":{"x":28595.21525205699,"y":29609.221777004426},"targetPosition":{"x":28302.991357735238,"y":29601.560258926966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"9c93e98f-e166-4c8d-a9d7-08ada9c68eeb","savedPayload":{"position":{"x":28302.991357735238,"y":29601.560258926966},"targetPosition":{"x":28010.758499425036,"y":29593.820159886338},"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":"be19d91b-9337-4f84-96b3-f4e54ea12df5"}}}],"id":"88a4c3b6-e148-47e8-91b2-bf72bb167dc5","savedPayload":{"position":{"x":28010.758499425036,"y":29593.820159886338},"targetPosition":{"x":27726.20889929263,"y":29661.685428695426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c9dc449-6a37-4f34-8984-13aafed439fc","savedPayload":{"position":{"x":27726.20889929263,"y":29661.685428695426},"targetPosition":{"x":27157.999720881897,"y":29797.373832633883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ea242bf3-f7e6-431a-ab41-e022cb3ac6df","savedPayload":{"position":{"x":27157.99715524524,"y":29796.07562391848},"targetPosition":{"x":27066.795935474333,"y":30372.8455418336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta BTC/USDT","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"08b275d2-c921-49d0-a88d-5669df5c17e0","savedPayload":{"position":{"x":27246.45457888948,"y":28356.458201022706},"targetPosition":{"x":27392.427732535423,"y":28609.39924916399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"a5449b25-a98e-4fa4-87eb-5f60b967770a","savedPayload":{"position":{"x":27392.427732535423,"y":28609.39924916399},"targetPosition":{"x":27538.346543719807,"y":28862.269200750747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"287d4ba4-1404-4256-bdbb-cf2c970e5269","savedPayload":{"position":{"x":28121.44975504309,"y":27851.455214901147},"targetPosition":{"x":27829.881722021866,"y":28356.799326604483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"05fb2b7e-6704-4f05-b12b-b590101e5ca9","savedPayload":{"position":{"x":27829.881722021866,"y":28356.799326604483},"targetPosition":{"x":27538.346543719807,"y":28862.269200750747},"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":"f6dc278d-5a5c-4cba-b513-f0660a9f492d","savedPayload":{"position":{"x":27538.346543719807,"y":28862.269200750747},"targetPosition":{"x":27538.352910477868,"y":29445.812304284584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a15b5f86-52c2-4a22-9dd9-311d981601ba","savedPayload":{"position":{"x":27538.352910477868,"y":29445.812304284584},"targetPosition":{"x":27538.58167781868,"y":30029.957504632985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f8ea11d8-7b32-4ed0-968d-a20df0b49d7f","savedPayload":{"position":{"x":28285.712604510427,"y":28504.402887622684},"targetPosition":{"x":28255.184541139024,"y":28794.883276237004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"e32509df-e962-4760-991e-6533a398c58e","savedPayload":{"position":{"x":28255.184541139024,"y":28794.883276237004},"targetPosition":{"x":28224.675454450076,"y":29085.260838175454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"0d4140a1-5e1f-4e2e-b540-582474e41889","savedPayload":{"position":{"x":29290.747119288608,"y":28610.46997447102},"targetPosition":{"x":28757.74172969406,"y":28847.807492486478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"96466f5a-6dd9-4db9-b30c-1c4622076d8a","savedPayload":{"position":{"x":28757.74172969406,"y":28847.807492486478},"targetPosition":{"x":28224.675454450076,"y":29085.260838175454},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"fffaf3df-a88c-4d45-bb52-d02b818502b5","savedPayload":{"position":{"x":28224.675454450076,"y":29085.260838175454},"targetPosition":{"x":27881.7339061849,"y":29557.358580923727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"53fd5de3-7d70-4eb7-8dd6-976d1e188d12","savedPayload":{"position":{"x":27881.7339061849,"y":29557.358580923727},"targetPosition":{"x":27538.58167781868,"y":30029.957504632985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"78a80ff6-f4f2-4680-9a7b-65225144dd94","savedPayload":{"position":{"x":29040.000471124044,"y":29235.459222388195},"targetPosition":{"x":28844.48310438237,"y":29452.405685630765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"301a8d2c-f659-4d4b-9906-40177bdc1256","savedPayload":{"position":{"x":28844.48310438237,"y":29452.405685630765},"targetPosition":{"x":28649.042574668892,"y":29669.27747241303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"a9291a08-1ba1-436b-b491-e759cc8fb7d1","savedPayload":{"position":{"x":29790.722517415437,"y":29911.26025820064},"targetPosition":{"x":29219.93543798035,"y":29790.268131169552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"19fff031-07c3-4836-9bca-1570eb69a931","savedPayload":{"position":{"x":29219.93543798035,"y":29790.268131169552},"targetPosition":{"x":28649.042574668892,"y":29669.27747241303},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"a81bcaf4-6c99-4b6a-8291-5fa657ae2c17","savedPayload":{"position":{"x":28649.042574668892,"y":29669.27747241303},"targetPosition":{"x":28094.032870143245,"y":29849.517133815796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e2997a2-13ae-464c-b980-9ec46584db3b","savedPayload":{"position":{"x":28094.032870143245,"y":29849.517133815796},"targetPosition":{"x":27538.58167781868,"y":30029.957504632985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f6802028-335d-4e31-90a7-9d608199aafb","savedPayload":{"position":{"x":29220.053052321964,"y":30269.327751130564},"targetPosition":{"x":28934.412735437945,"y":30330.02440533622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"8540fa7a-f4b2-4e97-923c-e8acd00bbb9f","savedPayload":{"position":{"x":28934.412735437945,"y":30330.02440533622},"targetPosition":{"x":28648.80415483949,"y":30390.559612903737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"51d58c12-ad1f-450e-94fd-ea0f8ad08769","savedPayload":{"position":{"x":29429.67599546543,"y":31257.953265472057},"targetPosition":{"x":29039.27607701413,"y":30824.29029510223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"c655562c-3839-42e0-9ea6-982629405d33","savedPayload":{"position":{"x":29039.27607701413,"y":30824.29029510223},"targetPosition":{"x":28648.80415483949,"y":30390.559612903737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"f84cf5d6-034c-42db-b197-e95c0228efc9","savedPayload":{"position":{"x":28648.80415483949,"y":30390.559612903737},"targetPosition":{"x":28093.83871815004,"y":30210.370247354684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"385443d2-f17f-459c-b603-58f42e5c366f","savedPayload":{"position":{"x":28093.83871815004,"y":30210.370247354684},"targetPosition":{"x":27538.58167781868,"y":30029.957504632985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"2a5cc26f-cb88-4743-b412-c33acb6aa0fb","savedPayload":{"position":{"x":27539.223688729708,"y":30029.634957847353},"targetPosition":{"x":27066.795935474333,"y":30372.8455418336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Buddha BTC/USDT","tasks":[{"type":"Task","name":"Candle Patterns","bot":{"type":"Indicator Bot Instance","name":"Candle Patterns","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Patterns Multi-Period-Market","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"db4b89d0-10af-4bde-9055-daa8ce7f16f4","savedPayload":{"position":{"x":29342.03675229305,"y":30439.22702105004},"targetPosition":{"x":29069.35768445914,"y":30543.713755023884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"6afbb9c2-b0f0-44b7-95e7-b7b5468cc1f4","savedPayload":{"position":{"x":29069.35768445914,"y":30543.713755023884},"targetPosition":{"x":28796.746879396986,"y":30648.13698907694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"3aaf9f93-0516-4b3d-9772-44be91615154"}}},{"type":"Indicator Process Instance","name":"Candle Patterns Multi-Period-Daily","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"96d74290-d474-49ec-9d92-eac2a3281231","savedPayload":{"position":{"x":29703.94343053783,"y":31382.73162430061},"targetPosition":{"x":29250.375224712014,"y":31015.46751245425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"743650af-a6cd-47fc-b0a1-41de65a6e632","savedPayload":{"position":{"x":29250.375224712014,"y":31015.46751245425},"targetPosition":{"x":28796.746879396986,"y":30648.13698907694},"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":"8a7ce3e2-20a1-496b-86bf-2d7842f88536"}}}],"id":"a9c80bea-5545-423f-b5d7-f2f65164d208","savedPayload":{"position":{"x":28796.746879396986,"y":30648.13698907694},"targetPosition":{"x":28220.260313542076,"y":30556.774932345154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2c112f81-7eae-4382-8094-93c545119bb0","savedPayload":{"position":{"x":28220.260313542076,"y":30556.774932345154},"targetPosition":{"x":27643.407918116736,"y":30465.291929387033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fea766d7-9514-415b-aa35-364742aea91d","savedPayload":{"position":{"x":27643.545443825915,"y":30464.211386861785},"targetPosition":{"x":27066.795935474333,"y":30372.8455418336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b1c93d10-5dd9-4b3f-9662-b9bf7850b81a","savedPayload":{"position":{"x":27066.795935474333,"y":30372.8455418336},"targetPosition":{"x":26594.620238310126,"y":30715.850372716235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"7449a608-32ca-4285-94d1-c96791e2817f","savedPayload":{"position":{"x":26594.74547070257,"y":30715.764002746084},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"testingEnvironment":{"type":"Testing Environment","name":"New Testing Environment","exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Paper & Backtesting Sessions BTC/USDT","tasks":[{"type":"Task","name":"Paper Trading WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Paper Trading Session","name":"Paper WHB","code":"{\n\"folderName\": \"Paper-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"34d3f232-9fb1-47e1-97be-9233ef34db93","savedPayload":{"position":{"x":29064.393244637387,"y":32246.70439914241},"targetPosition":{"x":29279.54118924854,"y":32443.944382994956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"969cd1c0-1d6d-4667-a810-d18369410d94","savedPayload":{"position":{"x":29299.46844670258,"y":32152.36958532117},"targetPosition":{"x":29279.54118924854,"y":32443.944382994956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"4af996da-6714-41ac-ad51-5706f41b40f0","savedPayload":{"position":{"x":29520.077958658403,"y":32277.632667932994},"targetPosition":{"x":29279.54118924854,"y":32443.944382994956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"963db77e-0405-4fc4-8780-1b7fa93f41a6","savedPayload":{"position":{"x":29559.768671541227,"y":32527.95233253213},"targetPosition":{"x":29279.54118924854,"y":32443.944382994956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"cd125f30-93e7-4786-b1e1-33274bd2877c","savedPayload":{"position":{"x":29388.662976726024,"y":32715.280877632933},"targetPosition":{"x":29279.54118924854,"y":32443.944382994956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"f8fcac2e-2a52-4189-a95d-77e83b5a6f98","savedPayload":{"position":{"x":29136.09535884985,"y":32698.32517200085},"targetPosition":{"x":29279.54118924854,"y":32443.944382994956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b5ba0c98-c052-4195-92c2-119652d91c32","savedPayload":{"position":{"x":29279.54118924854,"y":32443.944382994956},"targetPosition":{"x":28991.156025125947,"y":32489.43729500607},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2198ec50-3d31-43b7-a57d-e386bef38a93","savedPayload":{"position":{"x":28991.156025125947,"y":32489.43729500607},"targetPosition":{"x":28703.43428550334,"y":32534.931766037582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"06c8bcea-4122-4a35-8db3-a1ddc7657e4b","savedPayload":{"position":{"x":28886.618773071255,"y":32762.168395792276},"targetPosition":{"x":28703.43428550334,"y":32534.931766037582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"731abb89-b672-41b1-b403-2932226d3df7","savedPayload":{"position":{"x":28703.43428550334,"y":32534.931766037582},"targetPosition":{"x":28431.211697225608,"y":32430.273741172245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"4f784203-664a-4791-9e3a-7565f0a11e79","savedPayload":{"position":{"x":28431.211697225608,"y":32430.273741172245},"targetPosition":{"x":28083.989128969773,"y":32297.060009772482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"e04e8948-849d-4161-af18-4644990d0b49","savedPayload":{"position":{"x":28084.329308809214,"y":32297.143658779103},"targetPosition":{"x":27539.091525582156,"y":32088.114943529785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Backtesting WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Backtesting Session","name":"Back WHB","code":"{\n\"folderName\": \"Back-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5\n}","id":"48e2c5e0-8f9e-40f0-8ab6-2ecc57aa3039","savedPayload":{"position":{"x":28782.980995918995,"y":32991.24967931307},"targetPosition":{"x":28870.94205680006,"y":33269.9197687117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{}","id":"e8703a6e-e6c0-485f-a27d-a9e60a57a0a6","savedPayload":{"position":{"x":29033.712298994065,"y":33027.22078146843},"targetPosition":{"x":28870.94205680006,"y":33269.9197687117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"initialDatetime\": \"2019-01-01\",\n\"finalDatetime\": \"2020-12-31\"\n}","id":"08815e4e-c066-4914-85b7-a4f7ce4748a5","savedPayload":{"position":{"x":29162.101501725396,"y":33245.90506025486},"targetPosition":{"x":28870.94205680006,"y":33269.9197687117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"805c356b-4a05-424e-ba29-260e35c11943","savedPayload":{"position":{"x":29071.207528800398,"y":33482.48322373823},"targetPosition":{"x":28870.94205680006,"y":33269.9197687117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"bcccd1fd-188c-43e4-abfc-4bc89d6adecc","savedPayload":{"position":{"x":28829.657320025402,"y":33559.09625732106},"targetPosition":{"x":28870.94205680006,"y":33269.9197687117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"ae594b88-e40b-408b-8082-3ba92ffc2c8c","savedPayload":{"position":{"x":28619.150949733543,"y":33417.95295637538},"targetPosition":{"x":28870.94205680006,"y":33269.9197687117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c220646b-827b-43c8-ab7e-5ecd53b4070a","savedPayload":{"position":{"x":28870.94205680006,"y":33269.9197687117},"targetPosition":{"x":28598.24552294302,"y":33165.15385183666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f32f1cdc-425f-4193-a43b-be9312c74234","savedPayload":{"position":{"x":28598.24552294302,"y":33165.15385183666},"targetPosition":{"x":28326.18831241346,"y":33060.90150635848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"02fe6309-40c0-4e31-9aed-fbf8f434bfa9","savedPayload":{"position":{"x":28371.238691846604,"y":33349.19375794562},"targetPosition":{"x":28326.18831241346,"y":33060.90150635848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"dd22d90b-5a91-4723-9f65-17eb94fb4d9d","savedPayload":{"position":{"x":28326.18831241346,"y":33060.90150635848},"targetPosition":{"x":28142.71583640529,"y":32834.0296077393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"0942010b-12f0-4be9-979d-c3e1bbc4eb74","savedPayload":{"position":{"x":28142.71583640529,"y":32834.0296077393},"targetPosition":{"x":27906.18113622337,"y":32541.76131576305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a8ff6583-b710-44b1-8768-d8a70bdf22c9","savedPayload":{"position":{"x":27906.39889679037,"y":32542.04443009769},"targetPosition":{"x":27539.091525582156,"y":32088.114943529785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"caed4703-e134-4a48-9062-fe5277b7d95f","savedPayload":{"position":{"x":27539.091525582156,"y":32088.114943529785},"targetPosition":{"x":27066.843367177287,"y":31745.041164200262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"f69b2c23-ccc5-47fb-9945-9b7badcea636","savedPayload":{"position":{"x":27066.843367177287,"y":31745.041164200262},"targetPosition":{"x":26594.6500251233,"y":31402.008546193836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"2ae685a1-25c6-4bd5-b559-d83e373e8d45","savedPayload":{"position":{"x":26594.745911822236,"y":31402.080901386686},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"productionEnvironment":{"type":"Production Environment","name":"New Production Environment","exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Fwd & Live Sessions BTC/USDT","tasks":[{"type":"Task","name":"Fwd Testing WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Forward Testing Session","name":"Fwd WHB","code":"{\n\"folderName\": \"Fwd-WHB\",\n\"balancePercentage\": 10\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"079cdfaf-2d41-4fa3-a68d-9e2620de0cdd","savedPayload":{"position":{"x":25903.964610736308,"y":34224.02783814853},"targetPosition":{"x":25782.77845918733,"y":34488.92344707184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"5f5ec9f1-c4e2-4ca7-94c4-bad619511e5c","savedPayload":{"position":{"x":26066.32062068881,"y":34418.71426901046},"targetPosition":{"x":25782.77845918733,"y":34488.92344707184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"d5fda5e7-7571-41e7-b19a-a721d73fd8f5","savedPayload":{"position":{"x":26015.407862691092,"y":34666.99323477001},"targetPosition":{"x":25782.77845918733,"y":34488.92344707184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"f6ed8468-7fd1-4aac-848b-647973e41b04","savedPayload":{"position":{"x":25789.35810184877,"y":34782.2248864464},"targetPosition":{"x":25782.77845918733,"y":34488.92344707184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"da2d51df-7c40-4bf0-80ec-63a38992fcfe","savedPayload":{"position":{"x":25558.745718953734,"y":34677.46423439426},"targetPosition":{"x":25782.77845918733,"y":34488.92344707184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"4e1b48a9-df71-402e-9159-66c49cdc08b3","savedPayload":{"position":{"x":25496.923539950913,"y":34431.95773730544},"targetPosition":{"x":25782.77845918733,"y":34488.92344707184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b9e7a071-26dd-4796-8704-2314f6c2c603","savedPayload":{"position":{"x":25782.77845918733,"y":34488.92344707184},"targetPosition":{"x":25650.00488421677,"y":34229.51031958291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0e7edb98-38ff-4516-89a1-188030989ddc","savedPayload":{"position":{"x":25650.00488421677,"y":34229.51031958291},"targetPosition":{"x":25517.447589607607,"y":33969.109084071606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"New Exchange Account Key","id":"8d9b39d4-b764-486d-a2f6-e84391bbd818","savedPayload":{"position":{"x":25199.98943727795,"y":34458.909197010624},"targetPosition":{"x":25358.613496630183,"y":34214.36409675572},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"New Exchange Account Key","id":"88eab4e5-3be4-4982-93fa-e95bcb1ab559"}}},"id":"f122bd16-0c85-43d1-932a-57a710db8013","savedPayload":{"position":{"x":25358.613496630183,"y":34214.36409675572},"targetPosition":{"x":25517.447589607607,"y":33969.109084071606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"a034c52a-8924-4e60-9653-f6da1ea6f8b5","savedPayload":{"position":{"x":25517.447589607607,"y":33969.109084071606},"targetPosition":{"x":25532.40977310501,"y":33678.55423090444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"74f70f20-305b-4e90-aad6-1bcd2ff8ee1c","savedPayload":{"position":{"x":25532.40977310501,"y":33678.55423090444},"targetPosition":{"x":25551.50194338215,"y":33306.87326831779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"749d6eaf-1548-47ca-901d-1cfc1a21b0a5","savedPayload":{"position":{"x":25551.252874257087,"y":33307.590369724894},"targetPosition":{"x":25581.485374725336,"y":32724.418698281694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Live Trading WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Live Trading Session","name":"Live Trading WHB","code":"{\n\"folderName\": \"Live-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"166cdb09-90e0-49a1-9c38-b57364287620","savedPayload":{"position":{"x":25109.403090562835,"y":34182.82494345859},"targetPosition":{"x":24871.44407298634,"y":34352.81569267779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"5bf43efd-3dd2-44f2-b25e-f6c7a5fda17e","savedPayload":{"position":{"x":25152.70374824769,"y":34432.37709783826},"targetPosition":{"x":24871.44407298634,"y":34352.81569267779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"88d7104b-7925-408a-b490-bbbaaafd7a5f","savedPayload":{"position":{"x":24984.386057092983,"y":34622.13083241753},"targetPosition":{"x":24871.44407298634,"y":34352.81569267779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"1c158006-c3c1-4157-8ad6-f08ee2b769d6","savedPayload":{"position":{"x":24731.322324191053,"y":34608.83398610883},"targetPosition":{"x":24871.44407298634,"y":34352.81569267779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"01064db9-f153-4d30-a26c-d9d339e7a856","savedPayload":{"position":{"x":24583.70097256323,"y":34402.545126152516},"targetPosition":{"x":24871.44407298634,"y":34352.81569267779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"06f7cc4e-6112-4ac8-9f20-610b357a58d2","savedPayload":{"position":{"x":24652.882864423478,"y":34158.98471560196},"targetPosition":{"x":24871.44407298634,"y":34352.81569267779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b86ce81f-5084-48d1-8a45-8f45fbe97891","savedPayload":{"position":{"x":24871.44407298634,"y":34352.81569267779},"targetPosition":{"x":24886.92820703921,"y":34060.78806671803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5335fd67-ebdc-4cfd-936d-b76af957713e","savedPayload":{"position":{"x":24886.92820703921,"y":34060.78806671803},"targetPosition":{"x":24901.83488901802,"y":33770.080096507605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"New Exchange Account Key","id":"a0061ba6-2359-4c5c-822d-1e17aaf7c2fd","savedPayload":{"position":{"x":24381.103071237296,"y":34034.3846956502},"targetPosition":{"x":24641.69046361135,"y":33901.74001268537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"New Exchange Account Key","id":"88eab4e5-3be4-4982-93fa-e95bcb1ab559"}}},"id":"954b1896-121c-41e2-9608-5b46a70082fb","savedPayload":{"position":{"x":24641.69046361135,"y":33901.74001268537},"targetPosition":{"x":24901.83488901802,"y":33770.080096507605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"8cb4d9af-0f53-4b33-9174-330da87b166c","savedPayload":{"position":{"x":24901.83488901802,"y":33770.080096507605},"targetPosition":{"x":25060.95076051503,"y":33525.41746799385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"8b30643a-eb54-4d6f-958d-8393f9a1e5f4","savedPayload":{"position":{"x":25060.95076051503,"y":33525.41746799385},"targetPosition":{"x":25263.574609488252,"y":33213.651006905486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"52ec5181-d057-42e3-a6e8-407d20d4e641","savedPayload":{"position":{"x":25263.298335502997,"y":33214.03063510181},"targetPosition":{"x":25581.485374725336,"y":32724.418698281694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1bbb36fe-edbf-49d8-9827-85a1345c0289","savedPayload":{"position":{"x":25581.485374725336,"y":32724.418698281694},"targetPosition":{"x":25761.810958011934,"y":32169.23148961144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"l"}}}],"id":"fa859e89-960f-4fe1-8e68-1e41b0ea80ec","savedPayload":{"position":{"x":25761.810958011934,"y":32169.23148961144},"targetPosition":{"x":25942.088401105026,"y":31614.106118777217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"32656457-f603-416a-b805-546642094dc4","savedPayload":{"position":{"x":25942.051613267777,"y":31614.229119805834},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"u"}}},"id":"ce601334-52c5-4ffb-ab61-49ca1943a15a","savedPayload":{"position":{"x":26122.378344035824,"y":31058.919069244217},"targetPosition":{"x":24954.356993272086,"y":31057.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"r"}}}],"id":"efbbc81b-93c8-4ce0-873e-675f39d333e8","savedPayload":{"position":{"x":24954.356993272086,"y":31057.918778615294},"targetPosition":{"x":24954.356993272086,"y":31057.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"n"}}},{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","cryptoExchanges":[{"type":"Crypto Exchanges","name":"Tested","exchanges":[{"type":"Crypto Exchange","name":"Binance","code":"{\n \"codeName\": \"binance\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"EUR\"} \n}","assets":[{"type":"Asset","name":"Bitcoin","code":"{ \n\"codeName\": \"BTC\"\n}","id":"b2814a75-fd57-45c4-a3cb-af276793e573","savedPayload":{"position":{"x":15967.44309285646,"y":29847.135043296803},"targetPosition":{"x":16205.545945497362,"y":30527.756016236122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","code":"{ \n\"codeName\": \"USDT\"\n}","id":"04c5f172-6976-4557-b95f-38004b5201a6","savedPayload":{"position":{"x":16286.157460522874,"y":29811.18041511011},"targetPosition":{"x":16205.545945497362,"y":30527.756016236122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Ether","code":"{ \n\"codeName\": \"ETH\"\n}","id":"4175d47c-e12c-4902-b026-f4999a6d07a4","savedPayload":{"position":{"x":16589.12428459197,"y":29917.189032436385},"targetPosition":{"x":16205.545945497362,"y":30527.756016236122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Monero","code":"{ \n\"codeName\": \"XMR\"\n}","id":"e3b61070-77b9-4dcf-9862-7f05ffa237f3","savedPayload":{"position":{"x":16816.088566826857,"y":30144.150476341456},"targetPosition":{"x":16205.545945497362,"y":30527.756016236122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Stellar","code":"{ \n\"codeName\": \"XLM\"\n}","id":"6dee1e7e-80f3-4597-a28a-881af206ec14","savedPayload":{"position":{"x":16922.098690796603,"y":30447.112178621046},"targetPosition":{"x":16205.545945497362,"y":30527.756016236122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Ethereum Classic","code":"{ \n\"codeName\": \"ETC\"\n}","id":"59378d33-4833-495a-89bb-f739710be7d9","savedPayload":{"position":{"x":16886.145790164148,"y":30765.817563816232},"targetPosition":{"x":16205.545945497362,"y":30527.756016236122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"f4451bbc-50ea-4558-9b3c-abd3e757a76e","savedPayload":{"position":{"x":16205.545945497362,"y":30527.756016236122},"targetPosition":{"x":15695.118637317873,"y":31038.258824041466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"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}","markets":[{"type":"Market","name":"BTC/USDT","code":"{ \n\"codeName\": \"BTC/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","id":"07b514a4-3ea2-4ab7-aeb0-07b48acb6f8d","savedPayload":{"position":{"x":21418.148667708156,"y":30701.46319009064},"targetPosition":{"x":20014.971960652125,"y":31038.270359234422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b2814a75-fd57-45c4-a3cb-af276793e573"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"61e7d2b5-1672-4e11-8380-345a4fe4a991","savedPayload":{"position":{"x":22170.863427392924,"y":30868.69006065924},"targetPosition":{"x":20014.971960652125,"y":31038.270359234422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"04c5f172-6976-4557-b95f-38004b5201a6"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"a174a91f-0818-4fdc-88cd-20dbdf45c548","savedPayload":{"position":{"x":20374.973408504586,"y":31066.505521421997},"targetPosition":{"x":20014.971960652125,"y":31038.270359234422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"11beab3d-d894-4d20-9940-f864ba957f91","savedPayload":{"position":{"x":20716.561988257432,"y":31206.642862985776},"targetPosition":{"x":20014.971960652125,"y":31038.270359234422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"5489751f-5ce4-40d0-9854-5bcfdc810269","savedPayload":{"position":{"x":20014.971960652125,"y":31038.270359234422},"targetPosition":{"x":18576.40661231586,"y":31038.255631454067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0e1257c5-49b1-4b52-8942-9bdef72854d2","savedPayload":{"position":{"x":18576.427729977804,"y":31038.253067304962},"targetPosition":{"x":15695.118637317873,"y":31038.258824041466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b","savedPayload":{"position":{"x":17883.94349661904,"y":31699.023105013377},"targetPosition":{"x":17413.34383070435,"y":32245.925504430856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b2814a75-fd57-45c4-a3cb-af276793e573"}}},{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da","savedPayload":{"position":{"x":18074.681671083465,"y":31957.444909698865},"targetPosition":{"x":17413.34383070435,"y":32245.925504430856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"04c5f172-6976-4557-b95f-38004b5201a6"}}},{"type":"Exchange Account Asset","name":"Ether","id":"b3d0800f-f430-4549-86e9-68001c43fa1f","savedPayload":{"position":{"x":18134.395487270907,"y":32272.81618121735},"targetPosition":{"x":17413.34383070435,"y":32245.925504430856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4175d47c-e12c-4902-b026-f4999a6d07a4"}}},{"type":"Exchange Account Asset","name":"Monero","id":"ee25ff6a-8b3d-4f30-8acf-71ca4b186195","savedPayload":{"position":{"x":18051.273125881857,"y":32583.04169055345},"targetPosition":{"x":17413.34383070435,"y":32245.925504430856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Monero","id":"e3b61070-77b9-4dcf-9862-7f05ffa237f3"}}},{"type":"Exchange Account Asset","name":"Stellar","id":"5716ea79-1392-4f6d-a46e-dba38ab9b39e","savedPayload":{"position":{"x":17841.77944119295,"y":32826.479447759964},"targetPosition":{"x":17413.34383070435,"y":32245.925504430856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Stellar","id":"6dee1e7e-80f3-4597-a28a-881af206ec14"}}},{"type":"Exchange Account Asset","name":"Ethereum Classic","id":"d9d0d41c-67a9-42ea-8c64-067647ee53a4","savedPayload":{"position":{"x":17547.395223150266,"y":32954.91197925835},"targetPosition":{"x":17413.34383070435,"y":32245.925504430856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ethereum Classic","id":"59378d33-4833-495a-89bb-f739710be7d9"}}}],"id":"f7bbfcc0-2359-4de1-8ddc-5e117bde0c52","savedPayload":{"position":{"x":17413.34383070435,"y":32245.925504430856},"targetPosition":{"x":16715.955521876418,"y":32059.186949757976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"88eab4e5-3be4-4982-93fa-e95bcb1ab559","savedPayload":{"position":{"x":17089.155476335174,"y":33453.08398755229},"targetPosition":{"x":16902.661477551464,"y":32756.597581416187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"cf3895fd-4f0c-4bd8-8afb-886a718cc891","savedPayload":{"position":{"x":16902.661477551464,"y":32756.597581416187},"targetPosition":{"x":16715.955521876418,"y":32059.186949757976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a718949a-e315-4bda-8523-b0b03e3ca507","savedPayload":{"position":{"x":16715.955521876418,"y":32059.186949757976},"targetPosition":{"x":16205.554645103493,"y":31548.73263125611},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a913b30b-17d3-4b2b-9c39-9c7dc67f0000","savedPayload":{"position":{"x":16205.554645103493,"y":31548.73263125611},"targetPosition":{"x":15695.118637317873,"y":31038.258824041466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"22d2b36e-7a77-40a6-8948-b7d0fb744923","savedPayload":{"position":{"x":15695.118637317873,"y":31038.258824041466},"targetPosition":{"x":14251.232225370944,"y":31038.26024839772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"c16f8dd4-05f5-45db-8a47-713eb1116f72","savedPayload":{"position":{"x":14251.232225370944,"y":31038.26024839772},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"signalsProviders":[],"superActions":{"type":"Super Actions","name":"New Super Actions","superActions":[{"type":"Super Action","name":"Install Market","id":"2cd8e9dd-02a8-40b5-8979-108491309697","savedPayload":{"position":{"x":13596.796537982185,"y":29900.600915146206},"targetPosition":{"x":13238.769838624787,"y":30494.890822183912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"d103d8f7-8b21-436a-a0cf-8244b3dcb756","savedPayload":{"position":{"x":13738.553946135695,"y":30013.646249280533},"targetPosition":{"x":13238.769838624787,"y":30494.890822183912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"c934df8f-d942-4723-ad44-f187e5df4351","savedPayload":{"position":{"x":12166.581869182457,"y":31038.25465749285},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9f4e7bfb-ea29-47cd-92bd-11f31d177ff8","savedPayload":{"position":{"x":12805.301618063546,"y":31038.2348844148},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"e"}}},{"type":"Charting Space","name":"New Charting Space","viewport":{"type":"Viewport","name":"New Viewport","code":"{\"zoom\":\"1.40\"}","id":"c3db9bcf-39ee-47d1-ab4f-14bd5de815da","savedPayload":{"position":{"x":13421.60994808922,"y":24983.353401471086},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"frame":{"position":{"x":-7465.5,"y":-4195}}}},"dashboards":[{"type":"Dashboard","name":"Super Action Generated","timeMachines":[{"type":"Time Machine","name":"Binance BTC/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2017-08-17T00:00:00.000Z\",\n \"toDate\": \"2020-06-12T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"9368d644-21cd-4be9-bb36-df83b66c67d1","savedPayload":{"position":{"x":10946.923861891786,"y":25793.448987624084},"targetPosition":{"x":11145.59418749938,"y":24985.438495388044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 2817,\n \"maxValue\": 19798.68,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"7242faad-e2a0-4dd2-8016-bd4448a3b61c","savedPayload":{"position":{"x":10759.039869211012,"y":25722.29710291016},"targetPosition":{"x":11145.59418749938,"y":24985.438495388044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"cddfbb92-c310-477a-9c66-b2a38ff8309f","savedPayload":{"position":{"x":10593.851066394142,"y":25608.319005926976},"targetPosition":{"x":11145.59418749938,"y":24985.438495388044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 5,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"09e91fb3-cdff-4c0c-b320-417aeb4f2538","savedPayload":{"position":{"x":45798.08358329995,"y":30783.47112133315},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"dd7c8795-bb24-4438-9d77-b37a9000ad7f"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2b8f6dec-a712-4716-88d8-a33c01398956","savedPayload":{"position":{"x":45898.37673360377,"y":30788.25119234455},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"6929ebe7-6486-4299-add5-ed0282500d91"}}},{"type":"Layer","name":"Resistances","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"57d807c2-eeac-46a5-bd07-6f630a578562","savedPayload":{"position":{"x":45996.05938571397,"y":30809.588522972816},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Resistances","id":"0669d924-aace-46d1-b126-ccced8fd33cf"}}},{"type":"Layer","name":"Supports","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9a035c82-60cb-4ab4-b4f8-e40b0dde7c2c","savedPayload":{"position":{"x":46088.671022938994,"y":30846.72421469604},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Supports","id":"5e7a0e50-e6ed-4106-8025-8b35ad6c597c"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"25363a67-bcaf-4392-9ed8-2b6c99fb31c8","savedPayload":{"position":{"x":46173.797322491286,"y":30898.58369972401},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"1d7dd537-5f6f-4eb2-8e56-ddba0aef720f"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"63dbae3f-cebc-4587-9b9c-60ffe83e4143","savedPayload":{"position":{"x":46249.17664768098,"y":30963.730987652525},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"221c8d22-8a7f-4014-a7ed-0bafc886b123"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2203bc66-a385-438b-8050-0b812b655d0a","savedPayload":{"position":{"x":46312.78393052083,"y":31040.384533238812},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"d83476c3-2f0b-4d4a-abb2-0e47ed0a421d"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ea4ce55e-855e-4a61-ad12-222a0077e51e","savedPayload":{"position":{"x":46362.900460538505,"y":31126.454059169817},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"5ffc6a67-e33b-422b-8e36-f9711f93c723"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e9272caf-38f8-44de-a698-13f8b19b50c3","savedPayload":{"position":{"x":46398.167326095994,"y":31219.59432824167},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"0428f20b-9620-480e-a531-dbb2e5f59ef4"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a9fcfaea-cd50-464e-aa65-1f2a3e98633d","savedPayload":{"position":{"x":46417.62588351845,"y":31317.267577006704},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"48f7953c-f62d-4292-b042-d1ac05f8f80f"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\"\n}","id":"8c1e005a-c340-4850-9de2-900a4cfc44bb","savedPayload":{"position":{"x":46420.70567572493,"y":31416.809466474464},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"3b9a3c93-6d41-440e-89a2-2fd1b2dde603"}}},{"type":"Layer","name":"Base5 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"6223f2d7-bdb4-474a-9e60-b54dc00680ea","savedPayload":{"position":{"x":46407.31337137963,"y":31515.483822428057},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"2404b1eb-c7c9-46e7-b22a-93cfcc3739f4"}}},{"type":"Layer","name":"Base6 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"a71c4fa6-d034-499c-9b30-7a46378cadc0","savedPayload":{"position":{"x":46377.87367543775,"y":31610.607629023725},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"1510fd36-633e-40a7-adbe-680660d64bd0"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"53c4ff8b-f3c5-4329-8fe4-6209c0ffb9f1","savedPayload":{"position":{"x":46333.185880681754,"y":31699.591341637817},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"70401ea0-3fed-4e40-8bba-a1e5adce9b8c"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"09cbb1f5-edad-4f9f-ab1c-7f9b0a0d8f7c","savedPayload":{"position":{"x":46274.467312818415,"y":31780.011584392756},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"06ac8eb7-8b14-42b1-9e2e-466280ade032"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"88466a0a-b385-417f-9efa-8c0139e05a5e","savedPayload":{"position":{"x":46203.31676678368,"y":31849.67669835976},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"014bba70-64d4-4035-b06d-145ee9b4c54c"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"6564d574-c6fd-4ee0-96ab-0e7c62e1cd7c","savedPayload":{"position":{"x":46121.67361107911,"y":31906.68977984249},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"768cc06c-6fdf-491a-a741-5e08f0e25e38"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"941fef87-83dd-457f-818c-71745fa1692a","savedPayload":{"position":{"x":46028.33674024209,"y":31950.48529383432},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"40794460-b815-498f-a245-e677de0eed86"}}}],"id":"1c96281c-523a-4597-b9b2-2db3d880ff49","savedPayload":{"position":{"x":45819.36840869368,"y":31385.419815840156},"targetPosition":{"x":45228.931388073186,"y":31502.74417203152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":400,"radius":0}}},"id":"ff535c6b-411f-4790-ab2b-c755c74de1b9","savedPayload":{"position":{"x":10460.77660275286,"y":25458.136395021345},"targetPosition":{"x":11145.59418749938,"y":24985.438495388044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 42351.89975036308,\n \"maxValue\": 51255.921014138075,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"9ee722c6-095f-4f4a-b8b2-9cb9bca115aa","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c4041768-1a6e-4f5b-8d7b-b681a175f27a","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"98e6c917-f4b7-4b71-9215-de3ccaf3dc0c"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"e9404a3f-2768-4b17-ac7a-8b11e1a1957c","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"858fd2be-abef-4173-abef-dedf17f00d47","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"8411d061-e010-4d33-b35c-e71d743fd403","savedPayload":{"position":{"x":10367.522901471777,"y":25280.4771258903},"targetPosition":{"x":11145.59418749938,"y":24985.438495388044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 15.455260570304773,\n \"maxValue\": 19.455260570304773,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"60aaeaeb-2247-4536-a1a2-cf7d731b6fc5","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c230772e-ca08-45df-bad6-4b72be44d9a5","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"4a3ed8eb-a73e-4fb4-835a-681cf47d7373"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f9435119-1d3f-4106-9c78-531f6ef4714f","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"728d6f08-086f-41ba-9126-30ec56a45ea5"}}}],"id":"acbd2ecb-2f75-44b8-8659-26482cb6fb0b","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"a7f9fef6-c3f9-4e17-b894-9a5e154ccbbe","savedPayload":{"position":{"x":10319.501234034708,"y":25085.668754056125},"targetPosition":{"x":11145.59418749938,"y":24985.438495388044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 15.455260570304773,\n \"maxValue\": 19.455260570304773,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"1415a288-9d79-45c9-a55c-9991e8b6953b","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"33e885d3-27f0-4ff7-8715-bc2f945e698e","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"7ccbd0c1-c804-47e3-9314-14cbb756c806"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f3cd6f15-98f5-4165-b6c3-04b8796fb43d","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"08f223a8-9707-4c45-b638-1fe0e4a2b053"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"66440f58-8741-4b22-8146-00f772837545","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"66f1a9be-fe96-48c3-91e4-500c6e246423"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"3ba14173-bac8-4013-9a5c-b8aecd05e0ae","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"e432c706-cbcd-4af0-b23c-b18e5b29377a"}}}],"id":"ab7c3367-a36e-4a78-b43b-bfeea5fc5201","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"156b9564-14a5-4148-8ca6-1e7b98d4189d","savedPayload":{"position":{"x":10319.495789693327,"y":24885.223944965113},"targetPosition":{"x":11145.59418749938,"y":24985.438495388044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"New Timeline Chart","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Basic Candles","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"a1e1be1e-abd3-4f1a-8276-5e85faf96711","savedPayload":{"position":{"x":9619.558264278454,"y":24766.74410426457},"targetPosition":{"x":9967.84087214802,"y":24538.842777211656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Basic Candles","id":"4e14ecf7-3eaa-48ce-91fb-c6e1c806fdf8"}}},{"type":"Layer","name":"One-Candle Patterns","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"2f5c0f35-f7cf-47b0-b581-e316ec89ad4b","savedPayload":{"position":{"x":9551.970262622304,"y":24518.734805217813},"targetPosition":{"x":9967.84087214802,"y":24538.842777211656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"One-Candle Patterns","id":"e11730aa-5ffb-42bd-8bfb-56e7fa36cd68"}}},{"type":"Layer","name":"Two-Candles Patterns","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"cb8fc837-b9de-4170-97dd-475fced9586a","savedPayload":{"position":{"x":9643.18441786344,"y":24278.227435341218},"targetPosition":{"x":9967.84087214802,"y":24538.842777211656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Two-Candles Patterns","id":"3d5a0163-c683-43d8-b344-ec1113c4726c"}}},{"type":"Layer","name":"Three-Candles Patterns","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"0a2dcfc3-61d9-4a35-a1bf-749e1cb8d0fa","savedPayload":{"position":{"x":9858.371788945384,"y":24137.259854558724},"targetPosition":{"x":9967.84087214802,"y":24538.842777211656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Three-Candles Patterns","id":"86ebf7ee-0102-4dc1-a597-0f0df3e07df8"}}}],"id":"55075e98-d2e8-46dd-a004-8087bf764d2f","savedPayload":{"position":{"x":9967.84087214802,"y":24538.842777211656},"targetPosition":{"x":10367.789556959418,"y":24690.467627068847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":600,"y":80},"width":150,"height":40,"radius":0}}},"id":"45aca655-16bb-4cf5-9eea-07d6c140845c","savedPayload":{"position":{"x":10367.521300165456,"y":24690.422017779598},"targetPosition":{"x":11145.59418749938,"y":24985.438495388044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"eb70203f-383c-4227-8b82-64458c8ceb62","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"3a82f6d9-2063-4fd7-aa79-dedc4222c58c","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"af19e56c-eaf1-4b0b-93f9-74b9ac1843c2"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"605b9ea8-5ed1-4750-8921-88bc481ffbc4","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"30ac52a8-ee50-439c-83c8-df75ab49374a"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"3e97cb0b-80dd-4d12-8205-852c759a3f55","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"6a059555-2555-4c7f-a722-2ab4ca0440c5"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"76a918d5-1242-4b97-a252-550200546f5c","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"c35fa0be-6e51-4d14-9a52-6b0174cc1aab"}}}],"id":"8658198e-ea8a-45ef-b05f-b2810aa3e015","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1770,"y":80},"width":150,"height":40,"radius":0}}},"id":"6616907b-5ec0-4c2d-b47b-885343226b81","savedPayload":{"position":{"x":10460.770402341761,"y":24512.755142740196},"targetPosition":{"x":11145.59418749938,"y":24985.438495388044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"b10a1160-3d9b-44a5-97e9-dbfdc9f103b6","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"b4fb2c12-42e4-496d-aea2-ccf8c90c2e6a","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"5919a710-a950-4049-9605-3f127b7fac6b"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"fc3d15bc-ac9c-4150-9a26-4c8baef90266","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"c7030a88-152f-421c-8b32-66f3c222286a"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"c749facc-4350-43c1-b881-72c781475f56","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"25db80e6-c4cf-4568-98d3-0cba83625ece"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"30fa6c26-bdbb-4a70-a917-f42d99583938","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"f4b18249-5044-4b34-83f7-3cedbbe939c5"}}}],"id":"c689ea14-8d8b-4482-9cf3-c652904ebd27","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1620,"y":80},"width":150,"height":40,"radius":0}}},"id":"fabbc9b6-b752-4ba6-80a4-835eaa856948","savedPayload":{"position":{"x":10593.867942005458,"y":24362.550147873604},"targetPosition":{"x":11145.59418749938,"y":24985.438495388044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"d7c6c5e8-82d8-4f2a-a07e-66c3498d1fe5","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"b978b005-7bc2-4246-b4d9-5fcfc463eacf","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"63636068-307e-4cea-b31f-f47e106cea2c"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"1ca55ee3-231b-41ad-9acd-24f043e8aa01","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"20848048-8efb-47b1-aaf0-789d2f6c5b1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"52850e27-6287-4005-ba6e-66f5b193e3ad","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"5e28998c-b35f-4cc0-9fd6-8ee5f5714545"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"46bd81b8-5b9f-4c5f-89bb-149e19bd0267","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"87b74841-4f6a-4658-b01b-7feb254b5d2f"}}}],"id":"0cf47550-1612-4cd7-8fdd-a68014bd52cc","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1470,"y":80},"width":150,"height":40,"radius":0}}},"id":"c285480b-3a39-4dd0-be1d-6470a97d22a7","savedPayload":{"position":{"x":10759.041300556155,"y":24248.589653721287},"targetPosition":{"x":11145.59418749938,"y":24985.438495388044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"4978dec9-1374-421a-865e-9e0d30682f65","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"93d62cc0-6914-411e-bf9f-008271cd2965","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"573fb46f-78d2-4bf3-ad11-e42d2531d53e"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"cbb41381-e76d-44f5-8dd3-f9a8c0c0379f","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"39d7a06d-5aad-4b03-8778-e4df8dacc825"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"88471305-9c12-4caf-856b-675fb2db2db3","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"82b46974-7a93-4066-a3b7-378b42710364"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"8cb92f6b-8ede-44ef-928a-36f4ec022af8","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"7af9d35c-7464-4ed5-9ee6-ccf7a9943894"}}}],"id":"3ec4f352-fb06-4ade-8393-7a5a83765773","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1320,"y":80},"width":150,"height":40,"radius":0}}},"id":"ac6929d9-238c-4689-b2ee-3cc001be578b","savedPayload":{"position":{"x":10946.925109469086,"y":24177.437733514413},"targetPosition":{"x":11145.59418749938,"y":24985.438495388044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a9786387-316d-4b02-a53a-60187e2e17ed","savedPayload":{"position":{"x":11145.59418749938,"y":24985.438495388044},"targetPosition":{"x":11977.548614254114,"y":24985.413885429127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":933.1875,"y":529.375},"width":240,"height":113.625,"radius":0}}}],"id":"64fa2a31-21ea-4b56-a625-dc4082876a89","savedPayload":{"position":{"x":11977.548614254114,"y":24985.413885429127},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":0,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"t"}}}],"id":"c53a4385-3fb3-49d5-b506-99bcaef2c141","savedPayload":{"position":{"x":12809.806237131383,"y":24985.35640053908},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":0,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"c"}}},{"type":"Data Mine","name":"Buddha","code":"{ \n\"codeName\": \"Buddha\"\n}","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"Candle Patterns","code":"{\n\"codeName\": \"Candle-Patterns\",\n\"repo\": \"Candle-Patterns-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates Candles Patterns for Time Frames of 01-hs and above.\",\n \"startMode\": {\n \"allMonths\": {\n \"run\": \"false\",\n \"minYear\": \"\",\n \"maxYear\": \"\"\n },\n \"oneMonth\": {\n \"run\": \"false\",\n \"year\": \"\",\n \"month\": \"\"\n },\n \"noTime\": {\n \"run\": \"true\"\n },\n \"fixedInterval\": {\n \"run\": \"false\",\n \"interval\": 0\n }\n },\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\",\n \"startDate\": {\n },\n \"endDate\": {\n }\n }\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Basic Candles","id":"3e933426-1c7b-45e1-845f-08a7d2684620","savedPayload":{"position":{"x":13013.679527195516,"y":11574.647742916512},"targetPosition":{"x":13213.4740995075,"y":11664.527233498671},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"07be5b9b-e8fd-49fc-ab77-20f89fdea10f"}}},{"type":"Output Dataset","name":"Multi-Period-Market One-Candle Patterns","id":"201dc796-db42-49ce-8b9c-1b26c0f3a0ce","savedPayload":{"position":{"x":13053.773008970187,"y":11505.43035401585},"targetPosition":{"x":13213.4740995075,"y":11664.527233498671},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"144d8665-1ff0-4db3-9340-a33fd7d0d098"}}},{"type":"Output Dataset","name":"Multi-Period-Market Two-Candles Patterns","id":"c20616cc-d93f-40fc-904a-025fc2799a75","savedPayload":{"position":{"x":13114.615218060771,"y":11461.962677650328},"targetPosition":{"x":13213.4740995075,"y":11664.527233498671},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"8c35ce52-9dee-4d20-92e6-50ba7fd2882b"}}},{"type":"Output Dataset","name":"Multi-Period-Market Three-Candles Patterns","id":"c8074ffc-f5ff-4cb5-8e83-0adcecc82a0c","savedPayload":{"position":{"x":13211.46873119432,"y":11466.168099347926},"targetPosition":{"x":13213.4740995075,"y":11664.527233498671},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"087fc67e-78f9-4204-ba5e-8b670566a716"}}}],"id":"0dc09316-0987-4d22-b600-bd3868942026","savedPayload":{"position":{"x":13213.4740995075,"y":11664.527233498671},"targetPosition":{"x":13427.670947273291,"y":11978.477228568285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Candle Patterns Multi-Period-Market","code":"{\"mainUtility\": \"Self Reference\"}","id":"2d079388-93e4-4005-b392-c4a997904ccb","savedPayload":{"position":{"x":13236.229833924866,"y":11365.540590705074},"targetPosition":{"x":13393.866758309712,"y":11525.809343112047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"401fbf30-8faa-40e9-9707-fac2d35f6195"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","code":"{ \n\"mainUtility\": \"Market Starting Point\"\n}","id":"418e1725-b690-4a55-b5f7-a4a92465c162","savedPayload":{"position":{"x":13378.090018146784,"y":11311.418729308469},"targetPosition":{"x":13393.866758309712,"y":11525.809343112047},"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","id":"85c548fd-9ef7-4936-a86d-2a206cf90039","savedPayload":{"position":{"x":13534.119041551294,"y":11363.003070936125},"targetPosition":{"x":13393.866758309712,"y":11525.809343112047},"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"}}}],"id":"de8bf1ab-cf7b-41ab-b8cb-ae38b1e587ce","savedPayload":{"position":{"x":13393.866758309712,"y":11525.809343112047},"targetPosition":{"x":13427.670947273291,"y":11978.477228568285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"401fbf30-8faa-40e9-9707-fac2d35f6195","savedPayload":{"position":{"x":13603.179986581014,"y":11613.905042446066},"targetPosition":{"x":13427.670947273291,"y":11978.477228568285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","id":"e100074c-7981-49e1-9d06-813104ee4c41","savedPayload":{"position":{"x":13762.503794823628,"y":11749.438334039018},"targetPosition":{"x":13427.670947273291,"y":11978.477228568285},"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","id":"2a8f2e62-256b-4281-a470-3f640af21337","savedPayload":{"position":{"x":13838.07181053804,"y":11948.152768924294},"targetPosition":{"x":13427.670947273291,"y":11978.477228568285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3aaf9f93-0516-4b3d-9772-44be91615154","savedPayload":{"position":{"x":13950.490192396774,"y":11647.45024224731},"targetPosition":{"x":13606.59207657629,"y":12362.027718520723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Calculates Candles Patterns for Time Frames of 45-min and below.\",\n \"startMode\": {\n \"allMonths\": {\n \"run\": \"false\",\n \"minYear\": \"\",\n \"maxYear\": \"\"\n },\n \"oneMonth\": {\n \"run\": \"false\",\n \"year\": \"\",\n \"month\": \"\"\n },\n \"noTime\": {\n \"run\": \"true\"\n },\n \"fixedInterval\": {\n \"run\": \"false\",\n \"interval\": 0\n }\n },\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\",\n \"startDate\": {\n \"takeItFromStatusDependency\": 0\n },\n \"endDate\": {\n \"takeItFromStatusDependency\": 1\n }\n }\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Basic Candles","id":"3fc6cd67-c356-41fc-89d9-5c1cdcdd7360","savedPayload":{"position":{"x":13814.82981676934,"y":11210.620425655228},"targetPosition":{"x":14023.609954390777,"y":11501.474680336007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9e6d7f95-b2fe-466e-9a5d-175479cbf85d"}}},{"type":"Output Dataset","name":"Multi-Period-Daily One-Candle Patterns","id":"7b078979-c28c-4ba5-8305-d469c8d4ec84","savedPayload":{"position":{"x":13915.392401579804,"y":11160.138295803597},"targetPosition":{"x":14023.609954390777,"y":11501.474680336007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f0a11771-dd69-4b9a-9347-7cb2d1f231ff"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Two-Candles Patterns","id":"5ab95923-5553-40a7-836e-14b96f8a4764","savedPayload":{"position":{"x":14026.050837456278,"y":11143.489245220206},"targetPosition":{"x":14023.609954390777,"y":11501.474680336007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4f1260c8-6d74-454e-963a-fa3ff910329c"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Three-Candles Patterns","id":"cb6acbaf-bf43-4bf6-b8ca-7689130cc9cf","savedPayload":{"position":{"x":14137.001698365588,"y":11162.191028915156},"targetPosition":{"x":14023.609954390777,"y":11501.474680336007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b60cb94f-79c5-410c-b166-abc97d0f2bc3"}}}],"id":"bcfa61bd-e1d0-4a60-9fd5-ab7dabe4fd39","savedPayload":{"position":{"x":14023.609954390777,"y":11501.474680336007},"targetPosition":{"x":14086.948199287108,"y":11924.601188793304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Candles Patterns Multi-Period-Daily","code":"{\"mainUtility\": \"Self Reference\"}","id":"a7ea36fb-cc2e-4d55-b021-e67d8c5a7020","savedPayload":{"position":{"x":14155.912206707464,"y":10958.342657178391},"targetPosition":{"x":14348.13586069017,"y":11259.956647901501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"3a20d7e9-d551-4346-81c7-e3b0098bef99"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","code":"{\"mainUtility\": \"Market Starting Point\"}","id":"48b53dc5-015c-43f1-9485-047aaaffe0f7","savedPayload":{"position":{"x":14369.563493443755,"y":10902.913742173105},"targetPosition":{"x":14348.13586069017,"y":11259.956647901501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"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","code":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","id":"49d2c9ad-bdde-427a-8590-801aa4422cca","savedPayload":{"position":{"x":14575.278621413228,"y":10983.731390945131},"targetPosition":{"x":14348.13586069017,"y":11259.956647901501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","id":"19bf518a-1e20-4e3a-8f40-8e07324f634b","savedPayload":{"position":{"x":14694.258957517683,"y":11170.063669211186},"targetPosition":{"x":14348.13586069017,"y":11259.956647901501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"id":"2a7a3bf2-9044-4040-95a7-28c1a339a37f","savedPayload":{"position":{"x":14348.13586069017,"y":11259.956647901501},"targetPosition":{"x":14086.948199287108,"y":11924.601188793304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"3a20d7e9-d551-4346-81c7-e3b0098bef99","savedPayload":{"position":{"x":14645.560909474185,"y":11479.627921322592},"targetPosition":{"x":14086.948199287108,"y":11924.601188793304},"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","id":"4d03c099-0d5e-4668-a347-c0de2f42f8bd","savedPayload":{"position":{"x":14515.901435945685,"y":11860.04841298157},"targetPosition":{"x":14086.948199287108,"y":11924.601188793304},"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","id":"3ef2f54d-64c9-4264-a298-0c5a908458ab","savedPayload":{"position":{"x":14487.323542021102,"y":12081.165342539933},"targetPosition":{"x":14086.948199287108,"y":11924.601188793304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8a7ce3e2-20a1-496b-86bf-2d7842f88536","savedPayload":{"position":{"x":14226.675457122019,"y":11867.678888774926},"targetPosition":{"x":13606.59207657629,"y":12362.027718520723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Basic Candles","code":"{\n \"codeName\": \"Basic-Candles\",\n \"singularVariableName\": \"basicCandle\",\n \"pluralVariableName\": \"basicCandles\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"07be5b9b-e8fd-49fc-ab77-20f89fdea10f","savedPayload":{"position":{"x":14428.195169444913,"y":11854.812092996133},"targetPosition":{"x":14282.02559347152,"y":12197.197566354245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"9e6d7f95-b2fe-466e-9a5d-175479cbf85d","savedPayload":{"position":{"x":14601.514604868862,"y":12006.69816479026},"targetPosition":{"x":14282.02559347152,"y":12197.197566354245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"Basic Candles Variables","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","code":"record.current.begin","id":"7d35e864-2f37-4d1c-912d-225952131ffd","savedPayload":{"position":{"x":15127.939028481416,"y":11816.525419765045},"targetPosition":{"x":15387.688231694168,"y":11918.989845926302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"52215804-fb71-43ed-a232-3b29d843cb58","savedPayload":{"position":{"x":15387.688231694168,"y":11918.989845926302},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"bdeaed7f-2923-4fde-a7ea-257f00bb7ee9","savedPayload":{"position":{"x":15246.07240005028,"y":11608.820466242958},"targetPosition":{"x":15466.520322835773,"y":11780.561876712998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b8f2240b-03a9-4fd5-8e37-d43237554239","savedPayload":{"position":{"x":15466.520322835773,"y":11780.561876712998},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"name","code":"{\n \"codeName\": \"name\",\n \"isString\": true\n}","formula":{"type":"Formula","code":"variable.name","id":"5ac4a021-ae1b-45d7-80ea-09587174c038","savedPayload":{"position":{"x":15417.707055580626,"y":11443.434740736122},"targetPosition":{"x":15580.974897394168,"y":11670.19758162406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8220f919-2232-47b2-8bcb-1d30a905c026","savedPayload":{"position":{"x":15580.974897394168,"y":11670.19758162406},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"size","code":"{ \n\"codeName\": \"size\",\n\"isString\": true\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.size","id":"8162dea0-df67-42b5-8223-7533f950af7a","savedPayload":{"position":{"x":15629.303554034559,"y":11332.716355251554},"targetPosition":{"x":15721.874082289012,"y":11596.528740357437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2bff73a1-c5c2-4413-91ed-9d2aaf642d83","savedPayload":{"position":{"x":15721.874082289012,"y":11596.528740357437},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"direction","code":"{ \n\"codeName\": \"direction\",\n\"isString\": true\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.direction","id":"770f6a35-9069-49ba-9c12-99dc6e5ff54a","savedPayload":{"position":{"x":15863.297678003159,"y":11286.411919238653},"targetPosition":{"x":15877.835942969192,"y":11565.740790632775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"871bc42d-f3f7-4896-b575-ca23f325e50f","savedPayload":{"position":{"x":15877.835942969192,"y":11565.740790632775},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"upperShadowPercent","code":"{ \n\"codeName\": \"upperShadowPercent\",\n\"isString\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.upperShadowPercent","id":"1645f231-45ab-48b5-9891-45f27e2b4d7e","savedPayload":{"position":{"x":16100.383887967386,"y":11307.775647761064},"targetPosition":{"x":16035.898908294184,"y":11579.830281086974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"dec83c16-8f66-4403-9dda-e536223e7577","savedPayload":{"position":{"x":16035.898908294184,"y":11579.830281086974},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bodyPercent","code":"{ \n\"codeName\": \"bodyPercent\",\n\"isString\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.bodyPercent","id":"36408e7c-d9cc-4d63-9115-feffa763b85f","savedPayload":{"position":{"x":16322.022917705659,"y":11395.267266757755},"targetPosition":{"x":16183.698010961622,"y":11638.159796285936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cba04177-1edd-444f-94a3-79784d84d70e","savedPayload":{"position":{"x":16183.698010961622,"y":11638.159796285936},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"lowerShadowPercent","code":"{ \n\"codeName\": \"lowerShadowPercent\",\n\"isString\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.lowerShadowPercent","id":"71464adc-3bd3-47b8-b018-cbacf897c119","savedPayload":{"position":{"x":16510.595118433743,"y":11541.805900307281},"targetPosition":{"x":16309.28417074969,"y":11735.742370968435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c2c5753a-2e74-4429-9b6a-aa016a753be2","savedPayload":{"position":{"x":16309.28417074969,"y":11735.742370968435},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"body","code":"{ \n\"codeName\": \"body\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.body","id":"1bc97398-5645-4452-9169-f62efc0a7fe1","savedPayload":{"position":{"x":16649.862514301047,"y":11735.225677070326},"targetPosition":{"x":16402.11751924421,"y":11864.671996317895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f0019951-d651-4fcf-888e-0a0cf1564c98","savedPayload":{"position":{"x":16402.11751924421,"y":11864.671996317895},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"upperShadow","code":"{ \n\"codeName\": \"upperShadow\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.upperShadow","id":"cf426ed9-53d3-411e-acf1-1694c5d45b89","savedPayload":{"position":{"x":16729.0764873906,"y":11960.582147915231},"targetPosition":{"x":16454.858369364494,"y":12014.768933801128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2d3b26eb-15bc-4272-b296-9658ac24baa9","savedPayload":{"position":{"x":16454.858369364494,"y":12014.768933801128},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"lowerShadow","code":"{ \n\"codeName\": \"lowerShadow\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.lowerShadow","id":"a0909b34-9ad9-4290-aa93-5b1731b74a66","savedPayload":{"position":{"x":16742.01206754522,"y":12198.188052716076},"targetPosition":{"x":16463.403229052834,"y":12173.186128916357},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2369782b-6afb-41e1-a93f-721c7442e5c3","savedPayload":{"position":{"x":16463.403229052834,"y":12173.186128916357},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"length","code":"{ \n\"codeName\": \"length\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.length","id":"3639b9ee-c558-4699-9b48-2ddfdc59fa33","savedPayload":{"position":{"x":16686.968822601964,"y":12430.21258429505},"targetPosition":{"x":16426.82231102211,"y":12327.932168126248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a6773db1-97fb-418d-b7cf-d4298054f376","savedPayload":{"position":{"x":16426.82231102211,"y":12327.932168126248},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"meanBody","code":"{ \n\"codeName\": \"meanBody\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.meanBody","id":"a45ab78a-fa03-469b-ab64-78fd184d9dd5","savedPayload":{"position":{"x":16568.563673527475,"y":12637.657602791887},"targetPosition":{"x":16347.943146200396,"y":12465.989970586961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c32b5645-7bbe-4f06-aaef-d9efc3a5c9da","savedPayload":{"position":{"x":16347.943146200396,"y":12465.989970586961},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"avgRef","code":"{ \n\"codeName\": \"avgRef\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.avgRef","id":"26313abc-cd03-4fb9-b54d-2a0d67a3c0da","savedPayload":{"position":{"x":16396.95716008808,"y":12803.215606722491},"targetPosition":{"x":16233.558031826937,"y":12576.405072409163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0bdc3b36-d092-421f-8741-a0ecfa8fcc41","savedPayload":{"position":{"x":16233.558031826937,"y":12576.405072409163},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Nbodies","code":"{ \n\"codeName\": \"Nbodies\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.Nbodies","id":"f5b650b4-497d-4eef-84f8-c53b5703dbed","savedPayload":{"position":{"x":16185.456446329934,"y":12913.579981425799},"targetPosition":{"x":16092.631933821867,"y":12649.946689224127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cf0a624b-44cb-4926-8e26-867ea485e3fe","savedPayload":{"position":{"x":16092.631933821867,"y":12649.946689224127},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"dojiFactor","code":"{ \n\"codeName\": \"dojiFactor\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.dojiFactor","id":"8e3696bf-dace-4ecb-a9e7-db654ba86ed8","savedPayload":{"position":{"x":15951.338423271372,"y":12960.07191237919},"targetPosition":{"x":15936.664027922136,"y":12680.941417585764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cda80e33-8ed9-4579-8c45-99da25652634","savedPayload":{"position":{"x":15936.664027922136,"y":12680.941417585764},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"sizeFactor","code":"{ \n\"codeName\": \"sizeFactor\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.sizeFactor","id":"08e5507c-e88f-410e-ac54-886d8ce157d2","savedPayload":{"position":{"x":15714.911759608227,"y":12938.753275437566},"targetPosition":{"x":15778.880197046594,"y":12666.480185362861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"20fadb1a-1f55-4b10-ba45-cda61d8d0157","savedPayload":{"position":{"x":15778.880197046594,"y":12666.480185362861},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Nlengths","code":"{ \n\"codeName\": \"Nlengths\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.Nlengths","id":"addc3851-bbe2-47ac-8652-5b745e12918a","savedPayload":{"position":{"x":15481.703225238807,"y":12854.291052921695},"targetPosition":{"x":15630.890909021455,"y":12608.227366997262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0a736450-a2e1-41a0-8c29-cd2434296872","savedPayload":{"position":{"x":15630.890909021455,"y":12608.227366997262},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"sizeMethod","code":"{ \n\"codeName\": \"sizeMethod\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.sizeMethod","id":"e2109d1f-c4aa-46d6-a6b7-75d1ffd9c0ee","savedPayload":{"position":{"x":15304.563842686297,"y":12704.592493090222},"targetPosition":{"x":15505.452513022656,"y":12510.667579840174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"23853614-5c16-4e3e-b1ae-d3fda37d5884","savedPayload":{"position":{"x":15505.452513022656,"y":12510.667579840174},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"meanLength","code":"{ \n\"codeName\": \"meanLength\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.meanLength","id":"4731c75f-5e23-4972-ba37-10bd4363ee0d","savedPayload":{"position":{"x":15165.029513378944,"y":12510.925606284693},"targetPosition":{"x":15412.45005195976,"y":12381.611095625749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fc7702c5-1b49-4ed6-b2b3-fde741557115","savedPayload":{"position":{"x":15412.45005195976,"y":12381.611095625749},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"min","code":"{ \n\"codeName\": \"min\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.candleMin","id":"016b76f2-2f06-408e-986f-e29cd5edc107","savedPayload":{"position":{"x":15085.888117137885,"y":12285.431442875508},"targetPosition":{"x":15359.625290852648,"y":12231.37526005558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"31730ec0-eedf-404d-9a38-bd065bdc2064","savedPayload":{"position":{"x":15359.625290852648,"y":12231.37526005558},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4d364dfd-44f1-4d8e-87fd-5aa54564e167","savedPayload":{"position":{"x":15907.153147447421,"y":12123.258200863127},"targetPosition":{"x":14282.02559347152,"y":12197.197566354245},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","code":"/* ¡¡¡ VERY IMPORTANT !!!\n\"PLEASE READ BEFORE STARTING ALL DOCUMENTATION RELATED TO THIS INDICATOR ON THE SUPERALGOS WEBSITE\" */\n\n/* INTRODUCTION:\nThere are a lot of combinations in order to construct a candle. That's why we are going to define 4 families of candles based on their appearence.\n1) “CLASSIC CANDLES”: These candles have two shadows shorter than the body.\n2) “MARUBOZU CANDLES”: These candles have no at least one shadow. The shadow, if present, cannot be longer than the body. \n3) “SPINNING TOP CANDLES”: These candles have differents opening and closing prices and have at least one shadow. At the same time at least one shadow has to be longer than the body.\n4) “DOJI CANDLES”: These candles have no body. The open price is equal to the close price. */\n\n// ---------------------------------------------------------------------------------------------------------------------\n// From here the variables to be used will be defined\n// ---------------------------------------------------------------------------------------------------------------------\n\n/* The following variables could be modified by the user to adapt the indicator with his preferences\n(Please, read the documentation before) */\n\nlet sizeMethod = \"SMA\" // Choose \"SMA\" or \"EMA\" to calculate the average length of the last \"Nlengths\" candles\nlet Nlengths = 20 // Default value: 20 - \"Nlengths\" is the number of candles to calculate the average length value\nlet sizeFactor = 75 // Default value: 75% - \"sizeFactor\" is to define \"Long\" or \"Short\" size\nlet Nbodies = 10 // Default value: 10 - \"Nbodies\" is the number of bodies to calculate the average bodie value\nlet dojiFactor = 3 // Default value: 3% - \"dojiFactor\" is to define when a candle is \"doji\" or not\n\n /* In order to avoid errors, the initial condition of the name of the candle is defined */\nvariable.name = \"Unknown\" // To be used on the Plotter Panel and Conditions\n\n/* Candles as dependencies are defined */\nlet candle = record.current \n\n/* The height of the body */\nlet body = Math.abs (candle.close-candle.open)\n\n/* Array of N bodies is defined to verify if a candle has a Short Body or a Long Body */\nif (variable.lastNbodies.length > Nbodies) {\n variable.lastNbodies.shift() // Remove the first element of the array to keep it at a maximun of N elements\n}\nlet meanBody \nif (variable.lastNbodies.length < Nbodies) { // If \"lastNbodies\" array hasn't enough bodies, zero value is defined\n meanBody = 0 \n} else { \n let sum = 0 // Initialize sum variable \n for (let i = variable.lastNbodies.length-Nbodies; i < variable.lastNbodies.length; i++) { // Iterate through the last periods\n sum = sum + variable.lastNbodies[i]\n } \n meanBody = sum/Nbodies\n}\nvariable.lastNbodies.push(body) // Add the current body value to the \"lastNbodies\" array for next cycle\n\n /* Total length of the candle, equivalent to the sum of upper shadow, lower shadow and body */\nlet length = candle.max - candle.min \n\n/* Calculating average candles length \"EMA\" or \"SMA\" */\nif (sizeMethod === \"EMA\") {\n let k = 2 / (Nlengths + 1)\n variable.EMAlength = length * k + variable.previousEMAlength * (1-k)\n variable.previousEMAlength = variable.EMAlength\n variable.avgRef = variable.EMAlength * sizeFactor / 100\n variable.SMAlength = 0\n} \nif (sizeMethod === \"SMA\") {\n variable.EMAlength = 0\n if (variable.lastNlengths.length > Nlengths) {\n variable.lastNlengths.shift() // Remove the first element of the array to keep it at a maximun of N elements \n } \n if (variable.lastNlengths.length < Nlengths) { // If \"lastNlengths\" array hasn't enough candles length, zero value is defined\n variable.SMAlength = 0 \n variable.avgRef = 0 \n } else { \n let sum = 0 // Initialize sum variable \n for (let i = variable.lastNlengths.length-Nlengths; i < variable.lastNlengths.length; i++) { // Iterate through the last periods\n sum = sum + variable.lastNlengths[i]\n } \n variable.SMAlength = sum/Nlengths\n variable.avgRef = variable.SMAlength * sizeFactor / 100 // To be used in Shapes\n }\n variable.lastNlengths.push(length) // Add the current length value to the \"lastNlengths\" array for next cycle\n}\n\n/* Only one MA is calculated, the other is defined as 0. It is useful to integrate both variables into one for future operations */\nvariable.meanLength = variable.SMAlength + variable.EMAlength // To be used in Shapes and Conditions\n\n/* Defining if a candle is \"Long\" or \"Short\" */\nlet size\nif (length > variable.avgRef) {\n size = \"Long\"\n} else {\n size = \"Short\"\n} \n\n/* Green candles are \"Bullish\" and red candles are \"Bearish\" */\nlet direction \nif (candle.close > candle.open) {\n direction = \"Bullish\"\n} else {\n direction = \"Bearish\"\n}\n\n/* The value of the upper shadow */\nlet upperShadow \nif (direction === \"Bullish\") {\n upperShadow = candle.max-candle.close\n} else {\n upperShadow = candle.max-candle.open\n}\n\n/* The value of the lower shadow */\nlet lowerShadow \nif (direction === \"Bullish\") {\n lowerShadow = candle.open-candle.min\n} else {\n lowerShadow = candle.close-candle.min\n}\n\n/* Four possibilities of combinations of the shadows are defined: \"lower\", \"upper\", \"both\", \"none\" */\nlet shadow\nif (upperShadow > 0 && lowerShadow > 0) {\n shadow = \"Both\"\n}\nif (upperShadow === 0 && lowerShadow === 0) {\n shadow = \"None\"\n}\nif (upperShadow > 0 && lowerShadow === 0) {\n shadow = \"Upper\"\n}\nif (upperShadow === 0 && lowerShadow > 0) {\n shadow = \"Lower\"\n}\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here the name of the candles will be defined\n// ----------------------------------------------------------------------------------------------------------------------------\n\nif (body > length*dojiFactor/100) { // From here all kind of candles that are NOT \"doji\" are defined\n\n/* \"CLASSIC CANDLES\" family:\nThese candles have the following characteristics in common:\n1) Both shadows are present.\n2) Each shadow is shorter than the body. \n3) The opening price differs from the closing price. */\n\nif (shadow === \"Both\" && upperShadow <= body && lowerShadow <= body) {\n\n/* \"SHORT GREEN CANDLE\" and \"SHORT RED CANDLE\" properties:\n1) Bullish or Bearish.\n2) Relative Size: Short. */\n\nif (direction === \"Bullish\" && size === \"Short\") {\n variable.name = \"Short Green Candle\"\n}\nif (direction === \"Bearish\" && size === \"Short\") {\n variable.name = \"Short Red Candle\"\n}\n\n/* \"GREEN CANDLE\" and \"RED CANDLE\" properties: \n1) Bullish or Bearish.\n2) Relative Size: Long . */\n\nif (direction === \"Bullish\" && size === \"Long\") {\n variable.name = \"Green Candle\"\n}\nif (direction === \"Bearish\" && size === \"Long\") {\n variable.name = \"Red Candle\"\n}\n\n/* \"LONG GREEN CANDLE\" and \"LONG RED CANDLE\" properties:\n1) Bullish or Bearish respectively.\n2) The body is at least three times higher than the mean body.\n4) Relative Size: Long. */\n\nif (direction === \"Bullish\" && size === \"Long\" && body >= meanBody*3) {\n variable.name = \"Long Green Candle\"\n}\nif (direction === \"Bearish\" && size === \"Long\" && body >= meanBody*3) {\n variable.name = \"Long Red Candle\"\n}\n\n} // Closing \"Classic Candles\" Family \n\n/* \"MARUBOZU CANDLES\" family:\nThese candles have the following characteristics in common:\n1) Lack at least one shadow.\n2) If it has one shadow, it must be shorter than the body.\n3) The opening price differs from the closing price.\n4) Relative Size: Short or Long. */\n\n/* \"GREEN MARUBOZU\" and \"RED MARUBOZU\" properties: \n1) Bullish or Barish.\n2) No shadows. */\n\nif (direction === \"Bullish\" && shadow === \"None\") {\n variable.name = \"Green Marubozu\"\n}\nif (direction === \"Bearish\" && shadow === \"None\") {\n variable.name = \"Red Marubozu\"\n}\n\n/* \"OPENING GREEN MARUBOZU\" properties: \n1) Bullish.\n2) No lower shadow. */\n\nif (direction === \"Bullish\" && shadow === \"Upper\" && upperShadow <= body) {\n variable.name = \"Opening Green Marubozu\"\n}\n\n/* \"CLOSING GREEN MARUBOZU\" properties:\n1) Bullish.\n2) No upper shadow. */\n\nif (direction === \"Bullish\" && shadow === \"Lower\" && lowerShadow <= body) {\n variable.name = \"Closing Green Marubozu\"\n}\n\n/* \"CLOSING RED MARUBOZU\" properties:\n1) Bearish.\n2) No lower shadow. */\n\nif (direction === \"Bearish\" && shadow === \"Upper\" && upperShadow <= body) {\n variable.name = \"Closing Red Marubozu\"\n}\n\n/* \"OPENING RED MARUBOZU\" properties: \n1) Bearish.\n2) No upper shadow. */\n\nif (direction === \"Bearish\" && shadow === \"Lower\" && lowerShadow <= body) {\n variable.name = \"Opening Red Marubozu\"\n}\n\n/* \"SPINNING TOP CANDLES\" family:\nThese candles have the following characteristics in common:\n1) Have at least one shadow.\n2) At least one shadow is greater than the body.\n3) The opening price differs from the closing price. */\n\n/* \"GREEN SPINNING TOP\" and \"RED SPINNING TOP\" properties:\n1) Bullish or Bearish.\n4) Relative Size: Short or Long. \n5) If it's relative size is Long, none of the shadows can exceed three times the body. */\n\nif (shadow !== \"None\") { \n if (upperShadow > body || lowerShadow > body) { \n if (size === \"Long\") {\n if (upperShadow > 3*body || lowerShadow > 3*body) {\n } else {\n if (direction === \"Bullish\") {\n variable.name = \"Green Spinning Top\"\n } else {\n variable.name = \"Red Spinning Top\"\n }\n } \n } else {\n if (direction === \"Bullish\") {\n variable.name = \"Green Spinning Top\"\n } else {\n variable.name = \"Red Spinning Top\"\n }\n }\n } \n} \n\n/* \"HIGH WAVE\" properties:\n1) Bullish or Bearish.\n2) Relative Size: Long.\n3) The length of at least one shadow is at least 3 times larger than the body.*/\n\nif (shadow !== \"None\" && size === \"Long\") {\n if (upperShadow > 3*body || lowerShadow > 3*body) { \n variable.name = \"High Wave\"\n } \n}\n\n} else { // Closing the initial \"dojiFactor\" if condition, from here \"Doji Candles\" family are defined \n\n/* \"DOJI CANDLES\" family:\nThese candles have the following characteristics in common:\n1) Have no body, or very small body if it is allowed. */\n\n/* \"FOUR-PRICE DOJI\" properties:\n1) No shadows.\n2) Relative Size: Short.*/\n\nif (shadow === \"None\" && size === \"Short\") {\n variable.name = \"Four-Price Doji\"\n}\n\n/* \"STAR DOJI\" properties:\n1) Body is located nearly mid-range (between 60% and 40% of total length).\n2) Relative Size: Short. */\n\nif (size === \"Short\" && upperShadow <= length * 0.6 && upperShadow >= length * (0.4 - dojiFactor/100)) {\n variable.name = \"Star Doji\"\n}\n\n/* \"LONG-LEGGED DOJI\" properties:\n1) Body is located nearly mid-range (between 60% and 40% of total length).\n2) Relative Size: Long. */\n\nif (size === \"Long\" && upperShadow <= length * 0.6 && upperShadow >= length * (0.4 - dojiFactor/100)) {\n variable.name = \"Long-Legged Doji\"\n}\n\n/* \"DRAGONFLY DOJI\" properties:\n1) Upper shadow shorter than 1% of total candle length.\n2) Relative Size: Long. */\n\nif (size === \"Long\" && upperShadow <= length * 0.01) {\n variable.name = \"Dragonfly Doji\"\n}\n\n/* \"GRAVESTONE DOJI\" properties:\n1) Lower shadow shorter than 1% of total candle length.\n2) Relative Size: Long.*/\n\nif (size === \"Long\" && lowerShadow <= length * 0.01) {\n variable.name = \"Gravestone Doji\"\n}\n\n/* \"GENERIC DOJI\" properties:\n1) None of the above five Doji. */\n\nif (variable.name === \"Unknown\") {\n variable.name = \"Generic Doji\"\n}\n\n} // Closing the \"dojiFactor\" else\n\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here all the variables that will be written in the records are defined \n// ----------------------------------------------------------------------------------------------------------------------------\n\nvariable.size = size // To be used on the Plotter Panel and Conditions\nvariable.direction = direction // To be used on the Plotter Panel and Conditions\nif (length > 0) { // Condition to avoid dividing by 0\n variable.upperShadowPercent = upperShadow/length*100 // To be used on the Plotter Panel\n variable.bodyPercent = body/length*100 // To be used on the Plotter Panel\n variable.lowerShadowPercent = lowerShadow/length*100 // To be used on the Plotter Panel\n} else {\n variable.lowerShadowPercent = 0\n variable.bodyPercent = 0\n variable.upperShadowPercent = 0\n}\nvariable.Nbodies = Nbodies // To be used on the Plotter Panel\nvariable.sizeFactor = sizeFactor // To be used on the Plotter Panel\nvariable.dojiFactor = dojiFactor // To be used on the Plotter Panel\nvariable.Nlengths = Nlengths // To be used on the Plotter Panel\nvariable.sizeMethod = sizeMethod // To be used on the Plotter Panel\nvariable.candleMin = candle.min // To be used in Shapes\nvariable.length = length // To be used in Conditions\nvariable.upperShadow = upperShadow // To be used in Conditions\nvariable.lowerShadow = lowerShadow // To be used in Conditions\nvariable.body = body // To be used in Conditions\nvariable.meanBody = meanBody // To be used in Conditions\n","id":"119670a5-5f25-4a75-aaad-6939a18aebf0","savedPayload":{"position":{"x":15578.211960985802,"y":12826.18654284573},"targetPosition":{"x":15202.902576599441,"y":12756.938898857712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"shortcutKey":"f"}}},"id":"351fa6f0-1fbb-4e1b-9d95-3599476aed35","savedPayload":{"position":{"x":15202.902576599441,"y":12756.938898857712},"targetPosition":{"x":14839.5003498846,"y":12684.719289550252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* ¡¡¡ VERY IMPORTANT !!!\n\"PLEASE READ BEFORE STARTING ALL DOCUMENTATION RELATED TO THIS INDICATOR ON THE SUPERALGOS WEBSITE\" */\n\n/* It is necessary to define when a candle has a long or a short body. To do that, the bodies of the last N candles have to be averaged. */\nvariable.lastNbodies = [ ] // Define \"lastNbodies\" array to record the value of the last N bodies (SMA)\n\n/* It is necessary to define when a candle is \"Long\" or \"Short\". To do that, the length of the last N candles have to be averaged. */\nvariable.previousEMAlength = 0 // Initialize the variable previous enter to the main loop (EMA)\nvariable.lastNlengths = [ ] // Define \"lastNlengths\" array to record the value of the last N candles length (SMA)","id":"70e6788a-2518-48cf-8493-27f1e7e5ad61","savedPayload":{"position":{"x":15019.074641186478,"y":13213.234372073503},"targetPosition":{"x":14959.275402183777,"y":13036.739578043598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0b2207a1-b217-4c06-92bd-6985d621d035","savedPayload":{"position":{"x":14959.275402183777,"y":13036.739578043598},"targetPosition":{"x":14839.5003498846,"y":12684.719289550252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f2638b08-3f3b-4574-9e89-dc41f984273d","savedPayload":{"position":{"x":14839.5003498846,"y":12684.719289550252},"targetPosition":{"x":14282.02559347152,"y":12197.197566354245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7519e3d8-b5ec-47eb-84c9-8c9262c9efc6","savedPayload":{"position":{"x":14379.181683083678,"y":12185.939971032949},"targetPosition":{"x":13606.59207657629,"y":12362.027718520723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Basic Candles","id":"09e0a24c-ead1-40c6-9e43-72b46e4294c5"}}},{"type":"Product Definition","name":"One-Candle Patterns","code":"{\n \"codeName\": \"One-Candle-Patterns\",\n \"singularVariableName\": \"oneCandlePattern\",\n \"pluralVariableName\": \"oneCandlePatterns\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"144d8665-1ff0-4db3-9340-a33fd7d0d098","savedPayload":{"position":{"x":13855.232228880854,"y":12290.122975741639},"targetPosition":{"x":13659.624143226229,"y":12460.058623299085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"f0a11771-dd69-4b9a-9347-7cb2d1f231ff","savedPayload":{"position":{"x":13918.821920909919,"y":12437.591273370403},"targetPosition":{"x":13659.624143226229,"y":12460.058623299085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"One-Candle Patterns Records","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","code":"record.current.begin","id":"6269672d-95af-44a9-8f10-52f7d4a6892b","savedPayload":{"position":{"x":14642.838820368012,"y":12623.8765135383},"targetPosition":{"x":14738.27800538994,"y":12816.34542755674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"023fd450-0cae-4b41-8cb2-c446ac69bf32","savedPayload":{"position":{"x":14738.27800538994,"y":12816.34542755674},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"6902c73f-da76-4ca0-b8c2-4ac0351c9a59","savedPayload":{"position":{"x":14881.44398764256,"y":12581.15845812447},"targetPosition":{"x":14857.787532492319,"y":12794.895160068027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ebafaaab-38a0-4bed-a8ea-169f0e92b1cb","savedPayload":{"position":{"x":14857.787532492319,"y":12794.895160068027},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"name","code":"{ \n\"codeName\": \"name\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.name","id":"ae345ad9-8364-4e58-bd0a-8b44803b1d98","savedPayload":{"position":{"x":15105.334254601305,"y":12674.617034283336},"targetPosition":{"x":14969.818118375286,"y":12841.642442325423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b633fced-5335-4a72-b0cf-ebb6237e2a17","savedPayload":{"position":{"x":14969.818118375286,"y":12841.642442325423},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trend","code":"{ \n\"codeName\": \"trend\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.trend","id":"5cd8361b-112f-4a4f-9fcd-42a2ff493e96","savedPayload":{"position":{"x":15243.112905761813,"y":12874.300324548805},"targetPosition":{"x":15038.748434274363,"y":12941.516761999483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"853f4eb3-8068-47d1-9726-22b0c7e835ad","savedPayload":{"position":{"x":15038.748434274363,"y":12941.516761999483},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"forecast","code":"{ \n\"codeName\": \"forecast\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.forecast","id":"3b9c18d5-c9e8-4fad-bb3c-1c46751b91a9","savedPayload":{"position":{"x":15251.075425193969,"y":13116.315266371254},"targetPosition":{"x":15042.736624804726,"y":13062.537889781352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1325daec-fb39-4cb8-acec-14adc2ee94e9","savedPayload":{"position":{"x":15042.736624804726,"y":13062.537889781352},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendLine","code":"{ \n\"codeName\": \"trendLine\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.trendLine","id":"d4a6b997-360b-442b-a08c-b75c331a6a84","savedPayload":{"position":{"x":15049.859099145022,"y":13241.555780756775},"targetPosition":{"x":14979.889341311587,"y":13166.075051767053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"e1a74ac9-f660-4d09-89e9-f8eaebf137c4","savedPayload":{"position":{"x":14979.889341311587,"y":13166.075051767053},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bearishArrowHead","code":"{ \n\"codeName\": \"bearishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.bearishArrowHead","id":"7ca628f3-61d6-4b1f-a4a8-610d07bd8bdb","savedPayload":{"position":{"x":14889.607307430499,"y":13321.232530761527},"targetPosition":{"x":14871.637870524024,"y":13219.891481081962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"d9837267-f999-420e-8906-169c546fc7f5","savedPayload":{"position":{"x":14871.637870524024,"y":13219.891481081962},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bullishArrowHead","code":"{ \n\"codeName\": \"bullishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.bullishArrowHead","id":"9ddcf2bf-57b5-489e-a7a5-496afd9b7301","savedPayload":{"position":{"x":14712.278539578045,"y":13301.545016896098},"targetPosition":{"x":14751.741640627028,"y":13206.586613440515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c474fa25-64ec-470c-ab04-4132e0f3f9a3","savedPayload":{"position":{"x":14751.741640627028,"y":13206.586613440515},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"period","code":"{ \n\"codeName\": \"period\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.period","id":"4986b4c7-0753-4bab-bf62-906acab4c408","savedPayload":{"position":{"x":14568.172514542086,"y":13192.398287275866},"targetPosition":{"x":14657.342968963178,"y":13130.798897913755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"49eea75b-d5c8-44cd-afa7-8689127ac9ae","savedPayload":{"position":{"x":14657.342968963178,"y":13130.798897913755},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendMethod","code":"{ \n\"codeName\": \"trendMethod\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.trendMethod","id":"8fdf87c8-a467-49a9-9b6a-e70cd12a2b93","savedPayload":{"position":{"x":14511.33839365495,"y":13018.41170585364},"targetPosition":{"x":14619.524983465952,"y":13015.216623829514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6337c29e-3df8-4e54-82ab-a2cdeb800a1b","savedPayload":{"position":{"x":14619.524983465952,"y":13015.216623829514},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"02d96f47-c6f0-4423-a144-4799f4023c99","savedPayload":{"position":{"x":14834.206906422474,"y":13008.82527232067},"targetPosition":{"x":13659.624143226229,"y":12460.058623299085},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","name":"One-Candle Patterns Code","code":"// -----------------------------------------------------------------------------------------------------------------------------\n// From here the variables that will be used during the definition of the patterns will be defined\n// -----------------------------------------------------------------------------------------------------------------------------\n\n/* The following variables could be modified by the user to adapt the indicator with his preferences\n(Please, read the documentation before) */\nlet N = 10 // Default value: 10 periods - \"N\" is the period to calculate the Moving Average of the trend line (between 5 and 20) \nvariable.trendMethod = \"EMA\" // Choose \"SMA\" or \"EMA\" to calculate the Moving Average of the trend line\n\n /* In order to avoid errors, the initial condition of the output variables are defined */\nvariable.name = \"No Pattern\" // The name of the one-candle pattern\nvariable.forecast = \"None\" // The forecast of the pattern\n\n/* \"Candles\" and \"Basic Candles\" are dependencies */\nlet candle = record.current // Calling \"Candles\"\nlet basicCandle = getElement ('basicCandles', candle) // Calling \"Basic Candles\"\nvariable.lastN.push(candle.close) // Add the current Candle Close value to the \"lastN\" array\n\n/* To define if the trend is Up or Down , it is necessary to average the candle closes of the last N candles. */\nif (variable.trendMethod === \"SMA\") {\n if (variable.lastN.length > N) {\n variable.lastN.shift() // Remove the first element of the array to keep it at a maximun of N elements\n }\n let smaN\n if (variable.lastN.length < N) { // If the array \"lastN\" has not enough Candle Closes, the value zero for the smaN is defined\n smaN = 0 \n } else { \n let sum = 0 // Initialize sum variable \n for (let i = variable.lastN.length-N; i < variable.lastN.length; i++) { // Iterate through the last periods\n sum = sum + variable.lastN[i]\n } \n smaN = sum/N\n variable.lastMA.push(smaN) // Add the current SMA value to the \"lastMA\" array\n if (variable.lastMA.length > 4) {\n variable.lastMA.shift() // Remove the first element of the array to keep it at a maximun of 4 SMA's\n }\n }\n}\n\nif (variable.trendMethod === \"EMA\") {\n let k = 2 / (N + 1)\n variable.ema = candle.close * k + variable.previousEMA * (1-k)\n variable.previousEMA = variable.ema\n variable.lastMA.push(variable.ema) // Add the current EMA value to the \"lastMA\" array\n if (variable.lastMA.length > 4) {\n variable.lastMA.shift() // Remove the first element of the array to keep it at a maximun of 4 EMA's\n }\n} \n\n/* Calling the 3 last and current Moving Averages of the \"lastMA\" array */\nlet ma3Back = variable.lastMA [0] \nlet ma2Back = variable.lastMA [1]\nlet ma1Back = variable.lastMA [2]\nlet trendLine = variable.lastMA [3]\n\n/* Defining trend (Uptrend or Downtrend). It is important to avoid \"undefined\" candles or ma's */\nlet trend = \"None\"\nlet candle1Back = mainDependency.records[index - 1] // Calling previous candle\nlet candle2Back = mainDependency.records[index - 2] // Calling 2 previous candle\nlet candle3Back = mainDependency.records[index - 3] // Calling 3 previous candle\n\nif (candle1Back !== undefined && candle2Back !== undefined && candle3Back !== undefined) { \n if (ma1Back !== undefined && ma2Back !== undefined && ma3Back !== undefined) { \n if (candle1Back.close >= ma1Back && candle1Back.open >= ma1Back) {\n if (candle2Back.close >= ma2Back && candle2Back.open >= ma2Back) {\n if (candle3Back.close >= ma3Back && candle3Back.open >= ma3Back) {\n trend = \"Uptrend\"\n }\n }\n }\n if (candle1Back.close <= ma1Back && candle1Back.open <= ma1Back) {\n if (candle2Back.close <= ma2Back && candle2Back.open <= ma2Back) {\n if (candle3Back.close <= ma3Back && candle3Back.open <= ma3Back) {\n trend = \"Downtrend\"\n }\n }\n }\n }\n}\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here patterns will be defined\n// ----------------------------------------------------------------------------------------------------------------------------\n\n/* Patterns will be grouped as follows:\n1) Bearish continuation --> These patterns indicates that the current downtrend could continue.\n2) Bearish Reversal --> These patterns indicates that the current uptrend could turn to downtrend.\n3) Bullish Continuation --> These patterns indicates that the current uptrend could continue.\n4) Bullish Reversal --> These patterns indicates that the current downtrend could turn to uptrend. */\n\n/* \"BEARISH CONTINUATION\" group:\nThese patterns should appear during a downtrend to be valid*/\nif (trend === \"Downtrend\") {\n\n/* \"BEARISH STRONG LINE\" properties:\n1) Basic Candle can be \"Long Red Candle\", \"Red Marubozu\", \"Opening Red Marubozu\" or \"Closing Red Marubozu\".\n2) Average size: Long.\n3) The body has to be three times higher than the mean body.\n4) The body is placed below the trend line. */\n\nif (basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.body >= basicCandle.meanBody*3) {\n if (candle.open <= trendLine) {\n variable.name = \"Bearish Strong Line\"\n variable.forecast = \"Bearish Continuation\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Continuation\" group\n\n//-------------------------------------------------------\n\n/* \"BEARISH REVERSAL\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend === \"Uptrend\") {\n\n/* \"BEARISH BELT HOLD\" properties:\n1) Basic Candle is \"Opening Red Marubozu\". \n2) Average size: Long.\n3) Short lower shadow. (20 percent of the candle is defined, user can change it). */\n\nif (basicCandle.name === \"Opening Red Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if(basicCandle.lowerShadow <= basicCandle.length*0.2) {\n variable.name = \"Bearish Belt Hold\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n}\n\n/* \"HANGING MAN\" properties:\n1) Basic Candle can be \"Green Spinning Top\", \" Red Spinning Top\" or \"High Wave\".\n2) Average size: Long.\n3) The upper shadow shorter than the body.\n4) Long lower shadow that is at least twice the size as the body.\n5) The body above the trend line. */\n\nif (basicCandle.name === \"Green Spinning Top\" || basicCandle.name === \"Red Spinning Top\" || basicCandle.name === \"High Wave\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.upperShadow <= basicCandle.body) {\n if (basicCandle.lowerShadow >= basicCandle.body*2) {\n if (candle.close >= trendLine && candle.open >= trendLine) {\n variable.name = \"Hanging Man\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n } \n}\n\n/* \"SHOOTING STAR\" properties:\n1) Basic Candle can be \"Green Spinning Top\", \" Red Spinning Top\" or \"High Wave\".\n2) Average size: Long.\n3) The lower shadow shorter than the body.\n4) Upper shadow that is at least two times longer than the body.\n5) The body above the trend line. */\n\nif (basicCandle.name === \"Green Spinning Top\" || basicCandle.name === \"Red Spinning Top\" || basicCandle.name === \"High Wave\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.lowerShadow <= basicCandle.body) {\n if (basicCandle.upperShadow >= basicCandle.body*2) {\n if (candle.close >= trendLine && candle.open >= trendLine) {\n variable.name = \"Shooting Star\"\n variable.forecast = \"Bearish Reversal\"\n } \n }\n }\n } \n}\n\n/* \"BEARISH STRONG LINE\" properties:\n1) Basic Candle can be \"Long Red Candle\", \"Red Marubozu\", \"Opening Red Marubozu\" or \"Closing Red Marubozu\". \n2) Average size: Long.\n3) The body has to be three times higher than the mean body.\n4) The opening price is above the trendline (Remember, if the body is below the trendline, belongs to bearish continuation). */\n\nif (basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.body >= basicCandle.meanBody*3) {\n if (candle.open >= trendLine) {\n variable.name = \"Bearish Strong Line\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Reversal\" group\n\n//-------------------------------------------------------\n\n/* \"BULLISH CONTINUATION\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend === \"Uptrend\") {\n\n/* \"BULLISH STRONG LINE\" properties:\n1) Basic Candle can be \"Long Green Candle\", \"Green Marubozu\", \"Opening Green Marubozu\" or \"Closing Green Marubozu\".\n2) Average size: Long.\n3) The body has to be three times higher than the mean body.\n4) The body is placed above the trendline. */\n\nif (basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.body >= basicCandle.meanBody*3) {\n if (candle.open >= trendLine) {\n variable.name = \"Bullish Strong Line\"\n variable.forecast = \"Bullish Continuation\"\n }\n }\n }\n}\n\n} // Closing \"Bullish Continuation\" group\n\n//-------------------------------------------------------\n\n/* \"BULLISH REVERSAL\" group:\nThese patterns should appear during a downtrend*/\nif (trend === \"Downtrend\") {\n\n/* \"BULLISH BELT HOLD\" properties:\n1) Basic Candle is \"Opening Green Marubozu\".\n2) Average size: Long.\n3) Short upper shadow. 20 percent of the candle length, user can change it value. */\n\nif (basicCandle.name === \"Opening Green Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.upperShadow <= basicCandle.length*0.2) {\n variable.name = \"Bullish Belt Hold\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n}\n\n/* \"HAMMER\" properties:\n1) Basic Candle can be \"Green Spinning Top\", \" Red Spinning Top\" or \"High Wave\".\n2) Average size: Long.\n3) The upper shadow shorter than the body.\n4) Lower shadow at least two times longer than the body. \n5) The body has to be below the trend line. */\n\nif (basicCandle.name === \"Green Spinning Top\" || basicCandle.name === \"Red Spinning Top\" || basicCandle.name === \"High Wave\" ) {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.upperShadow <= basicCandle.body) {\n if (basicCandle.lowerShadow >= basicCandle.body*2) {\n if (candle.close <= trendLine && candle.open <= trendLine) {\n variable.name = \"Hammer\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n } \n}\n \n/* \"BULLISH STRONG LINE\" properties:\n1) Basic Candle can be \"Long Green Candle\", \"Green Marubozu\", \"Opening Green Marubozu\" or \"Closing Green Marubozu\". \n2) Average size: Long.\n3) The body three times higher than the mean body.\n4) The opening price is below the trendline (Remember, if the body is placed above the trendline, belongs to bulliish continuation). */\n\nif (basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.body >= basicCandle.meanBody*3) {\n if (candle.open <= trendLine) {\n variable.name = \"Bullish Strong Line\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bullish Reversal\" group\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here all the variables that will be written in the records are defined \n// ----------------------------------------------------------------------------------------------------------------------------\n\nvariable.trend = trend\nvariable.trendLine = trendLine\nvariable.period = N // This record will be for pattern visualization on the chart\nvariable.bearishArrowHead = candle.max*1.02 // This record will be for pattern visualization on the chart\nvariable.bullishArrowHead = candle.min*0.98 // This record will be for pattern visualization on the chart","id":"87a8f692-4d18-4965-a6ee-69543d5c9f94","savedPayload":{"position":{"x":14340.48899100794,"y":13239.367837205045},"targetPosition":{"x":14169.769202193107,"y":13110.560472122997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"45f3274c-5f6c-4730-83cc-3a4a80be5f11","savedPayload":{"position":{"x":14169.769202193107,"y":13110.560472122997},"targetPosition":{"x":13827.730487812114,"y":12853.75571479652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* It is necessary to define Moving Average of N Periods to define the trend of the market. */\nvariable.lastN = [ ] // Define lastN array to record the value of the last N candle closes (SMA)\nvariable.previousEMA = 0 // Initialize the variable previous enter to the main loop (EMA)\nvariable.lastMA = [0, 0, 0, 0] // Define lastMA array to record the value of the last 3 and current Moving Averages of N Periods","id":"dcdb9df8-32b5-4c90-b392-8eb147d91a1e","savedPayload":{"position":{"x":13750.970919017596,"y":13492.31266433275},"targetPosition":{"x":13776.559689602316,"y":13279.347431968074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0571fcc4-4f29-4c5b-8de0-54da0ee0dd44","savedPayload":{"position":{"x":13776.559689602316,"y":13279.347431968074},"targetPosition":{"x":13827.730487812114,"y":12853.75571479652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61de6419-4760-4b57-a184-d5aac5114be8","savedPayload":{"position":{"x":13827.730487812114,"y":12853.75571479652},"targetPosition":{"x":13659.624143226229,"y":12460.058623299085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f3c0863c-ac0c-4fc0-b9ee-5f0f2bd722ea","savedPayload":{"position":{"x":14379.112104101332,"y":12538.32359932046},"targetPosition":{"x":13606.59207657629,"y":12362.027718520723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"One-Candle Patterns","id":"14f83391-e4a6-470c-90c0-19763f83429b"}}},{"type":"Product Definition","name":"Two-Candles Patterns","code":"{\n \"codeName\": \"Two-Candles-Patterns\",\n \"singularVariableName\": \"twoCandlePattern\",\n \"pluralVariableName\": \"twoCandlePatterns\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"8c35ce52-9dee-4d20-92e6-50ba7fd2882b","savedPayload":{"position":{"x":13990.38004900581,"y":12517.500992411471},"targetPosition":{"x":13577.071414529011,"y":12631.776049507755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"4f1260c8-6d74-454e-963a-fa3ff910329c","savedPayload":{"position":{"x":13978.133662362168,"y":12782.121569423156},"targetPosition":{"x":13577.071414529011,"y":12631.776049507755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"Two-Candles Patterns Records","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","code":"record.current.begin","id":"61a74369-9fad-4af6-99d8-c6e4821d4750","savedPayload":{"position":{"x":14396.144605236186,"y":12930.93228274267},"targetPosition":{"x":14397.27005487563,"y":13039.477642927437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d0948117-06a2-44e6-a9c6-eed01b943780","savedPayload":{"position":{"x":14397.27005487563,"y":13039.477642927437},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"73933242-2824-4a63-bb50-d6043c1796a0","savedPayload":{"position":{"x":14572.020070613304,"y":12979.84020445404},"targetPosition":{"x":14514.209088586304,"y":13072.050847780967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d5bcbb61-ab9d-4908-91c4-0bbbdade33c0","savedPayload":{"position":{"x":14514.209088586304,"y":13072.050847780967},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"name","code":"{ \n\"codeName\": \"name\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.name","id":"34cec9a0-7a4d-430c-a69e-b67150a8701d","savedPayload":{"position":{"x":14687.551547782925,"y":13119.168264882514},"targetPosition":{"x":14594.23084078616,"y":13162.999720041678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c8a5978b-4038-4493-9c79-697d6508604f","savedPayload":{"position":{"x":14594.23084078616,"y":13162.999720041678},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trend","code":"{ \n\"codeName\": \"trend\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.trend","id":"d5af582e-67e7-4bd4-80c8-561fb4b28f0b","savedPayload":{"position":{"x":14715.235926855486,"y":13295.608928345133},"targetPosition":{"x":14612.929085298943,"y":13282.255150744186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"ceed7f12-8a54-43bf-9bd0-c9297493d6a1","savedPayload":{"position":{"x":14612.929085298943,"y":13282.255150744186},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"forecast","code":"{ \n\"codeName\": \"forecast\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.forecast","id":"ce5d5a36-b9dd-404d-90c1-a6556cc15145","savedPayload":{"position":{"x":14642.841053098498,"y":13459.441183598585},"targetPosition":{"x":14564.04222961525,"y":13392.884859371936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"0e22e091-4ace-44ab-b1c9-aa386e928299","savedPayload":{"position":{"x":14564.04222961525,"y":13392.884859371936},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bullishArrowHead","code":"{ \n\"codeName\": \"bullishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.bullishArrowHead","id":"7095f60c-5b45-4f3c-b026-97c89a480135","savedPayload":{"position":{"x":14493.388098710042,"y":13558.13390390614},"targetPosition":{"x":14463.11708574021,"y":13459.528264028497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"228d8125-2609-45c6-9cc7-e644c017ee0e","savedPayload":{"position":{"x":14463.11708574021,"y":13459.528264028497},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bearishArrowHead","code":"{ \n\"codeName\": \"bearishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.bearishArrowHead","id":"409212af-d4f2-4371-9cc2-4402e16c1889","savedPayload":{"position":{"x":14314.86052199146,"y":13560.351320346243},"targetPosition":{"x":14342.44913435762,"y":13461.021547511327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"fa50b0e1-d8df-4a16-91c9-361541808fbf","savedPayload":{"position":{"x":14342.44913435762,"y":13461.021547511327},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendLine","code":"{ \n\"codeName\": \"trendLine\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.trendLine","id":"7302e487-d514-4964-bdc3-9901ba318dea","savedPayload":{"position":{"x":14163.143697250125,"y":13465.386801343191},"targetPosition":{"x":14239.957236947837,"y":13396.86594323422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"64444857-2818-42de-a4c1-69c4d2804ebf","savedPayload":{"position":{"x":14239.957236947837,"y":13396.86594323422},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"period","code":"{ \n\"codeName\": \"period\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.period","id":"dfdef370-336e-4650-a441-4b65f7304047","savedPayload":{"position":{"x":14080.61005028047,"y":13304.371564081312},"targetPosition":{"x":14187.830358506526,"y":13287.532682305162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6dafe978-a5df-4f5b-a7ae-d496b83bcc94","savedPayload":{"position":{"x":14187.830358506526,"y":13287.532682305162},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendMethod","code":"{ \n\"codeName\": \"trendMethod\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.trendMethod","id":"aea83576-35e1-4190-b284-faf3f696436b","savedPayload":{"position":{"x":14105.043167805037,"y":13123.373354539315},"targetPosition":{"x":14203.984680208447,"y":13167.178249831239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"552e82f9-e5e6-4802-9cf2-d9a7bbbc5a22","savedPayload":{"position":{"x":14203.984680208447,"y":13167.178249831239},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"17ec2118-b9df-415f-b5f3-120fb3b3155a","savedPayload":{"position":{"x":14400.128677128949,"y":13254.391891487401},"targetPosition":{"x":13577.071414529011,"y":12631.776049507755},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","name":"Two-Candles Patterns Code","code":"// -----------------------------------------------------------------------------------------------------------------------------\n// From here the variables that will be used during the definition of the patterns will be defined\n// -----------------------------------------------------------------------------------------------------------------------------\n\n /* In order to avoid errors, the initial condition of the output variables are defined */\nvariable.name = \"No Pattern\" // The name of the two-candle pattern, for panel visualization\nvariable.forecast = \"None\" // The forecast of the two-candle pattern, for panel visualization\nvariable.trend = \"None\" // The trend of the current pattern, for panel visualization\nvariable.trendLine = 1 // This record will be for pattern shapes visualization on the chart\nvariable.bearishArrowHead = 1 // This record will be for pattern shapes visualization on the chart\nvariable.bullishArrowHead = 1 // This record will be for pattern shapes visualization on the chart\nvariable.period = 0 // The period of the trend MA, for panel visualization\n \n/* \"Candles\", \"Basic Candles\" and \"One-Candle Patterns\" are dependencies */\nlet candle = record.current // Calling \"Candles\"\nlet basicCandle = getElement ('basicCandles', candle) // Calling \"Basic Candles\" product\nlet oneCandlePattern = getElement ('oneCandlePatterns', candle) // Calling \"One-Candle Patterns\" product\n\n/* Some properties of the previous candle are needed (max, min, open and close) */\nlet candle1Back = mainDependency.records[index - 1] \n\n/* In order to avoid \"undefined\" elements during calculations */\nif (basicCandle !== undefined && oneCandlePattern !== undefined && candle1Back !== undefined) { \n\n/*Another properties of the previous candle are needed (trend, span, name and direction)*/\nvariable.records1Back.push(oneCandlePattern.trend, basicCandle.size, basicCandle.name, basicCandle.direction)\nlet trend1Back = \"None\"\nlet size1Back = \"None\"\nlet name1Back = \"None\"\nlet direction1Back = \"None\"\nif (variable.records1Back[0] !== undefined) {\n trend1Back = variable.records1Back[0] // Taking first element of the array (index 0)\n}\nif (variable.records1Back[1] !== undefined) {\n size1Back = variable.records1Back[1] // Taking second element of the array (index 1)\n}\nif (variable.records1Back[2] !== undefined) {\n name1Back = variable.records1Back[2] // Taking third element of the array (index 2)\n}\nif (variable.records1Back[3] !== undefined) {\n direction1Back = variable.records1Back[3] // Taking fourth element of the array (index 3)\n}\nif (variable.records1Back.length === 8) { // Array with 8 elements, 4 currents and 4 from previous\n variable.records1Back.splice(0, 4) // Remove the first 4 elements of the array\n} \n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here patterns will be defined\n// ----------------------------------------------------------------------------------------------------------------------------\n\n/* Patterns will be grouped as follows:\n1) Bearish continuation --> These patterns indicates that the current downtrend could continue.\n2) Bearish Reversal --> These patterns indicates that the current uptrend could turn to downtrend.\n3) Bullish Continuation --> These patterns indicates that the current uptrend could continue.\n4) Bullish Reversal --> These patterns indicates that the current downtrend could turn to uptrend. */\n\n/* \"BEARISH CONTINUATION\" group:\nThese patterns should appear during a downtrend to be valid*/\nif (trend1Back === \"Downtrend\") {\n\n/* \"LAST ENGULFING BOTTOM\" properties:\nIt is important to know that this pattern has a \"Bearish Continuation\" or \"Bullish Reversal\" forecast, depending on the context.\n--First candle\n1) Can be any green basic candle, excluding Four-Price Doji.\n--Second candle\n1) Can be the following red basic candles: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Candle's body engulfs the prior candle's body.\n3) Average size: long. */\n\nif (direction1Back === \"Bullish\" && name1Back !== \"Four-Price Doji\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.name === \"Red Candle\" || basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (candle1Back.close <= candle.open && candle1Back.open > candle.close) {\n variable.name = \"Last Engulfing Bottom\"\n variable.forecast = \"Depends On The Context\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Continuation\" group\n\n//-------------------------------------------------------\n\n/* \"BEARISH REVERSAL\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend1Back === \"Uptrend\") {\n\n/* \"BEARISH ENGULFING\" properties:\n--First candle\n1) Can be any green basic candle, excluding Four-Price Doji.\n--Second candle\n1) Can be the following red basic candles: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Candle's body engulfs the prior candle's body.\n3) Average size: long. */\n\nif (direction1Back === \"Bullish\" && name1Back !== \"Four-Price Doji\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.name === \"Red Candle\" || basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (candle1Back.close <= candle.open && candle1Back.open > candle.close) {\n variable.name = \"Bearish Engulfing\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"BEARISH HARAMI\" properties:\n--First candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Can be any red basic candle, excluding Four-Price Doji.\n2) Candle's body engulfed by the previous candle's body. */\n\nif (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.direction === \"Bearish\" && basicCandle.name !== \"Four-Price Doji\") {\n if (candle1Back.close >= candle.open && candle1Back.open < candle.close) {\n variable.name = \"Bearish Harami\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"BEARISH HARAMI CROSS\" properties:\n--First candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Should be a Classic Doji.\n2) Candle's body (including shadows) engulfed by the prior candle's body. */\n\nif (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.name === \"Classic Doji\") {\n if (candle1Back.close >= candle.max && candle1Back.open <= candle.min) {\n variable.name = \"Bearish Harami Cross\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"BEARISH TASUKI LINE\" properties:\n--First candle\n1) Bullish candle.\n2) Average size: Long.\n--Second candle\n1) Bearish candle.\n2) Opening price below or equal to the previous closing price.\n3) Closing price below the previous opening price.\n4) Average size: Long. */\n\nif (direction1Back === \"Bullish\" && size1Back === \"Long\") {\n if (basicCandle.direction === \"Bearish\" && basicCandle.size === \"Long\") {\n if (candle.open <= candle1Back.close && candle.close < candle1Back.open) {\n variable.name = \"Bearish Tasuki Line\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n}\n\n/* \"DESCENDING HAWK\" properties:\n--First candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Can be the following green basic candles: Short Green Candle, Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Candle's body engulfed by the prior candle's body. */\n\nif (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.name === \"Short Green Candle\" || basicCandle.name === \"Green Candle\" || basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (candle1Back.close >= candle.close && candle1Back.open < candle.open) {\n variable.name = \"Descending Hawk\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"TWEEZERS TOP\" properties:\n--First candle\n1) Any candle except the Four-Price Doji.\n2) Could be \"Bullish\" or \"Bearish\" candle.\n--Second candle\n1) Any candle except the Four-Price Doji.\n2) Could be \"Bullish\" or \"Bearish\" candle.\n3) High price equal to the previous high price. */\n\nif (candle1Back.name !== \"Four-Price Doji\" && basicCandle.name !== \"Four-Price Doji\" && candle.max === candle1Back.max) {\n variable.name = \"Tweezers Top\"\n variable.forecast = \"Bearish Reversal\"\n}\n\n/* \"TWO-CANDLE SHOOTING STAR\" properties:\n--First candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Can be the following basic candles: Red Spinning Top, Green Spinning Top, High Wave. \n2) No lower shadow or the shadow cannot be longer than then body.\n3) Upper shadow at least 2.5 times longer than the body.\n4) The open above or at the level of the previous candle’s close. */\n\nif (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.name === \"Red Spinning Top\" || basicCandle.name === \"Green Spinning Top\" || basicCandle.name === \"High Wave\") {\n if (basicCandle.lowerShadow <= basicCandle.body && basicCandle.upperShadow >= basicCandle.body*2.5 && candle.open >= candle1Back.close) {\n variable.name = \"Two-Candle Shooting Star\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Reversal\" group\n\n//-------------------------------------------------------\n\n/* \"BULLISH CONTINUATION\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend1Back === \"Uptrend\") {\n\n/* \"LAST ENGULFING TOP\" properties:\nIt is important to know that this pattern has a \"Bearish Continuation\" or \"Bullish Reversal\" forecast, depending on the context.\n--First candle\n1) Bearish candle, excluding \"Four-Price Doji\".\n--Second candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Candle's body engulfs the prior candle's body. \n3) Average size: Long. */\n\nif (direction1Back === \"Bearish\" && name1Back !== \"Four-Price Doji\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.name === \"Green Candle\" || basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (candle1Back.close >= candle.open && candle1Back.open < candle.close) { \n variable.name = \"Last Engulfing Top\"\n variable.forecast = \"Depends On The Context\"\n }\n }\n }\n}\n\n} // Closing \"Bullish Continuation\" group\n \n//-------------------------------------------------------\n\n/* \"BULLISH REVERSAL\" group:\nThese patterns should appear during a downtrend*/\nif (trend1Back === \"Downtrend\") {\n\n/* \"BULLISH ENGULFING\" properties:\n--First candle\n1) Bearish candle, excluding \"Four-Price Doji\".\n--Second candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Candle's body engulfs the prior candle's body. \n3) Average size: Long. */\n\nif (direction1Back === \"Bearish\" && name1Back !== \"Four-Price Doji\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.name === \"Green Candle\" || basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (candle1Back.close >= candle.open && candle1Back.open < candle.close) { \n variable.name = \"Bullish Engulfing\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n}\n\n/* \"BULLISH HARAMI\" properties:\n--First candle\n1) Can be the following red basic candles: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long.\n--Second candle\n1) Can be any green basic candle, excluding Four-Price Doji.\n2) Candle's body engulfed by the prior candle's body. */\n\nif (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.direction === \"Bullish\" && basicCandle.name !== \"Four-Price Doji\") {\n if (candle1Back.close <= candle.open && candle1Back.open > candle.close) {\n variable.name = \"Bullish Harami\"\n variable.forecast = \"Bulliish Reversal\"\n }\n }\n }\n}\n\n/* \"BULLISH HARAMI CROSS\" properties:\n--First candle\n1) Can be the following red basic candles: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long.\n--Second candle\n1) Should be a Classic Doji.\n2) Candle's body (including shadows) engulfed by the prior candle's body. */\n\nif (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.name === \"Classic Doji\") {\n if (candle1Back.open >= candle.max && candle1Back.close <= candle.min) {\n variable.name = \"Bullish Harami Cross\"\n variable.forecast = \"Bulliish Reversal\"\n }\n }\n }\n}\n\n/* \"BULLISH TASUKI LINE\" properties:\n--First candle\n1) Bearish candle.\n2) Average size: Long.\n--Second candle\n1) Bullish candle.\n2) Opening price above or equal to the previous closing price\n3) Closing price above the previous opening price\n4) Average size: Long. */\n\nif (direction1Back === \"Bearish\" && size1Back === \"Long\") {\n if (basicCandle.direction === \"Bullish\" && basicCandle.size === \"Long\") {\n if (candle.open >= candle1Back.close && candle.close > candle1Back.open) {\n variable.name = \"Bullish Tasuki Line\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n}\n\n/* \"TWEEZERS BOTTOM\" properties:\n--First candle\n1) Any candle except the Four-Price Doji.\n2) Could be \"Bullish\" or \"Bearish\" candle.\n--Second candle\n1) Any candle except the Four-Price Doji.\n2) Could be \"Bullish\" or \"Bearish\" candle.\n3) Low price equal to the previous low price. */\n\nif (candle1Back.name !== \"Four-Price Doji\" && basicCandle.name !== \"Four-Price Doji\" && candle.min === candle1Back.min) {\n variable.name = \"Tweezers Bottom\"\n variable.forecast = \"Bullish Reversal\"\n}\n\n} // Closing \"Bullish Reversal\" group\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here all the variables that will be written in the records are defined \n// ----------------------------------------------------------------------------------------------------------------------------\n\nvariable.trend = trend1Back\nvariable.trendLine = oneCandlePattern.trendLine\nvariable.period = oneCandlePattern.period\nvariable.trendMethod = oneCandlePattern.trendMethod\nvariable.bearishArrowHead = candle.max*1.02 \nvariable.bullishArrowHead = candle.min*0.98\n\n} // Closing initial \"undefined\" avoid\n","id":"0df41d0a-e490-427e-a355-9043e81eb3c1","savedPayload":{"position":{"x":13754.224188597855,"y":13439.902895441395},"targetPosition":{"x":13656.103319071339,"y":13249.373117972671},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"36593fb7-a9ab-4e3f-95ff-9c291e0f96f6","savedPayload":{"position":{"x":13656.103319071339,"y":13249.373117972671},"targetPosition":{"x":13557.80099157917,"y":13059.155699348652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* Because this pattern has two candles, the properties of the previous candle are needed. */\nvariable.records1Back = [ ] // The properties will be record in this array","id":"36e0e453-9058-45de-bcff-bc1e17fe7aa8","savedPayload":{"position":{"x":13326.665381411352,"y":13420.6780298007},"targetPosition":{"x":13442.245658748729,"y":13239.81874221474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a939b7f6-400d-483f-9017-676c53451613","savedPayload":{"position":{"x":13442.245658748729,"y":13239.81874221474},"targetPosition":{"x":13557.80099157917,"y":13059.155699348652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"896e9b4a-04e0-497d-be61-af2c96bb9d86","savedPayload":{"position":{"x":13557.80099157917,"y":13059.155699348652},"targetPosition":{"x":13577.071414529011,"y":12631.776049507755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"29283392-6a01-4acd-8f41-328e92281980","savedPayload":{"position":{"x":14226.066398305322,"y":12856.062869585414},"targetPosition":{"x":13606.59207657629,"y":12362.027718520723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Two-Candles Patterns","id":"3bf46641-3478-41fd-8407-0af20e72f30b"}}},{"type":"Product Definition","name":"Three-Candles Patterns","code":"{\n \"codeName\": \"Three-Candles-Patterns\",\n \"singularVariableName\": \"threeCandlePattern\",\n \"pluralVariableName\": \"threeCandlePatterns\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"087fc67e-78f9-4204-ba5e-8b670566a716","savedPayload":{"position":{"x":13849.871604695945,"y":12827.293777411433},"targetPosition":{"x":13427.889262586501,"y":12750.836137278113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"b60cb94f-79c5-410c-b166-abc97d0f2bc3","savedPayload":{"position":{"x":13724.11718972927,"y":13060.811076982278},"targetPosition":{"x":13427.889262586501,"y":12750.836137278113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"Three-Candles Patterns Records","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","code":"record.current.begin","id":"1c316dcb-6d17-4108-ac41-f2d059685e5e","savedPayload":{"position":{"x":13711.238306530115,"y":12920.658171649195},"targetPosition":{"x":13644.948543022758,"y":13068.723520078449},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8328e683-8704-4b65-a774-63da0346e252","savedPayload":{"position":{"x":13644.948543022758,"y":13068.723520078449},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"db0992c2-3fd6-4eb9-bbe9-40dad5ae53f6","savedPayload":{"position":{"x":13948.582537330978,"y":13116.174731794308},"targetPosition":{"x":13813.151539554317,"y":13201.972933230269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fbef0b72-edde-4678-aca5-f405068271b3","savedPayload":{"position":{"x":13813.151539554317,"y":13201.972933230269},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"name","code":"{ \n\"codeName\": \"name\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.name","id":"c397cffb-3ba1-435b-af0b-e920b319b23b","savedPayload":{"position":{"x":13966.973813754968,"y":13393.072203548825},"targetPosition":{"x":13864.707294117426,"y":13392.478752055717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2f7591d7-6877-4fde-aafb-1b9580f6ad60","savedPayload":{"position":{"x":13864.707294117426,"y":13392.478752055717},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trend","code":"{ \n\"codeName\": \"trend\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.trend","id":"ea48eb6b-63a3-444c-abd2-166097bb50c5","savedPayload":{"position":{"x":13891.677257473519,"y":13636.710911863762},"targetPosition":{"x":13806.927759912025,"y":13581.451438251337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"162b594a-c0a4-45c0-a52c-45682978d00a","savedPayload":{"position":{"x":13806.927759912025,"y":13581.451438251337},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"forecast","code":"{ \n\"codeName\": \"forecast\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.forecast","id":"fd07c697-966a-4a3c-a123-61198f194538","savedPayload":{"position":{"x":13698.461434968936,"y":13800.839962044862},"targetPosition":{"x":13656.986895067497,"y":13708.263944451232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c1afb085-e6cd-4c27-af62-6765cb270c1d","savedPayload":{"position":{"x":13656.986895067497,"y":13708.263944451232},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bullishArrowHead","code":"{ \n\"codeName\": \"bullishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.bullishArrowHead","id":"dd019f19-f96a-4e88-a2e1-0159ba87fbe3","savedPayload":{"position":{"x":13444.092360755101,"y":13835.639457658825},"targetPosition":{"x":13460.938946120285,"y":13734.520497296007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"7059a7a5-021b-4277-80b9-8ef4c5387736","savedPayload":{"position":{"x":13460.938946120285,"y":13734.520497296007},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bearishArrowHead","code":"{ \n\"codeName\": \"bearishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.bearishArrowHead","id":"bc455c93-3c64-4cf4-ab94-0116da22c404","savedPayload":{"position":{"x":13215.851726337816,"y":13726.980994488415},"targetPosition":{"x":13281.961445417463,"y":13650.232814784054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"ec8749b1-4f5f-4163-b079-3dd9bec6eefa","savedPayload":{"position":{"x":13281.961445417463,"y":13650.232814784054},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendLine","code":"{ \n\"codeName\": \"trendLine\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.trendLine","id":"54625f1a-aa6f-44a6-bf2e-bcf1f5210674","savedPayload":{"position":{"x":13080.373564613936,"y":13512.507791593513},"targetPosition":{"x":13177.690028495439,"y":13484.984819448468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"7a781a34-4af5-4eb1-b237-1746ea2e69d0","savedPayload":{"position":{"x":13177.690028495439,"y":13484.984819448468},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"period","code":"{ \n\"codeName\": \"period\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.period","id":"fd68bb74-c7f3-48ff-941c-121031aaf6a1","savedPayload":{"position":{"x":13033.546225688598,"y":13233.68488038103},"targetPosition":{"x":13187.023177611489,"y":13282.410877240069},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b738ac34-a6eb-41c3-9871-0fc1732be676","savedPayload":{"position":{"x":13187.023177611489,"y":13282.410877240069},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendMethod","code":"{ \n\"codeName\": \"trendMethod\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.trendMethod","id":"65ed19cf-524e-4ccd-94df-c60c9b41c40a","savedPayload":{"position":{"x":13179.147447450905,"y":13000.271711780137},"targetPosition":{"x":13285.105306373436,"y":13122.105896094334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"32ff1b3e-acb0-4961-82b9-1dd37a795c41","savedPayload":{"position":{"x":13285.105306373436,"y":13122.105896094334},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8a01e390-aea9-494b-a002-9c7498f23189","savedPayload":{"position":{"x":13514.160444418765,"y":13388.07052073227},"targetPosition":{"x":13427.889262586501,"y":12750.836137278113},"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","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","name":"Three-Candles Patterns Code","code":"// -----------------------------------------------------------------------------------------------------------------------------\n// From here the variables that will be used during the definition of the patterns will be defined\n// -----------------------------------------------------------------------------------------------------------------------------\n\n /* In order to avoid errors, the initial condition of the output variables are defined */\nvariable.name = \"No Pattern\" // The name of the pattern, for panel visualization\nvariable.forecast = \"None\" // The forecast of the pattern, for panel visualization\nvariable.trend = \"None\" // The trend of the current pattern, for panel visualization\nvariable.trendLine = 1 // This record will be for pattern shapes visualization on the chart\nvariable.bearishArrowHead = 1 // This record will be for pattern shapes visualization on the chart\nvariable.bullishArrowHead = 1 // This record will be for pattern shapes visualization on the chart\nvariable.period = 0 // The period of the trend MA, for panel visualization\n\n/* \"Candles\", \"Basic Candles\" and \"One-Candle Patterns\" are dependencies */\nlet candle = record.current // Calling \"Candles\" records\nlet basicCandle = getElement ('basicCandles', candle) // Calling \"Basic Candles\" records\nlet oneCandlePattern = getElement ('oneCandlePatterns', candle) // Calling \"One-Candle Patterns\" records\n\n/* Some properties of the previous 2 candles are needed (max, min, open and close) */\nlet candle1Back = mainDependency.records[index - 1] \nlet candle2Back = mainDependency.records[index - 2] \n\n/* To avoid \"undefined\" elements during calculations, the following if() condition will include all the entire code */\nif (basicCandle !== undefined && oneCandlePattern !== undefined && candle1Back !== undefined && candle2Back !== undefined) { \n\n/*To define patterns, another properties of the 2 previous candles are needed (trend, size, name and direction)*/\nvariable.recordsBack.push(oneCandlePattern.trend, basicCandle.size, basicCandle.name, basicCandle.direction)\nlet trend1Back = \"None\"\nlet size1Back = \"None\"\nlet name1Back = \"None\"\nlet direction1Back = \"None\"\nlet trend2Back = \"None\"\nlet size2Back = \"None\"\nlet name2Back = \"None\"\nlet direction2Back = \"None\"\n\nif (variable.recordsBack[0] !== undefined) {\n trend2Back = variable.recordsBack[0] // Taking first element of the array (index 0)\n}\nif (variable.recordsBack[1] !== undefined) {\n size2Back = variable.recordsBack[1] // Taking second element of the array (index 1)\n}\nif (variable.recordsBack[2] !== undefined) {\n name2Back = variable.recordsBack[2] // Taking third element of the array (index 2)\n}\nif (variable.recordsBack[3] !== undefined) {\n direction2Back = variable.recordsBack[3] // Taking fourth element of the array (index 3)\n}\nif (variable.recordsBack[0] !== undefined) {\n trend1Back = variable.recordsBack[4] // Taking fifth element of the array (index 4)\n}\nif (variable.recordsBack[1] !== undefined) {\n size1Back = variable.recordsBack[5] // Taking sixth element of the array (index 5)\n}\nif (variable.recordsBack[2] !== undefined) {\n name1Back = variable.recordsBack[6] // Taking seventh element of the array (index 6)\n}\nif (variable.recordsBack[3] !== undefined) {\n direction1Back = variable.recordsBack[7] // Taking eigthth element of the array (index 7)\n}\nif (variable.recordsBack.length === 12) { // Array with 12 elements, 4 currents, 4 from 1 previous and 4 from 2 previous \n variable.recordsBack.splice(0, 4) // Remove the first 4 elements of the array\n} \n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here patterns will be defined\n// ----------------------------------------------------------------------------------------------------------------------------\n\n/* Patterns will be grouped as follows:\n1) Bearish continuation --> These patterns indicates that the current downtrend could continue.\n2) Bearish Reversal --> These patterns indicates that the current uptrend could turn to downtrend.\n3) Bullish Continuation --> These patterns indicates that the current uptrend could continue.\n4) Bullish Reversal --> These patterns indicates that the current downtrend could turn to uptrend. */\n\n/* \"BEARISH CONTINUATION\" group:\nThese patterns should appear during a downtrend to be valid*/\nif (trend2Back === \"Downtrend\") {\n\n} // Closing \"Bearish Continuation\" group\n\n//-------------------------------------------------------\n\n/* \"BEARISH REVERSAL\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend2Back === \"Uptrend\") {\n\n/* \"ADVANCE BLOCK\" properties:\n--First candle\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu or Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Bullish.\n2) Body shortet than the previous candle.\n3) Shadows longer than the first candle.\n--Third Candle \n1) Bullish.\n2) Body shortet than the previous candle.\n3) Shadows longer than the first candle. */\n\nif (name2Back === \"Green Candle\" || name2Back === \"Long Green Candle\" || name2Back === \"Opening Green Marubozu\" || name2Back === \"Closing Green Marubozu\" || name2Back === \"Green Marubozu\") {\n if (size2Back === \"Long\") {\n if (direction1Back === \"Bullish\" && (candle1Back.close - candle1Back.open) < (candle2Back.close - candle2Back.open) ) {\n if (basicCandle.direction === \"Bullish\" && (candle.close-candle.open) < (candle1Back.close - candle1Back.open) ) {\n variable.name = \"Advance Block\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"DELIBERATION\" properties:\n--First candle\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu or Green Marubozu.\n--Second candle\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu or Green Marubozu.\n2) Opening price is above the previous opening price.\n3) Closing price is above the previous closing price.\n--Third Candle \n1) Any following bullish basic candle: Short Green Candle or Green Spinning Top.\n2) Opening price is slightly lower or higher than the previous closing price.\n3) Closing price is above the previous closing price.\n4) Average size: Short. */\n\nif (name2Back === \"Green Candle\" || name2Back === \"Long Green Candle\" || name2Back === \"Opening Green Marubozu\" || name2Back === \"Closing Green Marubozu\" || name2Back === \"Green Marubozu\") {\n if (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\" || name1Back === \"Green Marubozu\") {\n if (candle1Back.open > candle2Back.open && candle1Back.close > candle2Back.close) {\n if (basicCandle.name === \"Short Green Candle\" || basicCandle.name === \"Green Spinning Top\") { \n if (basicCandle.size === \"Short\" && candle.close > candle1Back.close) {\n variable.name = \"Deliberation\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n }\n}\n\n/* \"IDENTICAL THREE CROWS\" properties:\n--First candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long.\n--Second candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long. \n3) Opening price at or near the prior close.\n--Third Candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long. \n3) Opening price at or near the prior close.*/\n\nif (name2Back === \"Red Candle\" || name2Back === \"Long Red Candle\" || name2Back === \"Red Marubozu\" || name2Back === \"Opening Red Marubozu\" || name2Back === \"Closing Red Marubozu\") {\n if (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\") {\n if (basicCandle.name === \"Red Candle\" || basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (size2Back === \"Long\" && size1Back === \"Long\" && basicCandle.size === \"Long\") {\n variable.name = \"Identical Three Crows\"\n variable.forecast = \"Bulliish Reversal\"\n }\n }\n }\n}\n\n/* \"THREE INSIDE DOWN\" properties:\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu or Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu or Red Spinning Top.\n2) Candle body is engulfed by the prior candle body.\n--Third Candle \n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu or Red Spinning Top.\n2) Closing price is below the previous closing price. */\n\nif (name2Back === \"Green Candle\" || name2Back === \"Long Green Candle\" || name2Back === \"Opening Green Marubozu\" || name2Back === \"Closing Green Marubozu\" || name2Back === \"Green Marubozu\") {\n if (size2Back === \"Long\") {\n if (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\" || name1Back === \"Red Spinning Top\") {\n if (candle1Back.close > candle2Back.open) {\n if (basicCandle.name === \"Red Candle\" || basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\" || basicCandle.name === \"Red Spinning Top\") {\n variable.name = \"Three Inside Down\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n }\n}\n\n/* \"THREE OUTSIDE DOWN\" properties:\n1) Any bullish basic candle except \"Four-Price Doji\".\n--Second candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Candle's body engulfs the prior candle's body. \n3) Average size: Long.\n--Third Candle \n1) Any bearish basic candle except \"Four-Price Doji\".\n2) Closing price is below the previous closing price. */ \n\nif (direction2Back === \"Bullish\" && name2Back !== \"Four-Price Doji\") {\n if (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\") {\n if (candle1Back.close < candle2Back.open && size1Back === \"Long\") {\n if (basicCandle.direction === \"Bearish\" && basicCandle.name !== \"Four-Price Doji\") {\n variable.name = \"Three Outside Down\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Reversal\" group\n\n//-------------------------------------------------------\n\n/* \"BULLISH CONTINUATION\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend2Back === \"Uptrend\") {\n\n\n\n} // Closing \"Bullish Continuation\" group\n \n//-------------------------------------------------------\n\n/* \"BULLISH REVERSAL\" group:\nThese patterns should appear during a downtrend*/\nif (trend2Back === \"Downtrend\") {\n\n/* \"THREE INSIDE UP\" properties:\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long.\n--Second candle\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu, Green Marubozu or Green Spinning Top.\n2) Candle body is engulfed by the prior candle body.\n--Third Candle \n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu, Green Marubozu or Green Spinning Top.\n2) Closing price is above the previous closing price. */\n\nif (name2Back === \"Red Candle\" || name2Back === \"Long Red Candle\" || name2Back === \"Opening Red Marubozu\" || name2Back === \"Closing Red Marubozu\" || name2Back === \"Red Marubozu\") {\n if (size2Back === \"Long\") {\n if (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\" || name1Back === \"Green Spinning Top\") {\n if (candle1Back.close < candle2Back.open) {\n if (basicCandle.name === \"Green Candle\" || basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\" || basicCandle.name === \"Green Spinning Top\") {\n variable.name = \"Three Inside Up\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n }\n}\n\n/* \"THREE OUTSIDE UP\" properties:\n1) Any bearish basic candle except \"Four-Price Doji\".\n--Second candle\n1) Any following bearish basic candle: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Candle's body engulfs the prior candle's body. \n3) Average size: Long.\n--Third Candle \n1) Any bullish basic candle except \"Four-Price Doji\".\n2) Closing price is above the previous closing price. */ \n\nif (direction2Back === \"Bearish\" && name2Back !== \"Four-Price Doji\") {\n if (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (candle1Back.close > candle2Back.open && size1Back === \"Long\") {\n if (basicCandle.direction === \"Bullish\" && basicCandle.name !== \"Four-Price Doji\") {\n variable.name = \"Three Outside Up\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bullish Reversal\" group\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here all the variables that will be written in the records are defined \n// ----------------------------------------------------------------------------------------------------------------------------\n\nvariable.trend = trend2Back\nvariable.trendLine = oneCandlePattern.trendLine\nvariable.period = oneCandlePattern.period\nvariable.trendMethod = oneCandlePattern.trendMethod\nvariable.bearishArrowHead = candle.max*1.02\nvariable.bullishArrowHead = candle.min*0.98 \n\n} // Closing initial \"undefined\" avoid","id":"e4b8fa10-e9de-48b2-871b-fd5bc2be8544","savedPayload":{"position":{"x":13142.912800841958,"y":13958.22738315719},"targetPosition":{"x":13133.406897710382,"y":13636.959376914901},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a3ca00b1-8cb7-40f0-9d46-e86bcae26607","savedPayload":{"position":{"x":13133.406897710382,"y":13636.959376914901},"targetPosition":{"x":13123.908174017677,"y":13315.777079336249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* Because of these patterns have three candles, the properties of the previous 2 candles are needed. */\nvariable.recordsBack = [ ] // The properties will be recorded in this array","id":"69da8b87-1e7f-45f4-bd47-9a9b0a2057e0","savedPayload":{"position":{"x":12577.05122235381,"y":13653.728456911864},"targetPosition":{"x":12850.45315023664,"y":13484.773677918183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"20684141-89f4-4049-8130-5219f9934b94","savedPayload":{"position":{"x":12850.45315023664,"y":13484.773677918183},"targetPosition":{"x":13123.908174017677,"y":13315.777079336249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1193e656-0fce-4d39-8f46-316d51a8bb95","savedPayload":{"position":{"x":13123.908174017677,"y":13315.777079336249},"targetPosition":{"x":13427.889262586501,"y":12750.836137278113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1b6f79d8-d1ba-49e5-a808-42f71fba5657","savedPayload":{"position":{"x":13950.278960828266,"y":13075.956449119707},"targetPosition":{"x":13606.59207657629,"y":12362.027718520723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Three-Candles Patterns","id":"acdb9c43-0859-42be-87b0-1a600cf513d4"}}}],"id":"254b4e7d-0ede-4208-8f0a-a486dd1a0faf","savedPayload":{"position":{"x":13606.59207657629,"y":12362.027718520723},"targetPosition":{"x":12813.422748313864,"y":12362.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"tradingBots":[],"plotters":[{"type":"Plotter","name":"Candle Patterns","code":"{\n\"codeName\": \"Candle-Patterns\"\n}","modules":[{"type":"Plotter Module","name":"Basic Candles","code":"{ \n\"codeName\": \"Basic-Candles\"\n}","shapes":{"type":"Shapes","name":"Basic Candles","chartPoints":[{"type":"Chart Points","name":"Candle Min","points":[{"type":"Point","name":"Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)/2\ny = record.previous.min","id":"da43ce7b-c3af-49b7-a95c-025494c40a6e","savedPayload":{"position":{"x":13108.977936557767,"y":12188.383729155756},"targetPosition":{"x":12992.912224357988,"y":12465.951795130548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"84c72ff6-fc9c-4869-bd8e-ea8404df0a0f","savedPayload":{"position":{"x":12992.912224357988,"y":12465.951795130548},"targetPosition":{"x":12874.382023295504,"y":12749.007888679644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.min","id":"ee2ef08b-7253-46c1-a087-49feaeae0bd9","savedPayload":{"position":{"x":13359.207789242111,"y":12380.215962023818},"targetPosition":{"x":13119.485580714008,"y":12562.33832997655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b077cf02-7c54-4023-9182-4de81327ff35","savedPayload":{"position":{"x":13119.485580714008,"y":12562.33832997655},"targetPosition":{"x":12874.382023295504,"y":12749.007888679644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2fe07cd8-53ed-4533-a747-05b3906b4755","savedPayload":{"position":{"x":12902.05239713271,"y":12933.635229601114},"targetPosition":{"x":12636.947299989895,"y":13276.879874685575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Mean Length","points":[{"type":"Point","name":"Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)/2\ny = record.previous.min + record.previous.meanLength","id":"c8b8a404-7746-458c-91a4-61d13114c824","savedPayload":{"position":{"x":13673.67750381596,"y":12508.224804263064},"targetPosition":{"x":13349.1040677911,"y":12795.400192005116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2b2ed3d9-a095-403e-8ed8-62f7e73e9f1c","savedPayload":{"position":{"x":13349.1040677911,"y":12795.400192005116},"targetPosition":{"x":13024.73065709388,"y":13082.971349162055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.min + record.meanLength","id":"372fd8b2-9346-4c0a-8465-cb4e2ece90bc","savedPayload":{"position":{"x":13874.48022293734,"y":12909.507347296605},"targetPosition":{"x":13449.660696018584,"y":12996.332616362892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"628ac9f1-445b-4638-8fd5-aa62f6fd859c","savedPayload":{"position":{"x":13449.660696018584,"y":12996.332616362892},"targetPosition":{"x":13024.73065709388,"y":13082.971349162055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"86515391-e909-4183-a0bb-2f6b6d452087","savedPayload":{"position":{"x":13025.021918291819,"y":13082.660247868029},"targetPosition":{"x":12636.947299989895,"y":13276.879874685575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"avgRef","points":[{"type":"Point","name":"Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)/2\ny = record.previous.min + record.previous.avgRef","id":"a231e15f-f884-4326-983c-001a812d2e08","savedPayload":{"position":{"x":13578.803437753708,"y":12816.49484688219},"targetPosition":{"x":13289.589120403027,"y":12897.623893279399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"41fec509-9af9-4ef7-b947-90382ad5ee5d","savedPayload":{"position":{"x":13289.589120403027,"y":12897.623893279399},"targetPosition":{"x":12990.869619180365,"y":12982.381124986036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.min + record.avgRef","id":"69d5c95c-ec98-4656-9057-54ab9fc64a1e","savedPayload":{"position":{"x":13588.803821069829,"y":13118.492608097265},"targetPosition":{"x":13289.456404283654,"y":13057.80208764004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9703549c-8ca6-4293-b4ec-83a4f899c806","savedPayload":{"position":{"x":13289.456404283654,"y":13057.80208764004},"targetPosition":{"x":12990.869619180365,"y":12982.381124986036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3fe2df6a-c2fe-4f66-8529-c959ba7dd010","savedPayload":{"position":{"x":13070.913458756182,"y":13270.299786173973},"targetPosition":{"x":12636.947299989895,"y":13276.879874685575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Candle Min","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.4,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","id":"e19cb185-a1ae-4595-b22f-825aabca3f15","savedPayload":{"position":{"x":13898.021347587734,"y":13494.579614494232},"targetPosition":{"x":13464.696463105538,"y":13476.688840008886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"0c47d43f-28d6-4e22-bcab-ce1a5ba86b13","savedPayload":{"position":{"x":13464.696463105538,"y":13476.688840008886},"targetPosition":{"x":13031.145557927823,"y":13459.07687683122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","id":"aeb3daf8-939c-472d-a653-bb053b201626","savedPayload":{"position":{"x":13424.961913957333,"y":13641.327996042652},"targetPosition":{"x":13031.145557927823,"y":13459.07687683122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"84c72ff6-fc9c-4869-bd8e-ea8404df0a0f"}}},{"type":"Polygon Vertex","name":"End","id":"cf9cdbd9-6a4d-4958-906f-555616617a31","savedPayload":{"position":{"x":13340.7104577407,"y":13755.603986751803},"targetPosition":{"x":13031.145557927823,"y":13459.07687683122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"b077cf02-7c54-4023-9182-4de81327ff35"}}}],"id":"0e718fe1-b457-49b9-a1cd-118bd9f111f4","savedPayload":{"position":{"x":13031.145557927823,"y":13459.07687683122},"targetPosition":{"x":12636.947299989895,"y":13276.879874685575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Mean Length","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.4,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","id":"51351071-cd12-48d6-aa76-8755bd6322b4","savedPayload":{"position":{"x":13665.695313969807,"y":14042.575803215057},"targetPosition":{"x":13283.077530411732,"y":13838.513756463306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8487ed2a-b56a-4d41-895c-569bf127fedc","savedPayload":{"position":{"x":13283.077530411732,"y":13838.513756463306},"targetPosition":{"x":12915.71562588088,"y":13611.66361370111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","id":"4db28f87-f9dd-4420-87bc-d210699f8a01","savedPayload":{"position":{"x":13191.347301384953,"y":13946.99420050665},"targetPosition":{"x":12915.71562588088,"y":13611.66361370111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"2b2ed3d9-a095-403e-8ed8-62f7e73e9f1c"}}},{"type":"Polygon Vertex","name":"End","id":"a4fa988d-7488-4bf4-90f9-2ee6fd939475","savedPayload":{"position":{"x":13064.240731414515,"y":14016.02494944438},"targetPosition":{"x":12915.71562588088,"y":13611.66361370111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"628ac9f1-445b-4638-8fd5-aa62f6fd859c"}}}],"id":"32840d7a-c3be-4c5c-8604-ddec41903a8e","savedPayload":{"position":{"x":12915.71562588088,"y":13611.66361370111},"targetPosition":{"x":12636.947299989895,"y":13276.879874685575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"avgRef","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.4,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","id":"dc036a39-a0d7-43f5-ae0a-f49f80566f35","savedPayload":{"position":{"x":13229.33091362232,"y":14410.229144070205},"targetPosition":{"x":12973.163921033449,"y":14060.158090951238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"332c16f9-b95f-4a5d-a0a7-825adec7b190","savedPayload":{"position":{"x":12973.163921033449,"y":14060.158090951238},"targetPosition":{"x":12739.274799254119,"y":13699.009204216736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","id":"6df63fd0-62c4-49d9-aa62-43e4ebb9e2a3","savedPayload":{"position":{"x":12841.775246025314,"y":14120.818786566584},"targetPosition":{"x":12739.274799254119,"y":13699.009204216736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"41fec509-9af9-4ef7-b947-90382ad5ee5d"}}},{"type":"Polygon Vertex","name":"End","id":"66870fcb-caf4-4e03-9db2-4f7fc0f8cae2","savedPayload":{"position":{"x":12673.03883864232,"y":14128.100137931784},"targetPosition":{"x":12739.274799254119,"y":13699.009204216736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"9703549c-8ca6-4293-b4ec-83a4f899c806"}}}],"id":"b504d259-c93f-4dfa-af0f-ffc23b3e616d","savedPayload":{"position":{"x":12739.274799254119,"y":13699.009204216736},"targetPosition":{"x":12636.947299989895,"y":13276.879874685575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dc146044-78b9-46c7-8e91-47619c333444","savedPayload":{"position":{"x":12636.947299989895,"y":13276.879874685575},"targetPosition":{"x":12212.72884485266,"y":13187.077894379872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Basic Candles","code":"{ \n\"codeName\": \"Basic-Candles\"\n}","panelData":[{"type":"Panel Data","name":"Name","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.name","id":"b94b9d37-1552-4a01-b14b-4897feedd52f","savedPayload":{"position":{"x":12949.630260119242,"y":13182.414450702889},"targetPosition":{"x":12530.612237229694,"y":13296.48962114836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c416dd7-5075-49cc-b404-52fcca7a314c","savedPayload":{"position":{"x":12530.612237229694,"y":13296.48962114836},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.size","id":"7ab67e86-30c4-4d4c-9048-156de658edaa","savedPayload":{"position":{"x":12816.817350046273,"y":13632.297181375847},"targetPosition":{"x":12409.260001385079,"y":13500.956335236164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"84776c6f-6b89-4889-a119-f407ad30a39b","savedPayload":{"position":{"x":12409.260001385079,"y":13500.956335236164},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Upper Shadow %","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.upperShadowPercent","id":"1515c038-a83d-4a33-803d-93f19df9d44f","savedPayload":{"position":{"x":12550.381326036735,"y":14037.469816083092},"targetPosition":{"x":12273.262806955621,"y":13704.12039771927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5bfcb212-425e-481c-93ee-4ddfe0365d04","savedPayload":{"position":{"x":12273.262806955621,"y":13704.12039771927},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Body %","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.bodyPercent","id":"13fb74c6-4320-4755-b896-e3c15b507a8c","savedPayload":{"position":{"x":12102.300757918912,"y":14231.879548647366},"targetPosition":{"x":12049.07457118533,"y":13801.358948162142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4787fdfa-a1b4-4252-be30-1c394ae28d23","savedPayload":{"position":{"x":12049.07457118533,"y":13801.358948162142},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Lower Shadow %","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.lowerShadowPercent","id":"621a0736-7286-407f-be3c-7f9237c1c4e6","savedPayload":{"position":{"x":11620.425246523768,"y":14152.966743446337},"targetPosition":{"x":11808.091895536174,"y":13761.905791832762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"10570ba3-e68c-4aa0-83b9-daed46a61cee","savedPayload":{"position":{"x":11808.091895536174,"y":13761.905791832762},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Parameter: \"Nbodies\"","code":"{\n \"valueDecimals\": 0\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.Nbodies","id":"1ae2288d-9479-410d-9243-21430691060b","savedPayload":{"position":{"x":11257.070102854932,"y":13825.7521669367},"targetPosition":{"x":11626.384453779205,"y":13598.27016763233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"34f62235-4353-4f23-8630-841fbee8665b","savedPayload":{"position":{"x":11626.384453779205,"y":13598.27016763233},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Parameter: \"dojiFactor\" %","code":"{\n \"valueDecimals\": 0\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.dojiFactor","id":"165f2a72-3eac-4740-8445-c9aa133e0ae4","savedPayload":{"position":{"x":11128.212021323285,"y":13354.727980753762},"targetPosition":{"x":11561.962833022772,"y":13362.694365750584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8fe17343-1ae4-4ba8-990a-bfe78872d998","savedPayload":{"position":{"x":11561.962833022772,"y":13362.694365750584},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Parameter: \"sizeFactor\" %","code":"{\n \"valueDecimals\": 0\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFactor","id":"6d9b3c35-1b25-46fb-8b16-ad551cf53493","savedPayload":{"position":{"x":11329.926819301452,"y":12915.28549485325},"targetPosition":{"x":11635.3026294884,"y":13129.436859171616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c2bd7cb-ea2a-48fe-9328-6e7cf397abe5","savedPayload":{"position":{"x":11635.3026294884,"y":13129.436859171616},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Parameter: \"Nlengths\"","code":"{\n \"valueDecimals\": 0\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.Nlengths","id":"42a0f840-7b6f-4e38-ac13-442a40767d70","savedPayload":{"position":{"x":11650.230180812932,"y":12575.088276018505},"targetPosition":{"x":11823.069688597921,"y":12972.80360620623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"26d5e8b8-22fc-40fc-bb28-c3d5272845d0","savedPayload":{"position":{"x":11823.069688597921,"y":12972.80360620623},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Average Size Method","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeMethod","id":"867e57e7-6fc8-4e52-834d-f20f077f37fd","savedPayload":{"position":{"x":12100.695122814745,"y":12456.860795743183},"targetPosition":{"x":12031.325086366693,"y":12885.561054720325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"87d0bb1d-c8e2-47a6-85cc-4e747082305f","savedPayload":{"position":{"x":12031.325086366693,"y":12885.561054720325},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7e6dc8b6-bdeb-4f1a-bf39-a239fa100200","savedPayload":{"position":{"x":11995.91387719581,"y":13370.64016764527},"targetPosition":{"x":12212.72884485266,"y":13187.077894379872},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"09e0a24c-ead1-40c6-9e43-72b46e4294c5","savedPayload":{"position":{"x":12212.801118375293,"y":13187.56026971265},"targetPosition":{"x":11944.774819498161,"y":12362.05365917036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"One-Candle Patterns","code":"{ \n\"codeName\": \"One-Candle-Patterns\"\n}","shapes":{"type":"Shapes","name":"One-Candle Pattern","chartPoints":[{"type":"Chart Points","name":"Bearish Arrow","points":[{"type":"Point","name":"-1-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bearishArrowHead*1.01","id":"e175ab11-cdad-4cfa-bc0e-e9d68fd56419","savedPayload":{"position":{"x":12965.483055921071,"y":12868.64329873116},"targetPosition":{"x":12751.830573939056,"y":13103.9914215748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f0e4b32d-4c67-44a9-b215-46dd2de99095","savedPayload":{"position":{"x":12751.830573939056,"y":13103.9914215748},"targetPosition":{"x":12325.132217733979,"y":13574.414781135878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.01","id":"ad0cc3d5-6a7a-45ac-b7db-41438836230c","savedPayload":{"position":{"x":13187.394324262874,"y":13167.773151426483},"targetPosition":{"x":12899.596747782605,"y":13303.156224936247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"23dc1c78-a55d-482c-be5b-f6893e5294c7","savedPayload":{"position":{"x":12899.596747782605,"y":13303.156224936247},"targetPosition":{"x":12325.132217733979,"y":13574.414781135878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.03","id":"16686f17-868b-406b-a3ab-f4e9dbc8a002","savedPayload":{"position":{"x":13278.11981347048,"y":13528.503138391638},"targetPosition":{"x":12960.259486967265,"y":13543.678389079925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2c9565a9-49d5-4f04-91ad-a073ff669a46","savedPayload":{"position":{"x":12960.259486967265,"y":13543.678389079925},"targetPosition":{"x":12325.132217733979,"y":13574.414781135878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.03","id":"1c6a13b5-d22c-4c2f-b692-a387651394ab","savedPayload":{"position":{"x":13222.739691656414,"y":13896.057843602894},"targetPosition":{"x":12923.159535456434,"y":13788.691205248766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fe68b37d-0bf8-4347-9e38-4013fa120bc8","savedPayload":{"position":{"x":12923.159535456434,"y":13788.691205248766},"targetPosition":{"x":12325.132217733979,"y":13574.414781135878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.01","id":"7de429ac-d43c-4d1f-970a-69cfdcbc1fcc","savedPayload":{"position":{"x":13031.388885189543,"y":14215.395793400503},"targetPosition":{"x":12795.742097139453,"y":14001.402450098667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a4e0461d-4d13-4a01-9332-3fd94aa6647a","savedPayload":{"position":{"x":12795.742097139453,"y":14001.402450098667},"targetPosition":{"x":12325.132217733979,"y":13574.414781135878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bearishArrowHead*1.01","id":"e156a730-1cf6-40a2-8272-8ba1ff8534a7","savedPayload":{"position":{"x":12732.143036938007,"y":14436.801488517705},"targetPosition":{"x":12596.296975152018,"y":14149.137635633617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7b205c46-8dc6-4e0b-bca6-258a84c652c5","savedPayload":{"position":{"x":12596.296975152018,"y":14149.137635633617},"targetPosition":{"x":12325.132217733979,"y":13574.414781135878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bearishArrowHead","id":"459bad82-6540-43d3-8c3c-73b119d4dfed","savedPayload":{"position":{"x":12370.78210048176,"y":14527.175870211293},"targetPosition":{"x":12355.689024391071,"y":14209.156277807786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"71bbdced-dc17-4019-a104-c37bd0ecdc98","savedPayload":{"position":{"x":12355.689024391071,"y":14209.156277807786},"targetPosition":{"x":12325.132217733979,"y":13574.414781135878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fccdf048-5edb-4377-9f0e-27a4c21e21f1","savedPayload":{"position":{"x":12353.367503585854,"y":13505.45441654266},"targetPosition":{"x":11788.958007882462,"y":13302.96903920655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Trend Line","points":[{"type":"Point","name":"Trend Line Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.trendLine\n","id":"1b000a16-4143-4eb2-8b9c-9661ddad10ed","savedPayload":{"position":{"x":12563.190535024169,"y":13756.297769489316},"targetPosition":{"x":12256.577146985215,"y":13671.542095945184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a20e46e-5535-4cb4-b34a-36faec96f4da","savedPayload":{"position":{"x":12256.577146985215,"y":13671.542095945184},"targetPosition":{"x":11950.136160700109,"y":13586.56103909256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Trend Line End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.trendLine","id":"f159d45c-483e-4c46-b6ef-b1cd92d00cb7","savedPayload":{"position":{"x":12110.20290112685,"y":14202.628591547256},"targetPosition":{"x":12030.272260088852,"y":13894.498807566852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"58992b77-271b-4362-b130-251d65d8be55","savedPayload":{"position":{"x":12030.272260088852,"y":13894.498807566852},"targetPosition":{"x":11950.136160700109,"y":13586.56103909256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"edfd4367-c042-4fa0-8f77-31c218fc8d78","savedPayload":{"position":{"x":12004.857202186486,"y":13522.3871105841},"targetPosition":{"x":11788.958007882462,"y":13302.96903920655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Bullish Arrow","points":[{"type":"Point","name":"-1-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bullishArrowHead*0.99","id":"fba54222-55a5-437d-92aa-756f08eecdb5","savedPayload":{"position":{"x":12884.050693370733,"y":14021.323169752775},"targetPosition":{"x":12566.608309237596,"y":14001.316971556336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e8aef2aa-6d0c-42f5-82a4-7c37a157c8de","savedPayload":{"position":{"x":12566.608309237596,"y":14001.316971556336},"targetPosition":{"x":11932.50874538122,"y":13961.039115376421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.99","id":"187b028b-4696-4003-90a1-b5beb8ea2ba3","savedPayload":{"position":{"x":12788.595239524107,"y":14381.163669077672},"targetPosition":{"x":12502.841142236866,"y":14240.837003499404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b834103f-86be-4106-ac3c-47b326cd97b4","savedPayload":{"position":{"x":12502.841142236866,"y":14240.837003499404},"targetPosition":{"x":11932.50874538122,"y":13961.039115376421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.97","id":"e51d81db-649a-4b1b-8aad-ed2f24a9affa","savedPayload":{"position":{"x":12562.577984845044,"y":14676.818415156464},"targetPosition":{"x":12352.355755387507,"y":14437.89708951016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"54a1db25-bb24-4ef9-bcbd-1432848214fd","savedPayload":{"position":{"x":12352.355755387507,"y":14437.89708951016},"targetPosition":{"x":11932.50874538122,"y":13961.039115376421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.97","id":"bb33e4b3-dea3-40d4-89d6-4621df7a0ae0","savedPayload":{"position":{"x":12240.629646714464,"y":14863.711297217418},"targetPosition":{"x":12137.941308197125,"y":14562.57552425211},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"800f7290-42e1-4970-a00c-f4a5cd30312b","savedPayload":{"position":{"x":12137.941308197125,"y":14562.57552425211},"targetPosition":{"x":11932.50874538122,"y":13961.039115376421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.99","id":"a09fda1a-0f15-45d2-92ae-e780435c819e","savedPayload":{"position":{"x":11872.148343880908,"y":14913.172845339974},"targetPosition":{"x":11892.179029474377,"y":14595.373171973026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4a83e816-d5a4-47f0-a30e-3f5e5320147e","savedPayload":{"position":{"x":11892.179029474377,"y":14595.373171973026},"targetPosition":{"x":11932.50874538122,"y":13961.039115376421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bullishArrowHead*0.99","id":"1b3b0d03-bef2-4f05-9460-19227819c39b","savedPayload":{"position":{"x":11512.246000757412,"y":14817.147676223887},"targetPosition":{"x":11652.489877668344,"y":14531.57038171824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c6806791-bd74-413b-b86c-61383118cba6","savedPayload":{"position":{"x":11652.489877668344,"y":14531.57038171824},"targetPosition":{"x":11932.50874538122,"y":13961.039115376421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bullishArrowHead","id":"931a9f64-7ec8-44a9-8555-6d03477940f2","savedPayload":{"position":{"x":11216.643926630622,"y":14590.919195459615},"targetPosition":{"x":11455.577456180035,"y":14380.865419957876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2f37b7be-5805-419d-a0a8-3e2fc5eb9e3b","savedPayload":{"position":{"x":11455.577456180035,"y":14380.865419957876},"targetPosition":{"x":11932.50874538122,"y":13961.039115376421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2591fc95-5f9b-409c-8816-11a3dd6d8581","savedPayload":{"position":{"x":11982.730643990966,"y":13870.65896417198},"targetPosition":{"x":11788.958007882462,"y":13302.96903920655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Bearish Arrow","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bearish Reversal\" || record.forecast === \"Bearish Continuation\" ","id":"c92a8076-d1cf-4879-88e2-16f89c878649","savedPayload":{"position":{"x":12235.615205815931,"y":14242.043383584158},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","id":"921dec12-c29d-4656-8ea5-6e5fc7c92469","savedPayload":{"position":{"x":12386.543247211037,"y":14599.372943005143},"targetPosition":{"x":12141.383879811041,"y":14396.716873901229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d7ca8665-bd27-421a-be79-e5b48c4ffd3f","savedPayload":{"position":{"x":12141.383879811041,"y":14396.716873901229},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","id":"2360af46-2b53-4cea-a26b-019107a4e4dc","savedPayload":{"position":{"x":12185.23587033499,"y":14782.072668870904},"targetPosition":{"x":12007.154540660602,"y":14518.332468126262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1beaa578-f91e-4eb9-bcc9-4c979bc9a87c","savedPayload":{"position":{"x":12007.154540660602,"y":14518.332468126262},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","id":"6c20d736-5211-4bb1-836f-3ee460ba4f75","savedPayload":{"position":{"x":11716.852909625657,"y":14624.232075949345},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"f0e4b32d-4c67-44a9-b215-46dd2de99095"}}},{"type":"Polygon Vertex","name":"-2-","id":"7870b61d-7540-4f9e-9d57-bc8b54dab81d","savedPayload":{"position":{"x":11623.59231302339,"y":14627.66878102049},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"23dc1c78-a55d-482c-be5b-f6893e5294c7"}}},{"type":"Polygon Vertex","name":"-3-","id":"666d3979-14ea-4753-8d79-36a17ace6f3b","savedPayload":{"position":{"x":11531.977950824123,"y":14617.239015482895},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"2c9565a9-49d5-4f04-91ad-a073ff669a46"}}},{"type":"Polygon Vertex","name":"-4-","id":"58596c8a-eab1-4926-a006-4c287afd7096","savedPayload":{"position":{"x":11443.396226776775,"y":14593.729412979172},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"fe68b37d-0bf8-4347-9e38-4013fa120bc8"}}},{"type":"Polygon Vertex","name":"-5-","id":"e6073465-7636-48b1-8344-5e82a314ac1d","savedPayload":{"position":{"x":11359.384708955913,"y":14557.807998817012},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"a4e0461d-4d13-4a01-9332-3fd94aa6647a"}}},{"type":"Polygon Vertex","name":"-6-","id":"87a3f44c-5361-4e65-a9f3-1c5a461600b0","savedPayload":{"position":{"x":11281.510600734495,"y":14510.28688448735},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"7b205c46-8dc6-4e0b-bca6-258a84c652c5"}}},{"type":"Polygon Vertex","name":"-7-","id":"dcd75a74-5275-4181-8801-8bb625ab2545","savedPayload":{"position":{"x":11204.2163719251,"y":14444.367521032163},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"71bbdced-dc17-4019-a104-c37bd0ecdc98"}}}],"id":"d503108f-9b4f-4aae-9e99-b92e1aedb6c8","savedPayload":{"position":{"x":11717.295634801481,"y":13899.316787849044},"targetPosition":{"x":11788.958007882462,"y":13302.96903920655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Trend Line","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\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}","id":"8b777f5a-b79e-45c5-ae85-3693d946b577","savedPayload":{"position":{"x":11754.491297468012,"y":14221.928059725631},"targetPosition":{"x":11690.670498529573,"y":13928.733372537468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9ec3107b-2173-46b2-b831-7144910bd2ed","savedPayload":{"position":{"x":11690.670498529573,"y":13928.733372537468},"targetPosition":{"x":11640.674066617728,"y":13577.428401494675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Trend Line End","id":"66cee7f2-7951-4c23-84d9-8af01e017f34","savedPayload":{"position":{"x":11446.52123541505,"y":13881.528809602585},"targetPosition":{"x":11640.674066617728,"y":13577.428401494675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line End","id":"58992b77-271b-4362-b130-251d65d8be55"}}},{"type":"Polygon Vertex","name":"Trend Line Begin","id":"968f315d-33e1-4866-b061-42fb61964ad6","savedPayload":{"position":{"x":11291.487886964725,"y":13665.409189827207},"targetPosition":{"x":11640.674066617728,"y":13577.428401494675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line Begin","id":"0a20e46e-5535-4cb4-b34a-36faec96f4da"}}}],"id":"2e0fe089-4dae-4895-b46b-4f5e07ac9926","savedPayload":{"position":{"x":11623.025853596115,"y":13562.808922097776},"targetPosition":{"x":11788.958007882462,"y":13302.96903920655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Bullish Arrow","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bullish Reversal\" || record.forecast === \"Bullish Continuation\" ","id":"e32f5ba5-7e4e-4b48-9255-985134b35bf6","savedPayload":{"position":{"x":11356.333851880048,"y":14309.19499572535},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","id":"dc4c1077-65c7-4b76-8420-ea719c497798","savedPayload":{"position":{"x":11171.794743914175,"y":14650.734757758717},"targetPosition":{"x":11175.745440661813,"y":14330.932431226403},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8f42597b-9b13-46a3-b926-bf79570f27eb","savedPayload":{"position":{"x":11175.745440661813,"y":14330.932431226403},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","id":"97b28c5b-f7c8-41d4-82a7-2db8fe1bd533","savedPayload":{"position":{"x":10900.571835786326,"y":14607.936193660593},"targetPosition":{"x":10995.921202414036,"y":14303.32115943792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"fc855e6f-bb88-485d-8079-99653a800a36","savedPayload":{"position":{"x":10995.921202414036,"y":14303.32115943792},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","id":"6f1e0d8e-a1a7-4fc7-ab01-d2e4d5cb0807","savedPayload":{"position":{"x":10730.677169859624,"y":14140.232690672607},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"e8aef2aa-6d0c-42f5-82a4-7c37a157c8de"}}},{"type":"Polygon Vertex","name":"-2-","id":"7bff821f-bb70-4a9f-89b9-74bd1dcde01f","savedPayload":{"position":{"x":10669.455225389724,"y":14069.029034667272},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"b834103f-86be-4106-ac3c-47b326cd97b4"}}},{"type":"Polygon Vertex","name":"-3-","id":"e14aa3b8-ed10-4358-87db-81d0f2fd580c","savedPayload":{"position":{"x":10619.03190035281,"y":13991.292631787524},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"54a1db25-bb24-4ef9-bcbd-1432848214fd"}}},{"type":"Polygon Vertex","name":"-4-","id":"fa285436-8897-49fa-81bf-bcf727e368de","savedPayload":{"position":{"x":10580.696718259642,"y":13907.589130141916},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"800f7290-42e1-4970-a00c-f4a5cd30312b"}}},{"type":"Polygon Vertex","name":"-5-","id":"cb9d9c29-9b41-42ba-bb6b-3e63dcbd253e","savedPayload":{"position":{"x":10556.368939645708,"y":13819.304483172136},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"4a83e816-d5a4-47f0-a30e-3f5e5320147e"}}},{"type":"Polygon Vertex","name":"-6-","id":"56ccabba-f502-416d-92ff-da20ee90ddf3","savedPayload":{"position":{"x":10547.376439499101,"y":13728.662757496488},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"c6806791-bd74-413b-b86c-61383118cba6"}}},{"type":"Polygon Vertex","name":"-7-","id":"688ebb45-45d7-4e2a-bfbc-f0bb799b2360","savedPayload":{"position":{"x":10551.83122632822,"y":13627.127452074243},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"2f37b7be-5805-419d-a0a8-3e2fc5eb9e3b"}}}],"id":"2cd7982f-ecc8-41ce-8b27-ede1d1ad7d8c","savedPayload":{"position":{"x":11278.026117322934,"y":13618.688201219642},"targetPosition":{"x":11788.958007882462,"y":13302.96903920655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0a02f148-0036-4d1c-aac5-a4e4ee5c25e7","savedPayload":{"position":{"x":11788.985336730206,"y":13303.148965975284},"targetPosition":{"x":11726.454631962377,"y":12706.323293734202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"One-Candle Patterns","code":"{ \n\"codeName\": \"One-Candle-Patterns\"\n}","panelData":[{"type":"Panel Data","name":"Pattern Name","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.name","id":"664bc7e8-5c76-4dea-82ad-acef43eaa2da","savedPayload":{"position":{"x":11501.93740317275,"y":13176.94603730852},"targetPosition":{"x":11426.363737763586,"y":12886.064548854436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"119aa231-cf07-40a8-98ee-679e8d4e99ce","savedPayload":{"position":{"x":11426.363737763586,"y":12886.064548854436},"targetPosition":{"x":11404.41259716337,"y":12563.288189030278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Direction","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trend","id":"d4102f27-72a7-412c-b9b4-244e3ef5100d","savedPayload":{"position":{"x":11043.95740825339,"y":13044.183060725472},"targetPosition":{"x":11223.967414000515,"y":12803.702728176195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2409211c-7992-4b1a-8273-25ce7e284b72","savedPayload":{"position":{"x":11223.967414000515,"y":12803.702728176195},"targetPosition":{"x":11404.41259716337,"y":12563.288189030278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Forecast","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.forecast","id":"19821933-d558-452e-9dc0-5df90116fcc1","savedPayload":{"position":{"x":10803.749528281682,"y":12581.122148207885},"targetPosition":{"x":11103.854307668524,"y":12572.148609337759},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e240fe07-156c-4766-8fe0-f123781842ef","savedPayload":{"position":{"x":11103.854307668524,"y":12572.148609337759},"targetPosition":{"x":11404.41259716337,"y":12563.288189030278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Method","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendMethod","id":"7541dc87-d801-48bc-b2d8-391e605c0c5e","savedPayload":{"position":{"x":11015.814020906739,"y":12105.124543641734},"targetPosition":{"x":11209.89927891457,"y":12334.131330156766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e0c328ed-84b7-43a2-bfb2-274d1b1d3bae","savedPayload":{"position":{"x":11209.89927891457,"y":12334.131330156766},"targetPosition":{"x":11404.41259716337,"y":12563.288189030278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Period","code":"{\n \"valueDecimals\": 0\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","id":"6b66e742-6d13-43d6-a00f-a6ed9d070249","savedPayload":{"position":{"x":11519.191959073312,"y":11973.773593496275},"targetPosition":{"x":11461.907216338393,"y":12268.52539343757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e457e54c-7cbb-4866-9b67-3bb71332e2c5","savedPayload":{"position":{"x":11461.907216338393,"y":12268.52539343757},"targetPosition":{"x":11404.41259716337,"y":12563.288189030278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Value","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendLine","id":"e33fff96-c3f5-4376-8d90-4feafc0df08b","savedPayload":{"position":{"x":11924.983441013894,"y":12225.374211815923},"targetPosition":{"x":11658.458671376004,"y":12362.787527456234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"42d2f0eb-65fa-4358-af25-484517433307","savedPayload":{"position":{"x":11658.458671376004,"y":12362.787527456234},"targetPosition":{"x":11404.41259716337,"y":12563.288189030278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d2af80dc-8d17-42f3-b88a-af1726c59859","savedPayload":{"position":{"x":11404.41259716337,"y":12563.288189030278},"targetPosition":{"x":11726.454631962377,"y":12706.323293734202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"14f83391-e4a6-470c-90c0-19763f83429b","savedPayload":{"position":{"x":11242.580100163783,"y":12872.161390267005},"targetPosition":{"x":11944.774819498161,"y":12362.05365917036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Two-Candles Patterns","code":"{ \n\"codeName\": \"Two-Candles Patterns\"\n}","shapes":{"type":"Shapes","name":"Two-Candles Patterns","chartPoints":[{"type":"Chart Points","name":"Bearish Arrow","points":[{"type":"Point","name":"-1-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bearishArrowHead*1.01","id":"7dc394b3-ca00-4738-a554-420b393aa4f8","savedPayload":{"position":{"x":12080.364766906878,"y":13220.782956633711},"targetPosition":{"x":11790.248866809208,"y":13090.111787601752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7291f0d5-78e1-4d7c-a73d-2068e491344b","savedPayload":{"position":{"x":11790.248866809208,"y":13090.111787601752},"targetPosition":{"x":11210.883601978836,"y":12829.416928291432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.01","id":"cfdc25f2-f236-4fd0-a09c-11759c6a4e07","savedPayload":{"position":{"x":11864.254631850083,"y":13523.767719263178},"targetPosition":{"x":11646.060247337566,"y":13291.842840506357},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"87745033-dc64-4d86-8579-29cf35124f9a","savedPayload":{"position":{"x":11646.060247337566,"y":13291.842840506357},"targetPosition":{"x":11210.883601978836,"y":12829.416928291432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.04","id":"f30d7904-2195-4bab-93d4-d5083000fe6b","savedPayload":{"position":{"x":11548.872612758332,"y":13721.322106848394},"targetPosition":{"x":11436.15829430936,"y":13423.781375380397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"87fc7e3a-455f-49bb-ab44-fc06ba845f00","savedPayload":{"position":{"x":11436.15829430936,"y":13423.781375380397},"targetPosition":{"x":11210.883601978836,"y":12829.416928291432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.04","id":"f29b34a0-8604-4cde-b52c-237a422ccb31","savedPayload":{"position":{"x":11182.440371853707,"y":13782.892125833674},"targetPosition":{"x":11191.895398924,"y":13464.716740789758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2bab7192-a08c-4461-b36e-f369491dfd42","savedPayload":{"position":{"x":11191.895398924,"y":13464.716740789758},"targetPosition":{"x":11210.883601978836,"y":12829.416928291432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.01","id":"20df1362-6e33-45c3-bf48-c4a76035b428","savedPayload":{"position":{"x":10819.670867042692,"y":13699.328603873406},"targetPosition":{"x":10950.196779102633,"y":13409.036213563837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3c9d80e6-ad20-4b47-a8f5-1bf19a0b80e2","savedPayload":{"position":{"x":10950.196779102633,"y":13409.036213563837},"targetPosition":{"x":11210.883601978836,"y":12829.416928291432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bearishArrowHead*1.01","id":"64a8c860-86c4-40da-9ca0-d5e424ade757","savedPayload":{"position":{"x":10516.426943651764,"y":13483.271111995491},"targetPosition":{"x":10748.207670935357,"y":13265.113689035281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c6a0d716-6534-453b-9d0f-a8c6faa502f0","savedPayload":{"position":{"x":10748.207670935357,"y":13265.113689035281},"targetPosition":{"x":11210.883601978836,"y":12829.416928291432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bearishArrowHead","id":"62fc84a0-55e5-452c-b72d-4c91174ea85a","savedPayload":{"position":{"x":10319.068694124551,"y":13167.497391595014},"targetPosition":{"x":10616.657668901848,"y":13054.714065527793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fef9ea3b-84c5-43cd-9602-96f8170065bd","savedPayload":{"position":{"x":10616.657668901848,"y":13054.714065527793},"targetPosition":{"x":11210.883601978836,"y":12829.416928291432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9020cd21-a011-4b59-aec4-56469a5ce79f","savedPayload":{"position":{"x":11212.08238612305,"y":12793.886426050642},"targetPosition":{"x":11230.088306354333,"y":12194.214105362249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Trend Line","points":[{"type":"Point","name":"Trend Line Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.trendLine\n","id":"aed6b5b4-e6e5-4e5c-a13b-1d707c93c15a","savedPayload":{"position":{"x":11112.203423838924,"y":13135.049712488144},"targetPosition":{"x":11098.154486588639,"y":12816.675111736882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"691a374a-ab65-4dc5-b788-979162f87185","savedPayload":{"position":{"x":11098.154486588639,"y":12816.675111736882},"targetPosition":{"x":11083.52637072901,"y":12476.574737981895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Trend Line End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.trendLine","id":"9b3acde4-3360-4869-8685-c08922111bd5","savedPayload":{"position":{"x":10528.328676106998,"y":12831.586770785856},"targetPosition":{"x":10796.587520809484,"y":12660.256912026685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1e2e8a50-8a93-4696-9ed7-f8ea1da75c5e","savedPayload":{"position":{"x":10796.587520809484,"y":12660.256912026685},"targetPosition":{"x":11083.52637072901,"y":12476.574737981895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7af63af8-4b52-4c71-b427-906a0eaa37d2","savedPayload":{"position":{"x":11091.612510483377,"y":12460.869122431828},"targetPosition":{"x":11230.088306354333,"y":12194.214105362249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Bullish Arrow","points":[{"type":"Point","name":"-1-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bullishArrowHead*0.99","id":"7cd5ae63-7c34-4ce3-84f9-8de0b14fbafa","savedPayload":{"position":{"x":10957.995336187574,"y":13499.347586436937},"targetPosition":{"x":10879.208138403894,"y":13191.010310464353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"38b0018b-d162-492e-90b3-604efc79c16e","savedPayload":{"position":{"x":10879.208138403894,"y":13191.010310464353},"targetPosition":{"x":10721.704601814654,"y":12575.369642451864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.99","id":"3221cc5c-76c7-4335-bc1c-a781c1c7a6f4","savedPayload":{"position":{"x":10586.804919038863,"y":13519.5759173753},"targetPosition":{"x":10631.795073687696,"y":13204.472858274814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"66a65473-db28-42bf-8491-3497a35cc42b","savedPayload":{"position":{"x":10631.795073687696,"y":13204.472858274814},"targetPosition":{"x":10721.704601814654,"y":12575.369642451864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.96","id":"5dbc1498-0b47-48cd-a37c-1a4f19f6c788","savedPayload":{"position":{"x":10235.638110508145,"y":13395.963856067829},"targetPosition":{"x":10397.830607018597,"y":13122.11928578089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cb37189b-fdb7-4cd7-aa78-1dfd71c8e614","savedPayload":{"position":{"x":10397.830607018597,"y":13122.11928578089},"targetPosition":{"x":10721.704601814654,"y":12575.369642451864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.96","id":"1bcf2a18-15b8-4a2c-b7b6-1167c00ff5e9","savedPayload":{"position":{"x":9958.51463690534,"y":13147.352166790564},"targetPosition":{"x":10213.201596397783,"y":12956.49560590405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"aae0a6cc-e05b-402f-800c-807df07b1f37","savedPayload":{"position":{"x":10213.201596397783,"y":12956.49560590405},"targetPosition":{"x":10721.704601814654,"y":12575.369642451864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.99","id":"8011dcdd-1c27-4bcb-8ea6-3344573aa905","savedPayload":{"position":{"x":9797.608411032441,"y":12811.642008035207},"targetPosition":{"x":10106.006106977726,"y":12732.832615058134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a5f609bd-7162-4155-8778-d085b000ef04","savedPayload":{"position":{"x":10106.006106977726,"y":12732.832615058134},"targetPosition":{"x":10721.704601814654,"y":12575.369642451864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bullishArrowHead*0.99","id":"37fa781c-1480-47fd-a862-39894108dc46","savedPayload":{"position":{"x":9777.434768608586,"y":12440.483473176917},"targetPosition":{"x":10092.560564373696,"y":12485.454399858972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6edd83d4-739a-4651-9204-2a0f617e1256","savedPayload":{"position":{"x":10092.560564373696,"y":12485.454399858972},"targetPosition":{"x":10721.704601814654,"y":12575.369642451864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bullishArrowHead","id":"65f9907e-ab3a-4ef4-a902-b8204afc49d7","savedPayload":{"position":{"x":9901.123266502633,"y":12089.222366557253},"targetPosition":{"x":10174.944718196417,"y":12251.419740461577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b98d1777-f3a2-4bcc-8312-6d89d1c6662e","savedPayload":{"position":{"x":10174.944718196417,"y":12251.419740461577},"targetPosition":{"x":10721.704601814654,"y":12575.369642451864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20da6d05-3166-4ba2-bd3c-b21770ae1958","savedPayload":{"position":{"x":10750.266363912004,"y":12553.875282572766},"targetPosition":{"x":11230.088306354333,"y":12194.214105362249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Bearish Arrow","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bearish Reversal\" || record.forecast === \"Bearish Continuation\" ","id":"bebcd91f-d028-4d8c-bc25-317d19f1b955","savedPayload":{"position":{"x":10545.921551362917,"y":12950.461440057985},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","id":"8d874a62-2e9c-43e9-9632-e93a7e25d8c3","savedPayload":{"position":{"x":10254.470661709795,"y":13203.968708192891},"targetPosition":{"x":10370.531202082246,"y":12907.47369966236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6e948385-96a4-40ba-b8db-eb11d079aad1","savedPayload":{"position":{"x":10370.531202082246,"y":12907.47369966236},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","id":"65302767-1fb6-4a56-b981-4ca898e3fc1f","savedPayload":{"position":{"x":10019.354758517326,"y":13068.057848255628},"targetPosition":{"x":10214.217089568454,"y":12817.719639137931},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6365634c-c753-4be1-9f4e-d81a88690b96","savedPayload":{"position":{"x":10214.217089568454,"y":12817.719639137931},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","id":"952bb578-3cc3-4576-b7dd-a043f2b4d719","savedPayload":{"position":{"x":10022.184079381099,"y":12573.955392658285},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"7291f0d5-78e1-4d7c-a73d-2068e491344b"}}},{"type":"Polygon Vertex","name":"-2-","id":"bc4ee454-7c2b-4808-a99c-002afae05d39","savedPayload":{"position":{"x":9990.314472494567,"y":12485.992965465333},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"87745033-dc64-4d86-8579-29cf35124f9a"}}},{"type":"Polygon Vertex","name":"-3-","id":"6ad8a90c-4d6e-47ed-a4be-ae3a5684b26d","savedPayload":{"position":{"x":9971.59872853725,"y":12395.55272137446},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"87fc7e3a-455f-49bb-ab44-fc06ba845f00"}}},{"type":"Polygon Vertex","name":"-4-","id":"a49d5c98-f797-45ec-832a-c89de61c5030","savedPayload":{"position":{"x":9966.45605918407,"y":12303.952338163099},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"2bab7192-a08c-4461-b36e-f369491dfd42"}}},{"type":"Polygon Vertex","name":"-5-","id":"5ee4c947-de43-4212-adf9-28d28820da8e","savedPayload":{"position":{"x":9974.562593159011,"y":12212.881430747817},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"3c9d80e6-ad20-4b47-a8f5-1bf19a0b80e2"}}},{"type":"Polygon Vertex","name":"-6-","id":"c6e490ea-bdfd-4738-84e7-dcd8e1078605","savedPayload":{"position":{"x":9996.735865147144,"y":12124.449288633105},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"c6a0d716-6534-453b-9d0f-a8c6faa502f0"}}},{"type":"Polygon Vertex","name":"-7-","id":"2aaa39e8-be04-491e-862e-b1bb03c8d29d","savedPayload":{"position":{"x":10035.594561056812,"y":12030.551045346489},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"fef9ea3b-84c5-43cd-9602-96f8170065bd"}}}],"id":"49566c3d-5038-4737-a68a-4f1f99a53296","savedPayload":{"position":{"x":10640.963579422994,"y":12310.144397142643},"targetPosition":{"x":11230.088306354333,"y":12194.214105362249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Trend Line","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\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}","id":"5d90400c-c680-452a-b5d6-dd01f3483a67","savedPayload":{"position":{"x":10336.04431049231,"y":12450.530040797157},"targetPosition":{"x":10610.378394632273,"y":12289.861961035038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6ab5c6b9-d4e4-4b61-a135-17bb3a0204cb","savedPayload":{"position":{"x":10610.378394632273,"y":12289.861961035038},"targetPosition":{"x":10921.79645213607,"y":12114.128738025604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Trend Line End","id":"d99e5489-5977-4ca7-9d11-a65feaeb3e1e","savedPayload":{"position":{"x":10568.411398546887,"y":12022.163589007218},"targetPosition":{"x":10921.79645213607,"y":12114.128738025604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line End","id":"1e2e8a50-8a93-4696-9ed7-f8ea1da75c5e"}}},{"type":"Polygon Vertex","name":"Trend Line Begin","id":"0f83b930-9073-41a5-a3e6-59ea6b3ebafd","savedPayload":{"position":{"x":10727.167582598435,"y":11850.56892593657},"targetPosition":{"x":10921.79645213607,"y":12114.128738025604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line Begin","id":"691a374a-ab65-4dc5-b788-979162f87185"}}}],"id":"f826e8bf-cc5c-4b7f-9d15-1fc6a45d7ced","savedPayload":{"position":{"x":10939.089469477603,"y":12118.64120094056},"targetPosition":{"x":11230.088306354333,"y":12194.214105362249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Bullish Arrow","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bullish Reversal\" || record.forecast === \"Bullish Continuation\" ","id":"edbfaf8f-8507-4d7b-9057-353f9571e615","savedPayload":{"position":{"x":10213.778124897002,"y":12132.269517906983},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","id":"010c4131-393a-474e-98af-444ebfbb7a8d","savedPayload":{"position":{"x":9832.110411093618,"y":12061.536130343056},"targetPosition":{"x":10136.738383878033,"y":11968.48508335417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"5f6e62fc-4d25-4af4-86df-ca18bdd1e897","savedPayload":{"position":{"x":10136.738383878033,"y":11968.48508335417},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","id":"51545ef3-4202-4f31-8746-908b4d04e273","savedPayload":{"position":{"x":9790.998444728728,"y":11792.777718410327},"targetPosition":{"x":10109.09160879138,"y":11789.752637665544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"504af6cf-5682-4ec9-90f1-3b5ac174cb67","savedPayload":{"position":{"x":10109.09160879138,"y":11789.752637665544},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","id":"e9090bdf-ffe5-4031-89d1-3de33dec1105","savedPayload":{"position":{"x":10180.91832187618,"y":11489.022185253545},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"38b0018b-d162-492e-90b3-604efc79c16e"}}},{"type":"Polygon Vertex","name":"-2-","id":"4a190301-2d52-49ae-a061-9bb553ea1c0f","savedPayload":{"position":{"x":10229.487357706232,"y":11409.369514204043},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"66a65473-db28-42bf-8491-3497a35cc42b"}}},{"type":"Polygon Vertex","name":"-3-","id":"f5a0eaa5-7837-4d60-8040-37f4353e3b27","savedPayload":{"position":{"x":10288.806371235347,"y":11338.81796836232},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"cb37189b-fdb7-4cd7-aa78-1dfd71c8e614"}}},{"type":"Polygon Vertex","name":"-4-","id":"13577516-ccb2-469f-9d59-f5bc71c16e77","savedPayload":{"position":{"x":10356.915208917773,"y":11277.45963608795},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"aae0a6cc-e05b-402f-800c-807df07b1f37"}}},{"type":"Polygon Vertex","name":"-5-","id":"9884c89e-fbb3-4101-b19f-0522b933175c","savedPayload":{"position":{"x":10433.13499988092,"y":11227.026027209664},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"a5f609bd-7162-4155-8778-d085b000ef04"}}},{"type":"Polygon Vertex","name":"-6-","id":"a089c901-705c-4b1a-bf29-fca8669ad902","savedPayload":{"position":{"x":10515.800630207897,"y":11188.449222250814},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"6edd83d4-739a-4651-9204-2a0f617e1256"}}},{"type":"Polygon Vertex","name":"-7-","id":"6a3d330f-6852-4cb0-80fe-72c3bf02aa31","savedPayload":{"position":{"x":10613.300853575201,"y":11160.109996005818},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"b98d1777-f3a2-4bcc-8312-6d89d1c6662e"}}}],"id":"ba0bcada-77c5-450e-a1fc-7708bcaca60b","savedPayload":{"position":{"x":10772.02987586426,"y":11806.085959361126},"targetPosition":{"x":11230.088306354333,"y":12194.214105362249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e0c63725-4cfb-4d1e-9b70-80343de2e9b3","savedPayload":{"position":{"x":11230.088306354333,"y":12194.214105362249},"targetPosition":{"x":11726.311308429293,"y":12000.002156669318},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Two-Candles Patterns","code":"{ \n\"codeName\": \"Two-Candles Patterns\"\n}","panelData":[{"type":"Panel Data","name":"Pattern Name","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.name","id":"6d2625d7-82c7-4186-95a7-8bfe0892446a","savedPayload":{"position":{"x":11282.2990000533,"y":11726.161646922197},"targetPosition":{"x":11535.512418924576,"y":11564.887805754493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f5538abe-a9aa-42ad-9c30-798dc41ddb80","savedPayload":{"position":{"x":11535.512418924576,"y":11564.887805754493},"targetPosition":{"x":11788.733371624632,"y":11403.513224859445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Direction","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trend","id":"7f273725-f758-4f3e-bc3a-d7d47f919c7a","savedPayload":{"position":{"x":11220.037908516686,"y":11209.153715114357},"targetPosition":{"x":11504.352857782778,"y":11306.304335360548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e819599-22c9-4acd-ac77-92f18b20cb61","savedPayload":{"position":{"x":11504.352857782778,"y":11306.304335360548},"targetPosition":{"x":11788.733371624632,"y":11403.513224859445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Forecast","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.forecast","id":"43090bdd-e415-48e8-ba75-4b80d4f0aeee","savedPayload":{"position":{"x":11586.129481188585,"y":10837.61793014342},"targetPosition":{"x":11687.410807177355,"y":11120.507471023042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"39649444-cba8-41d2-bb32-064f43cf8df4","savedPayload":{"position":{"x":11687.410807177355,"y":11120.507471023042},"targetPosition":{"x":11788.733371624632,"y":11403.513224859445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Method","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendMethod","id":"f7a45eca-7fe0-4837-b719-92e81fa0774d","savedPayload":{"position":{"x":12104.279119313203,"y":10892.061094636183},"targetPosition":{"x":11946.510748979814,"y":11147.737856386202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6cb4eef6-735b-409a-92c4-fe2b2e1e82be","savedPayload":{"position":{"x":11946.510748979814,"y":11147.737856386202},"targetPosition":{"x":11788.733371624632,"y":11403.513224859445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Period","code":"{\n \"valueDecimals\": 0\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","id":"75c3e3bd-c749-463d-bae4-296abf83f078","savedPayload":{"position":{"x":12385.01152304191,"y":11331.348876381158},"targetPosition":{"x":12086.880994256426,"y":11367.456255990743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4c31ec17-bf6c-4dfc-8f42-1e7fe7e77297","savedPayload":{"position":{"x":12086.880994256426,"y":11367.456255990743},"targetPosition":{"x":11788.733371624632,"y":11403.513224859445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Value","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendLine","id":"d9e33fbf-8990-4363-b674-f1ec7f71bfcd","savedPayload":{"position":{"x":12215.748183200936,"y":11824.340368643023},"targetPosition":{"x":12002.46074564505,"y":11613.906972541092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d4f75b19-1a90-48d8-b6fe-9f064505ae93","savedPayload":{"position":{"x":12002.46074564505,"y":11613.906972541092},"targetPosition":{"x":11788.733371624632,"y":11403.513224859445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6426039f-b3dc-443b-bf6a-faa1dd1e3f2c","savedPayload":{"position":{"x":11788.733371624632,"y":11403.513224859445},"targetPosition":{"x":11726.311308429293,"y":12000.002156669318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3bf46641-3478-41fd-8407-0af20e72f30b","savedPayload":{"position":{"x":11242.579324512362,"y":11851.939369699156},"targetPosition":{"x":11944.774819498161,"y":12362.05365917036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Three-Candles Patterns","code":"{ \n\"codeName\": \"Three-Candles Patterns\"\n}","shapes":{"type":"Shapes","name":"Three-Candles Patterns","chartPoints":[{"type":"Chart Points","name":"Bearish Arrow","points":[{"type":"Point","name":"-1-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bearishArrowHead*1.01","id":"050fd307-0763-423f-b0a7-488f1e22b2f0","savedPayload":{"position":{"x":11323.22312544964,"y":12398.77290242567},"targetPosition":{"x":11355.846289853453,"y":12100.317423764762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b20f834d-a9d0-419e-87ce-c9d56cdfe948","savedPayload":{"position":{"x":11355.846289853453,"y":12100.317423764762},"targetPosition":{"x":11420.877930333358,"y":11503.982415719443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.01","id":"ea09a04d-33f3-430d-9210-b60a0d93accf","savedPayload":{"position":{"x":10988.173987892253,"y":12293.359470804624},"targetPosition":{"x":11132.623775381358,"y":12029.93345933905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d119f364-4c32-4605-afcb-025e62d32f20","savedPayload":{"position":{"x":11132.623775381358,"y":12029.93345933905},"targetPosition":{"x":11420.877930333358,"y":11503.982415719443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.05","id":"c472d80d-ff4c-4bdf-af76-b8fb1c9dd3f5","savedPayload":{"position":{"x":10718.975254856272,"y":12067.705534662236},"targetPosition":{"x":10953.244304894615,"y":11879.595091179535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0e94de71-51dc-4d00-81fc-db6a47af48e9","savedPayload":{"position":{"x":10953.244304894615,"y":11879.595091179535},"targetPosition":{"x":11420.877930333358,"y":11503.982415719443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.05","id":"c851f754-5148-4d6c-abef-446f4dcbf95c","savedPayload":{"position":{"x":10556.586322739728,"y":11756.177469363914},"targetPosition":{"x":10845.051173261003,"y":11672.051259630229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"54f3f9d8-a0fd-489b-a280-5791c92afe4a","savedPayload":{"position":{"x":10845.051173261003,"y":11672.051259630229},"targetPosition":{"x":11420.877930333358,"y":11503.982415719443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.01","id":"305bea41-e179-499b-bff8-687f861b575a","savedPayload":{"position":{"x":10525.745074217419,"y":11406.81436868035},"targetPosition":{"x":10824.50657379665,"y":11439.198329378869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"75712c99-427f-4995-ad28-116f514f1b1d","savedPayload":{"position":{"x":10824.50657379665,"y":11439.198329378869},"targetPosition":{"x":11420.877930333358,"y":11503.982415719443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bearishArrowHead*1.01","id":"3fd2696f-e7e8-41f5-ae74-e757cb72b755","savedPayload":{"position":{"x":10631.124209494767,"y":11071.749322646681},"targetPosition":{"x":10894.737895024446,"y":11215.962561313583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"32a9e24a-ecbb-4272-868f-8a2c1131d780","savedPayload":{"position":{"x":10894.737895024446,"y":11215.962561313583},"targetPosition":{"x":11420.877930333358,"y":11503.982415719443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bearishArrowHead","id":"b02696af-5430-4311-a2b8-b7a69d5f085b","savedPayload":{"position":{"x":10867.949211062165,"y":10813.470283355004},"targetPosition":{"x":11044.961393591799,"y":11036.833646122217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"da13c2e7-5b21-44b3-98ef-e101a208cd82","savedPayload":{"position":{"x":11044.961393591799,"y":11036.833646122217},"targetPosition":{"x":11420.877930333358,"y":11503.982415719443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ed6c9b38-f0d8-49d8-b6e6-831ba4391e67","savedPayload":{"position":{"x":11420.37969691572,"y":11503.86735025911},"targetPosition":{"x":11996.288685770072,"y":11335.876531559219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Trend Line","points":[{"type":"Point","name":"Trend Line Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.trendLine\n","id":"8df901ad-9507-4c1b-aa66-e80e52142e64","savedPayload":{"position":{"x":11016.722031728412,"y":11454.378828646537},"targetPosition":{"x":11316.130511374482,"y":11343.228840785512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f05e403b-b940-4007-be9d-517cd5f5b761","savedPayload":{"position":{"x":11316.130511374482,"y":11343.228840785512},"targetPosition":{"x":11634.746916819295,"y":11224.7967380953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Trend Line End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.trendLine","id":"c790f239-fe7c-488c-a22c-ea82c2ea43f3","savedPayload":{"position":{"x":11123.976317395478,"y":10806.782956392311},"targetPosition":{"x":11370.717363619271,"y":11009.24532402787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e185278f-a45c-43e3-8691-6252e48809cc","savedPayload":{"position":{"x":11370.717363619271,"y":11009.24532402787},"targetPosition":{"x":11634.746916819295,"y":11224.7967380953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"30170318-2cab-4bb6-ad3b-362b5a25d245","savedPayload":{"position":{"x":11699.858996619034,"y":11286.736822449375},"targetPosition":{"x":11996.288685770072,"y":11335.876531559219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Bullish Arrow","points":[{"type":"Point","name":"-1-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bullishArrowHead*0.99","id":"91cd5c4e-6dc9-41f4-abba-e66c6d9c7c3e","savedPayload":{"position":{"x":10622.722060799468,"y":11421.307241331033},"targetPosition":{"x":10891.625071432056,"y":11250.994753964025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a9852c0f-8ac8-4b9d-ac29-e8d8f29da720","savedPayload":{"position":{"x":10891.625071432056,"y":11250.994753964025},"targetPosition":{"x":11428.37470788099,"y":10910.903506853843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.99","id":"99075b18-7979-4f15-915a-272a4debd949","savedPayload":{"position":{"x":10488.598236123893,"y":11073.923504266513},"targetPosition":{"x":10802.297353325306,"y":11019.557174673808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bb29fdb8-abfe-4377-9063-6790f2eb8d8f","savedPayload":{"position":{"x":10802.297353325306,"y":11019.557174673808},"targetPosition":{"x":11428.37470788099,"y":10910.903506853843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.94","id":"9ab43674-72c8-4525-8697-49cbf37785e0","savedPayload":{"position":{"x":10497.727053251536,"y":10702.345373796044},"targetPosition":{"x":10808.36473501717,"y":10771.960855075955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a46f8fdb-d00f-46f6-8ec9-3ef0166107ef","savedPayload":{"position":{"x":10808.36473501717,"y":10771.960855075955},"targetPosition":{"x":11428.37470788099,"y":10910.903506853843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.94","id":"cb153aae-7f46-4fbc-aa01-26f7193e8eaf","savedPayload":{"position":{"x":10648.465081528218,"y":10361.987151463314},"targetPosition":{"x":10908.81157590773,"y":10545.175423604298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2e60f4be-e8cc-4489-81f6-27fa3f61921b","savedPayload":{"position":{"x":10908.81157590773,"y":10545.175423604298},"targetPosition":{"x":11428.37470788099,"y":10910.903506853843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.99","id":"0b2f59a6-9de6-4ccd-81bc-28288491d705","savedPayload":{"position":{"x":10917.982222647839,"y":10105.243364118034},"targetPosition":{"x":11088.280310237424,"y":10374.161971966498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1740e52b-986e-49cf-bb3f-c373200c4449","savedPayload":{"position":{"x":11088.280310237424,"y":10374.161971966498},"targetPosition":{"x":11428.37470788099,"y":10910.903506853843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bullishArrowHead*0.99","id":"ee129388-9aec-4709-bf79-3a3b83fe769e","savedPayload":{"position":{"x":11265.239362694574,"y":9971.125616480742},"targetPosition":{"x":11319.681104897198,"y":10284.73143550902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c8b169eb-6d38-41ab-bc48-e5a08c6f9f45","savedPayload":{"position":{"x":11319.681104897198,"y":10284.73143550902},"targetPosition":{"x":11428.37470788099,"y":10910.903506853843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bullishArrowHead","id":"c58904a7-8615-4a27-bd74-1966b35e8924","savedPayload":{"position":{"x":11637.053653088271,"y":9980.249492741956},"targetPosition":{"x":11567.473909210032,"y":10290.876282666291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f5cee1fe-b34d-47e5-8d4a-26061487b242","savedPayload":{"position":{"x":11567.473909210032,"y":10290.876282666291},"targetPosition":{"x":11428.37470788099,"y":10910.903506853843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b8b4b3de-a98c-4d32-a385-61a186871641","savedPayload":{"position":{"x":11505.611569683755,"y":10990.706000633125},"targetPosition":{"x":11996.288685770072,"y":11335.876531559219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Bearish Arrow","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bearish Reversal\" || record.forecast === \"Bearish Continuation\" ","id":"4db8acef-2d4b-4e56-b319-d32b145c4fc1","savedPayload":{"position":{"x":11119.128095792617,"y":10944.30589967562},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","id":"da54ef22-f928-44a9-ba54-ddc157d6e2fd","savedPayload":{"position":{"x":10805.569639139107,"y":10755.57900249862},"targetPosition":{"x":11105.440095096237,"y":10774.203022515425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bd6aeeb9-f9ce-4289-84ee-b89e5bce37ed","savedPayload":{"position":{"x":11105.440095096237,"y":10774.203022515425},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","id":"e73e98ac-0abf-488c-88c7-5f218487754a","savedPayload":{"position":{"x":10857.94135517372,"y":10504.319824510389},"targetPosition":{"x":11140.326425888801,"y":10606.83889254854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"871328e3-7832-4dc2-8758-72612387f556","savedPayload":{"position":{"x":11140.326425888801,"y":10606.83889254854},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","id":"bc05844f-b3a3-4f25-8688-b555ff25cd31","savedPayload":{"position":{"x":11301.050977821582,"y":10366.359233076688},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"b20f834d-a9d0-419e-87ce-c9d56cdfe948"}}},{"type":"Polygon Vertex","name":"-2-","id":"a7f33d57-8a91-4bf6-a755-2f9572b02d0b","savedPayload":{"position":{"x":11371.1722624145,"y":10310.524995235808},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"d119f364-4c32-4605-afcb-025e62d32f20"}}},{"type":"Polygon Vertex","name":"-3-","id":"4f2d69c6-4919-44a1-b4f4-b11c4d07a8d5","savedPayload":{"position":{"x":11447.492241286429,"y":10267.014695489712},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"0e94de71-51dc-4d00-81fc-db6a47af48e9"}}},{"type":"Polygon Vertex","name":"-4-","id":"cae92b34-1055-4413-8521-b00838b6b3a1","savedPayload":{"position":{"x":11528.553759990715,"y":10235.52821971701},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"54f3f9d8-a0fd-489b-a280-5791c92afe4a"}}},{"type":"Polygon Vertex","name":"-5-","id":"26a5fbf5-1e3c-49a3-a80e-89a38760a6ce","savedPayload":{"position":{"x":11612.88523066173,"y":10216.204955748748},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"75712c99-427f-4995-ad28-116f514f1b1d"}}},{"type":"Polygon Vertex","name":"-6-","id":"85dd4fe1-e267-4e2c-8249-e5a4ad8ac57b","savedPayload":{"position":{"x":11698.894659071782,"y":10209.23251766486},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"32a9e24a-ecbb-4272-868f-8a2c1131d780"}}},{"type":"Polygon Vertex","name":"-7-","id":"0b35f295-6655-45ea-8050-3ea4d565b0a8","savedPayload":{"position":{"x":11799.939994389679,"y":10218.071780310376},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"da13c2e7-5b21-44b3-98ef-e101a208cd82"}}}],"id":"d6bca38f-dad2-4bad-b869-718840793911","savedPayload":{"position":{"x":11703.84184652783,"y":10811.247330102198},"targetPosition":{"x":11996.288685770072,"y":11335.876531559219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Trend Line","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\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}","id":"735def02-7235-4d8d-b742-2606e271785c","savedPayload":{"position":{"x":11434.031783580725,"y":10494.076725758625},"targetPosition":{"x":11671.890060263624,"y":10704.93803143185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1cb25c02-7f14-4290-a1dd-cdecfa3d41f1","savedPayload":{"position":{"x":11671.890060263624,"y":10704.93803143185},"targetPosition":{"x":11928.444303103635,"y":10958.74838780957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Trend Line End","id":"ca4b7aaa-e204-477b-917d-5b0d73dcd9ae","savedPayload":{"position":{"x":11906.522706605705,"y":10594.53477284026},"targetPosition":{"x":11928.444303103635,"y":10958.74838780957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line End","id":"e185278f-a45c-43e3-8691-6252e48809cc"}}},{"type":"Polygon Vertex","name":"Trend Line Begin","id":"1e9cb0f5-9153-4ebf-bea2-e4cdff34e27d","savedPayload":{"position":{"x":12145.984798752914,"y":10662.181312939032},"targetPosition":{"x":11928.444303103635,"y":10958.74838780957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line Begin","id":"f05e403b-b940-4007-be9d-517cd5f5b761"}}}],"id":"954cc880-be0c-444b-b810-ddf42e1d6d03","savedPayload":{"position":{"x":11978.403649318927,"y":11035.96342506963},"targetPosition":{"x":11996.288685770072,"y":11335.876531559219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Bullish Arrow","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bullish Reversal\" || record.forecast === \"Bullish Continuation\" ","id":"71c1088c-78e4-4b13-a432-48488e81f5a9","savedPayload":{"position":{"x":11692.554917196347,"y":10291.090417710408},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","id":"26a20027-9ab4-483f-8e8b-54c5feae8eb7","savedPayload":{"position":{"x":11642.115561638522,"y":9906.477084346494},"targetPosition":{"x":11824.629310498469,"y":10167.22023430977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"784e3863-e27c-439a-b219-d2257040f9a8","savedPayload":{"position":{"x":11824.629310498469,"y":10167.22023430977},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","id":"c87d6249-dfd9-4bfc-b6d5-1033dc34ab93","savedPayload":{"position":{"x":11884.802002959816,"y":9783.86423191742},"targetPosition":{"x":11986.280508726017,"y":10085.56687123808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c307cae0-1d47-4fbd-b17e-c71ed0b460a2","savedPayload":{"position":{"x":11986.280508726017,"y":10085.56687123808},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","id":"01f59ec4-922f-4f32-89ff-271b4a1715ff","savedPayload":{"position":{"x":12294.252799338366,"y":10060.7280535677},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"a9852c0f-8ac8-4b9d-ac29-e8d8f29da720"}}},{"type":"Polygon Vertex","name":"-2-","id":"63a0a7cf-0e25-4c76-a647-7bce1cf8349d","savedPayload":{"position":{"x":12385.026289073689,"y":10082.266763057805},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"bb29fdb8-abfe-4377-9063-6790f2eb8d8f"}}},{"type":"Polygon Vertex","name":"-3-","id":"34336858-138b-4d29-8e19-963f987eeb7a","savedPayload":{"position":{"x":12470.562647038838,"y":10116.664251173223},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"a46f8fdb-d00f-46f6-8ec9-3ef0166107ef"}}},{"type":"Polygon Vertex","name":"-4-","id":"41b893b7-8450-497e-a10e-378e2aad4f86","savedPayload":{"position":{"x":12549.705420679315,"y":10162.871690624499},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"2e60f4be-e8cc-4489-81f6-27fa3f61921b"}}},{"type":"Polygon Vertex","name":"-5-","id":"b298e992-97da-4b07-b1b5-2419ef56b05a","savedPayload":{"position":{"x":12621.14538227319,"y":10219.833486475736},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"1740e52b-986e-49cf-bb3f-c373200c4449"}}},{"type":"Polygon Vertex","name":"-6-","id":"c38d5012-bbf9-4b31-916a-e98a2557f2c3","savedPayload":{"position":{"x":12683.579723535302,"y":10286.353118900364},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"c8b169eb-6d38-41ab-bc48-e5a08c6f9f45"}}},{"type":"Polygon Vertex","name":"-7-","id":"fd3144a6-1558-42b5-82d8-54975ee48863","savedPayload":{"position":{"x":12740.522915933889,"y":10370.39277722574},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"f5cee1fe-b34d-47e5-8d4a-26061487b242"}}}],"id":"f8d58d58-6d2e-454f-ae56-4f57ab357a85","savedPayload":{"position":{"x":12223.891295761274,"y":10780.059084585857},"targetPosition":{"x":11996.288685770072,"y":11335.876531559219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"01e600b6-8d17-4ea5-bb31-30308e68433e","savedPayload":{"position":{"x":11996.288685770072,"y":11335.876531559219},"targetPosition":{"x":12397.657402922323,"y":11781.568320022714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Three-Candles Patterns","code":"{ \n\"codeName\": \"Three-Candles Patterns\"\n}","panelData":[{"type":"Panel Data","name":"Pattern Name","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.name","id":"5a0d3dea-2329-4eb2-8c13-a112d1f03368","savedPayload":{"position":{"x":12520.225192568534,"y":11274.495236933637},"targetPosition":{"x":12752.031876878431,"y":11465.487959759146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b719d3b-612d-4978-bde8-a748068d4366","savedPayload":{"position":{"x":12752.031876878431,"y":11465.487959759146},"targetPosition":{"x":12984.005202484354,"y":11656.548224762046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Direction","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trend","id":"9d7f27b8-56b3-4b97-a3b4-1687a546f367","savedPayload":{"position":{"x":12992.798571351457,"y":11055.225497182697},"targetPosition":{"x":12988.381012769514,"y":11355.809115148824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bdf5aa9a-a121-4275-969e-5eed6ebd878d","savedPayload":{"position":{"x":12988.381012769514,"y":11355.809115148824},"targetPosition":{"x":12984.005202484354,"y":11656.548224762046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Forecast","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.forecast","id":"04bc641a-62a0-4441-b4d5-58fa30fe413e","savedPayload":{"position":{"x":13459.347048368,"y":11288.32697847158},"targetPosition":{"x":13221.660400327579,"y":11472.36407937657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6ddacd18-8603-4112-bd00-80fe0cb03dcb","savedPayload":{"position":{"x":13221.660400327579,"y":11472.36407937657},"targetPosition":{"x":12984.005202484354,"y":11656.548224762046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Method","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendMethod","id":"3b43a0f7-d76f-4b8a-8228-9b0282826022","savedPayload":{"position":{"x":13568.094005273182,"y":11796.631855760772},"targetPosition":{"x":13275.698912066033,"y":11726.80305203203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"950a394b-df06-4b90-88fc-b59cb3cc1cb5","savedPayload":{"position":{"x":13275.698912066033,"y":11726.80305203203},"targetPosition":{"x":12984.005202484354,"y":11656.548224762046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Period","code":"{\n \"valueDecimals\": 0\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","id":"2b0825d5-9e69-4b0a-861a-c88870b859c4","savedPayload":{"position":{"x":13235.632770919176,"y":12200.615384520046},"targetPosition":{"x":13109.834091389432,"y":11928.5188774151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"63fbe7e3-b323-40ea-bfdc-0aac0df03c0f","savedPayload":{"position":{"x":13109.834091389432,"y":11928.5188774151},"targetPosition":{"x":12984.005202484354,"y":11656.548224762046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Value","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendLine","id":"e838b1bb-2079-479e-b85a-38019fca078d","savedPayload":{"position":{"x":12714.895621827774,"y":12192.691719649098},"targetPosition":{"x":12849.570038510854,"y":11924.688453015544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f36e0123-4262-45d3-8e18-699407c0bb78","savedPayload":{"position":{"x":12849.570038510854,"y":11924.688453015544},"targetPosition":{"x":12984.005202484354,"y":11656.548224762046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1f14d068-2fc4-42b5-8edf-7d552f50d1ed","savedPayload":{"position":{"x":12984.005202484354,"y":11656.548224762046},"targetPosition":{"x":12397.657402922323,"y":11781.568320022714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"acdb9c43-0859-42be-87b0-1a600cf513d4","savedPayload":{"position":{"x":12212.794578909132,"y":11536.541369818186},"targetPosition":{"x":11944.774819498161,"y":12362.05365917036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e10e4374-b30c-4974-b2ff-bd789f50fde2","savedPayload":{"position":{"x":11944.774819498161,"y":12362.05365917036},"targetPosition":{"x":12813.422748313864,"y":12362.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"38d04c99-51a6-4c1c-853e-ba67e216854b","savedPayload":{"position":{"x":12813.422748313864,"y":12362.02928226611},"targetPosition":{"x":12813.422748313864,"y":12362.02928226611},"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/Includes/Workspaces/WHB-BBTB-Paper Trading.json b/Includes/Workspaces/WHB-BBTB-Paper Trading.json new file mode 100644 index 000000000..d6ef32862 --- /dev/null +++ b/Includes/Workspaces/WHB-BBTB-Paper Trading.json @@ -0,0 +1 @@ +{"type":"Workspace","name":"Binance - WHB - BBTB","rootNodes":[{"type":"Network","name":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","code":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34247\", \n\"webSocketsPort\": \"8080\"\n}","dataStorage":{"type":"Data Storage","name":"New Data Storage","dataMinesData":{"type":"Data Mines Data","name":"New Data Mines Data","exchangeDataProducts":[{"type":"Exchange Data Products","name":"Binance","marketDataProducts":[{"type":"Market Data Products","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"dd7c8795-bb24-4438-9d77-b37a9000ad7f","savedPayload":{"position":{"x":39655.39345377463,"y":28084.121285348076},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"98e6c917-f4b7-4b71-9215-de3ccaf3dc0c","savedPayload":{"position":{"x":39619.08803001109,"y":27971.34006849996},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"1d7dd537-5f6f-4eb2-8e56-ddba0aef720f","savedPayload":{"position":{"x":39594.11393185164,"y":27855.840877332517},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"221c8d22-8a7f-4014-a7ed-0bafc886b123","savedPayload":{"position":{"x":39580.59887306321,"y":27738.507421368748},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"6929ebe7-6486-4299-add5-ed0282500d91","savedPayload":{"position":{"x":39578.655464896365,"y":27620.63069875915},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"4a3ed8eb-a73e-4fb4-835a-681cf47d7373","savedPayload":{"position":{"x":39588.297198778826,"y":27502.946480135615},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"5ffc6a67-e33b-422b-8e36-f9711f93c723","savedPayload":{"position":{"x":39609.428887621216,"y":27386.77785099828},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"48f7953c-f62d-4292-b042-d1ac05f8f80f","savedPayload":{"position":{"x":39641.84608404141,"y":27273.24280350331},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"3b9a3c93-6d41-440e-89a2-2fd1b2dde603","savedPayload":{"position":{"x":39685.2360649887,"y":27163.433854438405},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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","id":"70401ea0-3fed-4e40-8bba-a1e5adce9b8c","savedPayload":{"position":{"x":39739.18066448831,"y":27058.407968059906},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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","id":"06ac8eb7-8b14-42b1-9e2e-466280ade032","savedPayload":{"position":{"x":39803.16019594351,"y":26959.1762369918},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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":"Popular EMAs","id":"014bba70-64d4-4035-b06d-145ee9b4c54c","savedPayload":{"position":{"x":39876.55840037216,"y":26866.694054096202},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"768cc06c-6fdf-491a-a741-5e08f0e25e38","savedPayload":{"position":{"x":39958.66834477317,"y":26781.851861425766},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"40794460-b815-498f-a245-e677de0eed86","savedPayload":{"position":{"x":40048.69920292061,"y":26705.466552453436},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"7ccbd0c1-c804-47e3-9314-14cbb756c806","savedPayload":{"position":{"x":40145.78385240617,"y":26638.273605375165},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"728d6f08-086f-41ba-9126-30ec56a45ea5","savedPayload":{"position":{"x":40248.98721974834,"y":26580.920017944973},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"1510fd36-633e-40a7-adbe-680660d64bd0","savedPayload":{"position":{"x":40357.31529765827,"y":26533.95809992029},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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":"Base5 SMAs","id":"2404b1eb-c7c9-46e7-b22a-93cfcc3739f4","savedPayload":{"position":{"x":40469.72474382882,"y":26497.840166222424},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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":"Bollinger Channels","id":"d83476c3-2f0b-4d4a-abb2-0e47ed0a421d","savedPayload":{"position":{"x":40585.132955318084,"y":26472.914171771416},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"0428f20b-9620-480e-a531-dbb2e5f59ef4","savedPayload":{"position":{"x":40702.42850753783,"y":26459.42033593334},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"fcfec9fa-1a0d-4285-9fad-4a23409f88ed","savedPayload":{"position":{"x":40820.28557415008,"y":26457.488926076465},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"08f223a8-9707-4c45-b638-1fe0e4a2b053","savedPayload":{"position":{"x":40937.95845139182,"y":26467.13880986452},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"66f1a9be-fe96-48c3-91e4-500c6e246423","savedPayload":{"position":{"x":41054.120384899,"y":26488.277064496815},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"e432c706-cbcd-4af0-b23c-b18e5b29377a","savedPayload":{"position":{"x":41167.65178678811,"y":26520.700545782674},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"7f2dfd8e-de4a-4bd1-8d34-27581f1a3ed8","savedPayload":{"position":{"x":41277.4594798642,"y":26564.097566374792},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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","id":"595d148f-6cdf-48d3-ab8f-23fba0052631","savedPayload":{"position":{"x":41382.48641024106,"y":26618.051155654128},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"2045098a-e9b4-4409-9fd9-ee7285d9b7cf","savedPayload":{"position":{"x":41481.72199276818,"y":26682.043494609432},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"295bd09d-e868-4e8b-9944-39bf6e0d7951","savedPayload":{"position":{"x":41574.21247985582,"y":26755.461785010735},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"ba6f23d4-c2e7-41b4-88a0-e14ebb34e21c","savedPayload":{"position":{"x":41659.072595416554,"y":26837.602086697607},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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"}}},{"type":"Data Product","name":"Resistances","id":"0669d924-aace-46d1-b126-ccced8fd33cf","savedPayload":{"position":{"x":41734.78246123321,"y":26926.742016325188},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Resistances","id":"7a734501-a0fb-4305-803e-7e95d477c513"}}},{"type":"Data Product","name":"Supports","id":"5e7a0e50-e6ed-4106-8025-8b35ad6c597c","savedPayload":{"position":{"x":41803.59685318991,"y":27026.194745818015},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Supports","id":"bc3c43de-6312-47d4-ae3d-0c95c1b039e0"}}}],"id":"cbdd3605-b905-453f-9ecb-e986cb2729f9","savedPayload":{"position":{"x":24207.999751769254,"y":28942.4248575682},"targetPosition":{"x":25074.611669244932,"y":29722.715919865514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}}],"id":"7f87ecc6-8dd3-42e9-9217-1579b64aae75","savedPayload":{"position":{"x":25074.725705182926,"y":29722.361915324287},"targetPosition":{"x":25508.405506167062,"y":30112.915970947008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"bf04ccea-266d-4115-b50e-fefdf29b873a","savedPayload":{"position":{"x":25508.405506167062,"y":30112.915970947008},"targetPosition":{"x":25942.043094058594,"y":30503.50687445451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"i"}}},"tradingMinesData":{"type":"Trading Mines Data","name":"New Trading Mines Data","exchangeTradingProducts":[{"type":"Exchange Trading Products","name":"Binance","sessionReferences":[{"type":"Session Reference","name":"Back WHB ","marketDataProducts":{"type":"Market Data Products","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"573fb46f-78d2-4bf3-ad11-e42d2531d53e","savedPayload":{"position":{"x":40971.62547458223,"y":28704.67815778764},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"39d7a06d-5aad-4b03-8778-e4df8dacc825","savedPayload":{"position":{"x":40739.2805936536,"y":28612.68448755448},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"7af9d35c-7464-4ed5-9ee6-ccf7a9943894","savedPayload":{"position":{"x":40648.47472250254,"y":28380.33960662585},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"82b46974-7a93-4066-a3b7-378b42710364","savedPayload":{"position":{"x":40749.374350272024,"y":28158.088482315645},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"109e30d5-c839-4e20-8744-2e4dc002f3a8","savedPayload":{"position":{"x":40971.62547458223,"y":28380.33960662585},"targetPosition":{"x":41034.51136563778,"y":28696.544935681453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"3792a579-2f2c-4c29-9cb1-05e2683db5da","savedPayload":{"position":{"x":25442.41940134145,"y":28898.292141318674},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"f32f1cdc-425f-4193-a43b-be9312c74234"}}},{"type":"Session Reference","name":"Paper WHB ","marketDataProducts":{"type":"Market Data Products","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"63636068-307e-4cea-b31f-f47e106cea2c","savedPayload":{"position":{"x":41557.474267378886,"y":28704.538380895512},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"20848048-8efb-47b1-aaf0-789d2f6c5b1d","savedPayload":{"position":{"x":41328.36437304013,"y":28614.669001956987},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"87b74841-4f6a-4658-b01b-7feb254b5d2f","savedPayload":{"position":{"x":41238.701960314706,"y":28385.55910761823},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"5e28998c-b35f-4cc0-9fd6-8ee5f5714545","savedPayload":{"position":{"x":41328.657032916315,"y":28156.74187315566},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"12cd1cb4-f163-4d1b-8955-cae6904831c7","savedPayload":{"position":{"x":41557.474267378886,"y":28385.55910761823},"targetPosition":{"x":41536.37709492533,"y":28707.266395142844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"5f2e9d8a-f1df-4efd-8232-718818cab630","savedPayload":{"position":{"x":25645.811186643416,"y":28672.384434673422},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"2198ec50-3d31-43b7-a57d-e386bef38a93"}}},{"type":"Session Reference","name":"Live Trading WHB ","marketDataProducts":{"type":"Market Data Products","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"af19e56c-eaf1-4b0b-93f9-74b9ac1843c2","savedPayload":{"position":{"x":42124.2954678251,"y":28863.166820214137},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"30ac52a8-ee50-439c-83c8-df75ab49374a","savedPayload":{"position":{"x":41899.82203310804,"y":28765.34236295704},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"c35fa0be-6e51-4d14-9a52-6b0174cc1aab","savedPayload":{"position":{"x":41803.41381185934,"y":28540.86892823998},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"6a059555-2555-4c7f-a722-2ab4ca0440c5","savedPayload":{"position":{"x":41897.44019113757,"y":28314.01365155245},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"863885a8-2351-4b29-9f2e-ae3aeda223fc","savedPayload":{"position":{"x":42124.2954678251,"y":28540.86892823998},"targetPosition":{"x":42020.66210112073,"y":28846.1629818523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"ee314903-8ee9-4068-8a90-9452c460b910","savedPayload":{"position":{"x":25914.176401881115,"y":28529.692846346756},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"5335fd67-ebdc-4cfd-936d-b76af957713e"}}},{"type":"Session Reference","name":"Fwd WHB ","marketDataProducts":{"type":"Market Data Products","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"5919a710-a950-4049-9605-3f127b7fac6b","savedPayload":{"position":{"x":42492.63963403888,"y":28500.7397102676},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"c7030a88-152f-421c-8b32-66f3c222286a","savedPayload":{"position":{"x":42710.36396962775,"y":28492.07047492605},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"f4b18249-5044-4b34-83f7-3cedbbe939c5","savedPayload":{"position":{"x":42891.7169300037,"y":28613.377753949273},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"25db80e6-c4cf-4568-98d3-0cba83625ece","savedPayload":{"position":{"x":42967.139262708275,"y":28818.147267745622},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"9b6e94d5-442d-4882-beb6-6b616adb24a7","savedPayload":{"position":{"x":42636.198275976094,"y":28799.555013396635},"targetPosition":{"x":42436.14135357761,"y":29099.04809298164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"3892574a-ebe9-4d4d-8e79-02e6f0900c44","savedPayload":{"position":{"x":26214.957290034235,"y":28487.39268280673},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Forward Testing Session","name":"Fwd WHB","id":"0e7edb98-38ff-4516-89a1-188030989ddc"}}},{"type":"Session Reference","name":"Back BBTB Binance BTC/USDT","marketDataProducts":{"type":"Market Data Products","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"653622df-b35b-4c72-9b1d-cbbea2d45a93","savedPayload":{"position":{"x":26455.573591725715,"y":27743.761762864735},"targetPosition":{"x":26685.903141314688,"y":28119.50039190219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"bcd39fee-3584-4e3a-b524-05ecb62d4582","savedPayload":{"position":{"x":26718.02998233403,"y":27678.207255468882},"targetPosition":{"x":26685.903141314688,"y":28119.50039190219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"aa60feec-3e11-4509-ab4f-5eac17ea7d3b","savedPayload":{"position":{"x":26969.002379074984,"y":27779.578235462006},"targetPosition":{"x":26685.903141314688,"y":28119.50039190219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"d6a48300-ab24-4b7b-8fb1-b431e389c7d1","savedPayload":{"position":{"x":27112.390627347257,"y":28009.145745126465},"targetPosition":{"x":26685.903141314688,"y":28119.50039190219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"1a28b5a4-fd4e-4911-a195-3a27cac67cd9","savedPayload":{"position":{"x":26685.903141314688,"y":28119.50039190219},"targetPosition":{"x":26511.90768779935,"y":28550.735424728384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"894fe28c-55f0-4ce7-a61f-31b7a58036b0","savedPayload":{"position":{"x":26512.25277222365,"y":28550.5818725418},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"Back BBTB","id":"5d72321e-97e7-404f-8272-809dbbf4db35"}}},{"type":"Session Reference","name":"Paper BBTB Binance BTC/USDT","marketDataProducts":{"type":"Market Data Products","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"2004d488-ba55-478c-afa4-c00a555bf34c","savedPayload":{"position":{"x":26971.216338450067,"y":27957.810135682634},"targetPosition":{"x":27062.315598951875,"y":28386.268950715483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"7859d024-817a-4059-8a17-86690194f9de","savedPayload":{"position":{"x":27240.2554163473,"y":27986.018658800323},"targetPosition":{"x":27062.315598951875,"y":28386.268950715483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"11af0867-3396-48d4-b794-9d133d2d2416","savedPayload":{"position":{"x":27441.353895746524,"y":28167.02459841552},"targetPosition":{"x":27062.315598951875,"y":28386.268950715483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"dd541e63-8071-4b0f-8eb8-5fd50ef3eb82","savedPayload":{"position":{"x":27497.330846318662,"y":28431.383320855293},"targetPosition":{"x":27062.315598951875,"y":28386.268950715483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"778e7f94-7cf1-43a2-8843-2faca50fd6b2","savedPayload":{"position":{"x":27062.315598951875,"y":28386.268950715483},"targetPosition":{"x":26769.67959034035,"y":28711.749779677113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"fdfa0714-e7cc-4833-8623-2366fc36e275","savedPayload":{"position":{"x":26770.006560596325,"y":28711.63882050236},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Paper Trading Session","name":"Paper BBTB","id":"a70b66f2-4d79-4ab0-8a84-cb47fd872b79"}}},{"type":"Session Reference","name":"Live Trading BBTB Binance BTC/USDT","marketDataProducts":{"type":"Market Data Products","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"84c5619b-c379-4bed-bd1c-3dccfc840fa7","savedPayload":{"position":{"x":27403.685124941287,"y":28311.811214135712},"targetPosition":{"x":27342.982549435495,"y":28745.594465055852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"9cd0c0da-e0df-4b83-a7f5-7e503f050020","savedPayload":{"position":{"x":27646.983850070956,"y":28430.393602867665},"targetPosition":{"x":27342.982549435495,"y":28745.594465055852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"8681f8d9-c6fa-4966-aa76-e627000962cb","savedPayload":{"position":{"x":27773.915926630965,"y":28669.291142164537},"targetPosition":{"x":27342.982549435495,"y":28745.594465055852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"05aa1029-fde5-4240-b5ef-31636ed817ee","savedPayload":{"position":{"x":27735.959746783006,"y":28937.181489181425},"targetPosition":{"x":27342.982549435495,"y":28745.594465055852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"c966a877-9552-4b7c-9b12-f6cbf5e631d6","savedPayload":{"position":{"x":27342.982549435495,"y":28745.594465055852},"targetPosition":{"x":26956.711147228187,"y":28951.208113208817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"9576879e-2a52-4224-b082-6d8f0a25424f","savedPayload":{"position":{"x":26957.130045686332,"y":28951.141808070486},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Live Trading Session","name":"Live Trading BBTB","id":"ef82a64d-7c70-48d5-868a-09acf97e5289"}}},{"type":"Session Reference","name":"Fwd BBTB Binance BTC/USDT","marketDataProducts":{"type":"Market Data Products","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"3713af17-7ed8-4d32-abbb-66be7ba3d95b","savedPayload":{"position":{"x":27689.20756476676,"y":28792.01762932115},"targetPosition":{"x":27483.76587740709,"y":29178.885493436097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"8206a3c4-7a92-4f52-aa29-d0b912511e94","savedPayload":{"position":{"x":27877.30263666776,"y":28986.652324934446},"targetPosition":{"x":27483.76587740709,"y":29178.885493436097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"35c51f59-d967-4fb9-bf3d-ebef155fe90a","savedPayload":{"position":{"x":27914.92862485214,"y":29254.298693059718},"targetPosition":{"x":27483.76587740709,"y":29178.885493436097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"82cb4b63-c7ed-4e1c-b558-5caf08e7840e","savedPayload":{"position":{"x":27787.524400010894,"y":29492.93889701325},"targetPosition":{"x":27483.76587740709,"y":29178.885493436097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"b07b8215-91b7-4cdf-b0c9-f6de319d98af","savedPayload":{"position":{"x":27483.76587740709,"y":29178.885493436097},"targetPosition":{"x":27050.43363927934,"y":29240.015942621932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"f28418b1-30c9-4f12-9162-b483ed79adf9","savedPayload":{"position":{"x":27051.047858882026,"y":29240.240033953312},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Forward Testing Session","name":"Fwd BBTB","id":"7b91c25c-ac96-4c3c-9e79-17c262f17180"}}}],"id":"5b3343c9-3fab-46ec-92e3-9c074759a112","savedPayload":{"position":{"x":26184.524152752183,"y":29361.71743417283},"targetPosition":{"x":26063.272886633127,"y":29932.60782590063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"29ca14e5-dabe-470a-be64-ed7996bd1e55","savedPayload":{"position":{"x":26063.272886633127,"y":29932.60782590063},"targetPosition":{"x":25942.043094058594,"y":30503.50687445451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0726a9e4-23b6-4d27-a8de-e91a9665a8ba","savedPayload":{"position":{"x":25941.60968395914,"y":30503.712197202494},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"d"}}},"dataMining":{"type":"Data Mining","name":"New Data Mining","exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Masters BTC/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"b1a110d4-ac93-402d-8465-a35a835d0c22","savedPayload":{"position":{"x":26295.883180649682,"y":28781.02071571988},"targetPosition":{"x":26497.222428934132,"y":28992.954328293225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"fa3aae08-61b3-4a35-af20-c1242b9954c8","savedPayload":{"position":{"x":26497.222428934132,"y":28992.954328293225},"targetPosition":{"x":26698.686701323943,"y":29204.867065588183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"e61db3ab-b80d-4575-8da1-5598e0b1b525","savedPayload":{"position":{"x":26698.686701323943,"y":29204.867065588183},"targetPosition":{"x":26900.400112353815,"y":29416.82711146725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"160f8edd-29cf-40c2-bb21-5f569d97f9d1","savedPayload":{"position":{"x":26900.400112353815,"y":29416.82711146725},"targetPosition":{"x":27303.082032029302,"y":29840.118738367644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"22df3948-2a73-4ca6-a927-4b722dbb27dc","savedPayload":{"position":{"x":26644.45974747229,"y":28548.554481944204},"targetPosition":{"x":26816.384758751177,"y":28785.12135425244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"5324b18d-e2b0-495e-94a0-cfc3f3473766","savedPayload":{"position":{"x":26816.384758751177,"y":28785.12135425244},"targetPosition":{"x":26988.358298338662,"y":29021.66046932211},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"d7e0c235-4024-4888-86ba-32cf5c73b852","savedPayload":{"position":{"x":26896.499168167244,"y":28149.837121509467},"targetPosition":{"x":26942.377588467076,"y":28585.66629249468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"02adb2d3-1740-4f42-975e-e0365e308b97","savedPayload":{"position":{"x":26942.377588467076,"y":28585.66629249468},"targetPosition":{"x":26988.358298338662,"y":29021.66046932211},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"ccf1813f-31d2-4359-88ce-8c8e6132f222","savedPayload":{"position":{"x":26988.358298338662,"y":29021.66046932211},"targetPosition":{"x":27093.434632225042,"y":29294.809817955294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b55a2f7e-354e-47ce-8986-a4a0079efe2b","savedPayload":{"position":{"x":27093.434632225042,"y":29294.809817955294},"targetPosition":{"x":27303.082032029302,"y":29840.118738367644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"89bf947b-a245-4aad-a2fa-472ad6f8fd2e","savedPayload":{"position":{"x":27189.007070173757,"y":28394.628683967607},"targetPosition":{"x":27257.189858102716,"y":28679.07241420818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"df74508f-a106-4190-83ae-8c43455cd889","savedPayload":{"position":{"x":27257.189858102716,"y":28679.07241420818},"targetPosition":{"x":27325.42525358709,"y":28963.47675137435},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"441d958c-4ebf-4cc5-b49e-cdaf3802efc3","savedPayload":{"position":{"x":27573.93948456691,"y":28122.727349099685},"targetPosition":{"x":27449.67837159323,"y":28543.00784031277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"daf27799-58cb-480a-832b-4e3404882961","savedPayload":{"position":{"x":27449.67837159323,"y":28543.00784031277},"targetPosition":{"x":27325.42525358709,"y":28963.47675137435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"b1b31e7e-12f8-45fd-9508-cb82030d7507","savedPayload":{"position":{"x":27325.42525358709,"y":28963.47675137435},"targetPosition":{"x":27318.04771096425,"y":29256.090207341334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"52b4b8db-0336-423c-9343-5353225b4bfb","savedPayload":{"position":{"x":27318.04771096425,"y":29256.090207341334},"targetPosition":{"x":27303.082032029302,"y":29840.118738367644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f7457cf6-bcdc-48e1-b6e2-b45de382bc37","savedPayload":{"position":{"x":27750.59008771799,"y":28461.011883914747},"targetPosition":{"x":27704.890336736928,"y":28749.968449995053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"5a6b7843-090c-4b3b-9be4-ed8c8d1f6935","savedPayload":{"position":{"x":27704.890336736928,"y":28749.968449995053},"targetPosition":{"x":27659.265537524494,"y":29038.892445996626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"e78c5425-7d77-47c5-bb63-db88cad6e060","savedPayload":{"position":{"x":28210.57800543983,"y":28357.190791083507},"targetPosition":{"x":27934.9127248574,"y":28697.97601481323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"4c5ed30f-d600-44e2-ac14-33ce0528178e","savedPayload":{"position":{"x":27934.9127248574,"y":28697.97601481323},"targetPosition":{"x":27659.265537524494,"y":29038.892445996626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"b4fb4df9-2d6e-4c0a-8eb5-d1bd78232d0d","savedPayload":{"position":{"x":27659.265537524494,"y":29038.892445996626},"targetPosition":{"x":27540.451050111034,"y":29306.356831327645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"aacffa8c-5a19-423f-b551-0f9a5c46a628","savedPayload":{"position":{"x":27540.451050111034,"y":29306.356831327645},"targetPosition":{"x":27303.082032029302,"y":29840.118738367644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"7af918d3-d9a4-4553-9b3d-12224b4ad938","savedPayload":{"position":{"x":28245.174909819263,"y":28766.904509828622},"targetPosition":{"x":28091.2278106834,"y":28986.952429924397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"0d8ca3f1-31af-40e4-8f43-4dacc8950dff","savedPayload":{"position":{"x":28091.2278106834,"y":28986.952429924397},"targetPosition":{"x":27938.73044929597,"y":29236.34314519764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f11fe52f-ba3f-486d-93f2-a6b82fa67c2d","savedPayload":{"position":{"x":28718.945795488988,"y":28822.516728436756},"targetPosition":{"x":28333.864281860973,"y":29031.952283085076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"ba74160c-2b59-497a-b895-4ddade53f72e","savedPayload":{"position":{"x":28333.864281860973,"y":29031.952283085076},"targetPosition":{"x":27938.73044929597,"y":29236.34314519764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":true,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"3a93a6a1-0d2e-475b-874e-8784dc4b6c78","savedPayload":{"position":{"x":27938.73044929597,"y":29236.34314519764},"targetPosition":{"x":27726.62465987292,"y":29437.897749686173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"9843b9dd-ff8e-4cef-b063-730b0317420d","savedPayload":{"position":{"x":27726.62465987292,"y":29437.897749686173},"targetPosition":{"x":27303.082032029302,"y":29840.118738367644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"da37aa9d-a68c-49eb-be66-5fcc1a13ab69","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"abae0d8d-c44c-4825-b6ad-aabad604ba2d","savedPayload":{"position":{"x":28394.53872961677,"y":29420.62786332786},"targetPosition":{"x":28121.319348218272,"y":29525.417752214318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"f33858b9-8561-4f70-ba70-d8d168786321","savedPayload":{"position":{"x":28121.319348218272,"y":29525.417752214318},"targetPosition":{"x":27848.09286525633,"y":29630.41216377752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"64e8f70e-829c-47cd-b933-f4e4dd0c90fc","savedPayload":{"position":{"x":27848.09286525633,"y":29630.41216377752},"targetPosition":{"x":27303.082032029302,"y":29840.118738367644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Resistances & Supports","bot":{"type":"Indicator Bot Instance","name":"Resistances & Supports","code":" {\n \"repo\": \"\"\n }","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"5e0f86e6-2a43-49c2-a347-7203f0867c2d","savedPayload":{"position":{"x":29011.52718735605,"y":29677.41573263354},"targetPosition":{"x":28585.083084291266,"y":29779.557601835302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"f9f341a9-ba04-4c03-8f3b-249e72681562","savedPayload":{"position":{"x":28585.083084291266,"y":29779.557601835302},"targetPosition":{"x":28159.021356724304,"y":29882.033674231632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"5d9b2729-43fb-4e7e-aa4f-b8477c424e51"}}},{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"9974d57e-33ac-4fcf-ad75-35a8c4dc549e","savedPayload":{"position":{"x":28720.015724301054,"y":30047.848625422554},"targetPosition":{"x":28439.576021517783,"y":29964.85029882945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"9c93e98f-e166-4c8d-a9d7-08ada9c68eeb","savedPayload":{"position":{"x":28439.576021517783,"y":29964.85029882945},"targetPosition":{"x":28159.021356724304,"y":29882.033674231632},"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":"be19d91b-9337-4f84-96b3-f4e54ea12df5"}}}],"id":"88a4c3b6-e148-47e8-91b2-bf72bb167dc5","savedPayload":{"position":{"x":28159.021356724304,"y":29882.033674231632},"targetPosition":{"x":27866.35245532622,"y":29874.794424807704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c9dc449-6a37-4f34-8984-13aafed439fc","savedPayload":{"position":{"x":27866.35245532622,"y":29874.794424807704},"targetPosition":{"x":27303.082032029302,"y":29840.118738367644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ea242bf3-f7e6-431a-ab41-e022cb3ac6df","savedPayload":{"position":{"x":27303.082032029302,"y":29840.118738367644},"targetPosition":{"x":27066.080859135393,"y":30373.26277782218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta BTC/USDT","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"08b275d2-c921-49d0-a88d-5669df5c17e0","savedPayload":{"position":{"x":28241.845428201705,"y":28663.44944919631},"targetPosition":{"x":28242.430327677328,"y":28985.435432006685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"a5449b25-a98e-4fa4-87eb-5f60b967770a","savedPayload":{"position":{"x":28242.430327677328,"y":28985.435432006685},"targetPosition":{"x":28251.366125504286,"y":29282.618619527882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"287d4ba4-1404-4256-bdbb-cf2c970e5269","savedPayload":{"position":{"x":29262.888499407756,"y":28698.749245477964},"targetPosition":{"x":28757.267916115878,"y":28990.695347648223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"05fb2b7e-6704-4f05-b12b-b590101e5ca9","savedPayload":{"position":{"x":28757.267916115878,"y":28990.695347648223},"targetPosition":{"x":28251.366125504286,"y":29282.618619527882},"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":"f6dc278d-5a5c-4cba-b513-f0660a9f492d","savedPayload":{"position":{"x":28251.366125504286,"y":29282.618619527882},"targetPosition":{"x":27959.043137231773,"y":29788.39353206373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a15b5f86-52c2-4a22-9dd9-311d981601ba","savedPayload":{"position":{"x":27959.043137231773,"y":29788.39353206373},"targetPosition":{"x":27646.483205424855,"y":30312.68782112075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f8ea11d8-7b32-4ed0-968d-a20df0b49d7f","savedPayload":{"position":{"x":29058.123323616346,"y":29365.592035520756},"targetPosition":{"x":28886.085221923953,"y":29601.940279691247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"e32509df-e962-4760-991e-6533a398c58e","savedPayload":{"position":{"x":28886.085221923953,"y":29601.940279691247},"targetPosition":{"x":28714.220541495124,"y":29838.336300834977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"0d4140a1-5e1f-4e2e-b540-582474e41889","savedPayload":{"position":{"x":29875.737816682104,"y":29959.950294544436},"targetPosition":{"x":29295.07970717747,"y":29899.13237115068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"96466f5a-6dd9-4db9-b30c-1c4622076d8a","savedPayload":{"position":{"x":29295.07970717747,"y":29899.13237115068},"targetPosition":{"x":28714.220541495124,"y":29838.336300834977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"fffaf3df-a88c-4d45-bb52-d02b818502b5","savedPayload":{"position":{"x":28714.220541495124,"y":29838.336300834977},"targetPosition":{"x":28180.258265470642,"y":30075.671588361656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"53fd5de3-7d70-4eb7-8dd6-976d1e188d12","savedPayload":{"position":{"x":28180.258265470642,"y":30075.671588361656},"targetPosition":{"x":27646.483205424855,"y":30312.68782112075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"78a80ff6-f4f2-4680-9a7b-65225144dd94","savedPayload":{"position":{"x":29344.89030317149,"y":30375.29430631091},"targetPosition":{"x":29066.87926282464,"y":30465.46320932501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"301a8d2c-f659-4d4b-9906-40177bdc1256","savedPayload":{"position":{"x":29066.87926282464,"y":30465.46320932501},"targetPosition":{"x":28788.959285772373,"y":30555.60369823627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"a9291a08-1ba1-436b-b491-e759cc8fb7d1","savedPayload":{"position":{"x":29657.705357360162,"y":31335.98684219346},"targetPosition":{"x":29223.22494058304,"y":30945.392194454824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"19fff031-07c3-4836-9bca-1570eb69a931","savedPayload":{"position":{"x":29223.22494058304,"y":30945.392194454824},"targetPosition":{"x":28788.959285772373,"y":30555.60369823627},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"a81bcaf4-6c99-4b6a-8291-5fa657ae2c17","savedPayload":{"position":{"x":28788.959285772373,"y":30555.60369823627},"targetPosition":{"x":28217.863740614983,"y":30434.314806049108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e2997a2-13ae-464c-b980-9ec46584db3b","savedPayload":{"position":{"x":28217.863740614983,"y":30434.314806049108},"targetPosition":{"x":27646.483205424855,"y":30312.68782112075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f6802028-335d-4e31-90a7-9d608199aafb","savedPayload":{"position":{"x":28973.11521515792,"y":31344.335763341525},"targetPosition":{"x":28704.970711911235,"y":31270.605242395817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"8540fa7a-f4b2-4e97-923c-e8acd00bbb9f","savedPayload":{"position":{"x":28704.970711911235,"y":31270.605242395817},"targetPosition":{"x":28427.545214442536,"y":31180.51925091947},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"51d58c12-ad1f-450e-94fd-ea0f8ad08769","savedPayload":{"position":{"x":28673.375571091077,"y":32328.64889871979},"targetPosition":{"x":28551.84630651388,"y":31757.586799138462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"c655562c-3839-42e0-9ea6-982629405d33","savedPayload":{"position":{"x":28551.84630651388,"y":31757.586799138462},"targetPosition":{"x":28427.545214442536,"y":31180.51925091947},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"f84cf5d6-034c-42db-b197-e95c0228efc9","savedPayload":{"position":{"x":28427.545214442536,"y":31180.51925091947},"targetPosition":{"x":28037.115804417565,"y":30746.897349476265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"385443d2-f17f-459c-b603-58f42e5c366f","savedPayload":{"position":{"x":28037.115804417565,"y":30746.897349476265},"targetPosition":{"x":27646.483205424855,"y":30312.68782112075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true,"shortcutKey":""}}}],"id":"2a5cc26f-cb88-4743-b412-c33acb6aa0fb","savedPayload":{"position":{"x":27646.483205424855,"y":30312.68782112075},"targetPosition":{"x":27066.080859135393,"y":30373.26277782218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true,"shortcutKey":"j"}}}],"id":"b1c93d10-5dd9-4b3f-9662-b9bf7850b81a","savedPayload":{"position":{"x":27066.080859135393,"y":30373.26277782218},"targetPosition":{"x":26594.258895134553,"y":30716.023926107933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"7449a608-32ca-4285-94d1-c96791e2817f","savedPayload":{"position":{"x":26594.258895134553,"y":30716.023926107933},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":true}}},"testingEnvironment":{"type":"Testing Environment","name":"New Testing Environment","exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Paper & Backtesting Sessions WHB","tasks":[{"type":"Task","name":"Paper Trading WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Paper Trading Session","name":"Paper WHB","code":"{\n\"folderName\": \"Paper-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"34d3f232-9fb1-47e1-97be-9233ef34db93","savedPayload":{"position":{"x":28971.432538037425,"y":31197.566779872068},"targetPosition":{"x":29256.219118556106,"y":31260.634923884376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"969cd1c0-1d6d-4667-a810-d18369410d94","savedPayload":{"position":{"x":29127.62298552182,"y":30998.711317235444},"targetPosition":{"x":29256.219118556106,"y":31260.634923884376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"4af996da-6714-41ac-ad51-5706f41b40f0","savedPayload":{"position":{"x":29381.620075223396,"y":30996.639103531685},"targetPosition":{"x":29256.219118556106,"y":31260.634923884376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"963db77e-0405-4fc4-8780-1b7fa93f41a6","savedPayload":{"position":{"x":29540.89032751756,"y":31193.558193870093},"targetPosition":{"x":29256.219118556106,"y":31260.634923884376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"cd125f30-93e7-4786-b1e1-33274bd2877c","savedPayload":{"position":{"x":29486.30541580984,"y":31441.24034082615},"targetPosition":{"x":29256.219118556106,"y":31260.634923884376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"f8fcac2e-2a52-4189-a95d-77e83b5a6f98","savedPayload":{"position":{"x":29258.946454726385,"y":31552.954199174594},"targetPosition":{"x":29256.219118556106,"y":31260.634923884376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b5ba0c98-c052-4195-92c2-119652d91c32","savedPayload":{"position":{"x":29256.219118556106,"y":31260.634923884376},"targetPosition":{"x":29028.981165627734,"y":31444.11933945327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2198ec50-3d31-43b7-a57d-e386bef38a93","savedPayload":{"position":{"x":29028.981165627734,"y":31444.11933945327},"targetPosition":{"x":28797.356906507983,"y":31618.925881685504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"06c8bcea-4122-4a35-8db3-a1ddc7657e4b","savedPayload":{"position":{"x":29070.088941847967,"y":31724.123641159495},"targetPosition":{"x":28797.356906507983,"y":31618.925881685504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"731abb89-b672-41b1-b403-2932226d3df7","savedPayload":{"position":{"x":28797.356906507983,"y":31618.925881685504},"targetPosition":{"x":28509.04657394574,"y":31664.047464690102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"4f784203-664a-4791-9e3a-7565f0a11e79","savedPayload":{"position":{"x":28509.04657394574,"y":31664.047464690102},"targetPosition":{"x":28223.31952830963,"y":31715.314102497134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"e04e8948-849d-4161-af18-4644990d0b49","savedPayload":{"position":{"x":28223.31952830963,"y":31715.314102497134},"targetPosition":{"x":27646.767298437604,"y":31806.53499900127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Backtesting WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Backtesting Session","name":"Back WHB","code":"{\n\"folderName\": \"Back-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.01\n}","id":"48e2c5e0-8f9e-40f0-8ab6-2ecc57aa3039","savedPayload":{"position":{"x":29217.225754587722,"y":31983.258491208453},"targetPosition":{"x":29432.857876743965,"y":32180.244409486728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{}","id":"e8703a6e-e6c0-485f-a27d-a9e60a57a0a6","savedPayload":{"position":{"x":29452.432523801002,"y":31888.895302464356},"targetPosition":{"x":29432.857876743965,"y":32180.244409486728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"initialDatetime\": \"2020-01-01\",\n\"finalDatetime\": \"2020-12-31\"\n}","id":"08815e4e-c066-4914-85b7-a4f7ce4748a5","savedPayload":{"position":{"x":29672.90640789369,"y":32013.935217523467},"targetPosition":{"x":29432.857876743965,"y":32180.244409486728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"805c356b-4a05-424e-ba29-260e35c11943","savedPayload":{"position":{"x":29712.522203850902,"y":32264.186012182166},"targetPosition":{"x":29432.857876743965,"y":32180.244409486728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"bcccd1fd-188c-43e4-abfc-4bc89d6adecc","savedPayload":{"position":{"x":29541.439319307334,"y":32451.40799480543},"targetPosition":{"x":29432.857876743965,"y":32180.244409486728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"ae594b88-e40b-408b-8082-3ba92ffc2c8c","savedPayload":{"position":{"x":29288.759677672737,"y":32434.456674550867},"targetPosition":{"x":29432.857876743965,"y":32180.244409486728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c220646b-827b-43c8-ab7e-5ecd53b4070a","savedPayload":{"position":{"x":29432.857876743965,"y":32180.244409486728},"targetPosition":{"x":29144.04715487322,"y":32225.5091430307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f32f1cdc-425f-4193-a43b-be9312c74234","savedPayload":{"position":{"x":29144.04715487322,"y":32225.5091430307},"targetPosition":{"x":28856.205248366554,"y":32270.90622714756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"02fe6309-40c0-4e31-9aed-fbf8f434bfa9","savedPayload":{"position":{"x":29039.454180951416,"y":32498.13422860966},"targetPosition":{"x":28856.205248366554,"y":32270.90622714756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"dd22d90b-5a91-4723-9f65-17eb94fb4d9d","savedPayload":{"position":{"x":28856.205248366554,"y":32270.90622714756},"targetPosition":{"x":28583.873065071595,"y":32166.066564395605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"0942010b-12f0-4be9-979d-c3e1bbc4eb74","savedPayload":{"position":{"x":28583.873065071595,"y":32166.066564395605},"targetPosition":{"x":28191.77588844909,"y":32015.340325566805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a8ff6583-b710-44b1-8768-d8a70bdf22c9","savedPayload":{"position":{"x":28191.809503651377,"y":32016.176723033914},"targetPosition":{"x":27646.767298437604,"y":31806.53499900127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"caed4703-e134-4a48-9062-fe5277b7d95f","savedPayload":{"position":{"x":27646.767298437604,"y":31806.53499900127},"targetPosition":{"x":27066.28827431158,"y":31745.457342346464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true,"shortcutKey":""}}},{"type":"Task Manager","name":"Paper & Backtesting Sessions BBBT","tasks":[{"type":"Task","name":"Paper Trading BBTB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Paper Trading Session","name":"Paper BBTB","code":"{\n\"folderName\": \"Paper-BBTB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"413c658b-ecb1-412a-ad17-dd21a6cf9edf","savedPayload":{"position":{"x":28494.87847972939,"y":33117.837463101605},"targetPosition":{"x":28582.677305930327,"y":33396.13827516476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"937d18df-32f8-4619-93a0-df66d785f502","savedPayload":{"position":{"x":28745.622400756707,"y":33153.79434931601},"targetPosition":{"x":28582.677305930327,"y":33396.13827516476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"8d7017e0-2478-4f6f-9a06-97e02f485e0d","savedPayload":{"position":{"x":28874.16618186828,"y":33372.630426792784},"targetPosition":{"x":28582.72520361375,"y":33396.230397112864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"fbd66c8d-fb89-41ef-a7d8-ddc1892ea0b7","savedPayload":{"position":{"x":28783.227697232684,"y":33609.18186704609},"targetPosition":{"x":28582.72520361375,"y":33396.230397112864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"71601678-f7fe-4093-81a7-2e7c4f15b36c","savedPayload":{"position":{"x":28541.67266704583,"y":33685.82976758999},"targetPosition":{"x":28582.72520361375,"y":33396.230397112864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"77080ae1-9bce-474f-b5b6-31c227d35298","savedPayload":{"position":{"x":28331.135530189662,"y":33544.71882418469},"targetPosition":{"x":28582.72520361375,"y":33396.230397112864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6681be32-37aa-4703-8cbe-3766844aba04","savedPayload":{"position":{"x":28582.677305930327,"y":33396.13827516476},"targetPosition":{"x":28310.11794612376,"y":33291.432934566474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a70b66f2-4d79-4ab0-8a84-cb47fd872b79","savedPayload":{"position":{"x":28310.11794612376,"y":33291.432934566474},"targetPosition":{"x":28037.88646160735,"y":33186.8036712498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"BB Top Bounce","id":"3313017d-fdce-481b-9679-fe8e4f67cd45"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"53fd90cb-3efc-47b2-90f5-0f8010fc6ef9","savedPayload":{"position":{"x":28083.09970217264,"y":33475.45289741696},"targetPosition":{"x":28037.88646160735,"y":33186.8036712498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"b3dec672-be14-4dca-8be4-5b495373b662","savedPayload":{"position":{"x":28037.88646160735,"y":33186.8036712498},"targetPosition":{"x":27854.515630826965,"y":32959.87913499302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"4315bf06-ef80-490e-af6f-d00b72bfa20d","savedPayload":{"position":{"x":27854.515630826965,"y":32959.87913499302},"targetPosition":{"x":27670.884515974827,"y":32732.728296686793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"b55596f0-998c-4efa-ae49-4645b999dc38","savedPayload":{"position":{"x":27670.884515974827,"y":32732.728296686793},"targetPosition":{"x":27303.460274268815,"y":32278.945464630924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Backtesting BBTB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Backtesting Session","name":"Back BBTB","code":"{\n\"folderName\": \"Back-BBTB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.01\n}","id":"11c310f7-a52f-467f-afbc-57c04639a979","savedPayload":{"position":{"x":27935.52960924423,"y":33727.16185142834},"targetPosition":{"x":27872.39632969643,"y":34011.519737305855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{}","id":"208693a0-838b-4992-9344-4b798acce6c2","savedPayload":{"position":{"x":28134.868125629793,"y":33883.771084640226},"targetPosition":{"x":27872.39632969643,"y":34011.519737305855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"initialDatetime\": \"2020-01-01\",\n\"finalDatetime\": \"2020-12-31\"\n}","id":"48fa15e9-aff6-4521-b5e3-a45e1a01d9b1","savedPayload":{"position":{"x":28136.73926831989,"y":34137.15258391286},"targetPosition":{"x":27872.39632969643,"y":34011.519737305855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"d3a5cba8-3272-43c9-89d7-a40de0f49045","savedPayload":{"position":{"x":27939.615119163645,"y":34296.76627194934},"targetPosition":{"x":27872.39632969643,"y":34011.519737305855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"b764240b-aec9-4ddc-bac7-99bb34bc2163","savedPayload":{"position":{"x":27692.135848308008,"y":34242.23814259691},"targetPosition":{"x":27872.39632969643,"y":34011.519737305855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"e233bb2d-080c-4f2e-9188-edba85ae74d9","savedPayload":{"position":{"x":27580.387613737523,"y":34014.763941953664},"targetPosition":{"x":27872.39632969643,"y":34011.519737305855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e3473182-57b9-41f8-8d5a-1bb13c8b5441","savedPayload":{"position":{"x":27872.39632969643,"y":34011.519737305855},"targetPosition":{"x":27688.812086800328,"y":33785.136479923625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5d72321e-97e7-404f-8272-809dbbf4db35","savedPayload":{"position":{"x":27688.812086800328,"y":33785.136479923625},"targetPosition":{"x":27505.304688678796,"y":33557.97215461767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"BB Top Bounce","id":"3313017d-fdce-481b-9679-fe8e4f67cd45"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"eb149e85-7202-4f3f-832f-0b25c4d97b0b","savedPayload":{"position":{"x":27400.38204056495,"y":33831.01076050117},"targetPosition":{"x":27505.304688678796,"y":33557.97215461767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"919e2ba3-4089-4729-add5-0be715c27ceb","savedPayload":{"position":{"x":27505.304688678796,"y":33557.97215461767},"targetPosition":{"x":27460.053021849162,"y":33270.2350467557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"a1d698ca-cc6f-4ba2-8a19-c72a1fda3547","savedPayload":{"position":{"x":27460.053021849162,"y":33270.2350467557},"targetPosition":{"x":27394.546920638215,"y":32854.98869482298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"648b9d39-4e74-4c95-8ad6-8fd048e86a51","savedPayload":{"position":{"x":27394.309953423523,"y":32855.9278698358},"targetPosition":{"x":27303.460274268815,"y":32278.945464630924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"e5b805c8-a056-4356-894f-2dbc5af0e663","savedPayload":{"position":{"x":27303.501363216124,"y":32278.927172840664},"targetPosition":{"x":27066.28827431158,"y":31745.457342346464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true,"shortcutKey":""}}}],"id":"f69b2c23-ccc5-47fb-9945-9b7badcea636","savedPayload":{"position":{"x":27066.28827431158,"y":31745.457342346464},"targetPosition":{"x":26594.350231870896,"y":31402.227991512707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"2ae685a1-25c6-4bd5-b559-d83e373e8d45","savedPayload":{"position":{"x":26594.350231870896,"y":31402.227991512707},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":true}}},"productionEnvironment":{"type":"Production Environment","name":"New Production Environment","exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Fwd & Live Sessions WHB","tasks":[{"type":"Task","name":"Fwd Testing WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Forward Testing Session","name":"Fwd WHB","code":"{\n\"folderName\": \"Fwd-WHB\",\n\"balancePercentage\": 10\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"079cdfaf-2d41-4fa3-a68d-9e2620de0cdd","savedPayload":{"position":{"x":26910.021545551564,"y":33878.20538019948},"targetPosition":{"x":26938.460095448998,"y":34169.41187072626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"5f5ec9f1-c4e2-4ca7-94c4-bad619511e5c","savedPayload":{"position":{"x":27148.01063503007,"y":33966.01103908403},"targetPosition":{"x":26938.460095448998,"y":34169.41187072626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"d5fda5e7-7571-41e7-b19a-a721d73fd8f5","savedPayload":{"position":{"x":27228.223941558408,"y":34206.05209392076},"targetPosition":{"x":26938.460095448998,"y":34169.41187072626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"f6ed8468-7fd1-4aac-848b-647973e41b04","savedPayload":{"position":{"x":27090.039351877273,"y":34419.33692857233},"targetPosition":{"x":26938.460095448998,"y":34169.41187072626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"da2d51df-7c40-4bf0-80ec-63a38992fcfe","savedPayload":{"position":{"x":26838.05746723943,"y":34444.00375753654},"targetPosition":{"x":26938.460095448998,"y":34169.41187072626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"4e1b48a9-df71-402e-9159-66c49cdc08b3","savedPayload":{"position":{"x":26661.978984189693,"y":34261.43705453156},"targetPosition":{"x":26938.460095448998,"y":34169.41187072626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b9e7a071-26dd-4796-8704-2314f6c2c603","savedPayload":{"position":{"x":26938.460095448998,"y":34169.41187072626},"targetPosition":{"x":26693.307245106695,"y":34009.68815888209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0e7edb98-38ff-4516-89a1-188030989ddc","savedPayload":{"position":{"x":26693.307245106695,"y":34009.68815888209},"targetPosition":{"x":26449.279251038242,"y":33851.13016897596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"WHB","id":"8d9b39d4-b764-486d-a2f6-e84391bbd818","savedPayload":{"position":{"x":26419.029585690965,"y":34434.89440876462},"targetPosition":{"x":26433.64744618784,"y":34142.481013707016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"WHB","id":"88eab4e5-3be4-4982-93fa-e95bcb1ab559"}}},"id":"f122bd16-0c85-43d1-932a-57a710db8013","savedPayload":{"position":{"x":26433.64744618784,"y":34142.481013707016},"targetPosition":{"x":26449.279251038242,"y":33851.13016897596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"a034c52a-8924-4e60-9653-f6da1ea6f8b5","savedPayload":{"position":{"x":26449.279251038242,"y":33851.13016897596},"targetPosition":{"x":26316.92939841393,"y":33591.09577845997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"74f70f20-305b-4e90-aad6-1bcd2ff8ee1c","savedPayload":{"position":{"x":26316.92939841393,"y":33591.09577845997},"targetPosition":{"x":26148.05085911208,"y":33259.678571238874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"749d6eaf-1548-47ca-901d-1cfc1a21b0a5","savedPayload":{"position":{"x":26148.258495506143,"y":33259.33262854982},"targetPosition":{"x":25882.854246796225,"y":32739.299037174344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Live Trading WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Live Trading Session","name":"Live Trading WHB","code":"{\n\"folderName\": \"Live-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"166cdb09-90e0-49a1-9c38-b57364287620","savedPayload":{"position":{"x":26206.913137023843,"y":34159.67844342709},"targetPosition":{"x":26085.882722277336,"y":34425.20699850924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"5bf43efd-3dd2-44f2-b25e-f6c7a5fda17e","savedPayload":{"position":{"x":26369.31262822603,"y":34354.3650248871},"targetPosition":{"x":26085.882722277336,"y":34425.20699850924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"88d7104b-7925-408a-b490-bbbaaafd7a5f","savedPayload":{"position":{"x":26319.710703428864,"y":34605.01649378187},"targetPosition":{"x":26086.823060661056,"y":34427.10655731405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"1c158006-c3c1-4157-8ad6-f08ee2b769d6","savedPayload":{"position":{"x":26092.653639061344,"y":34720.14421444298},"targetPosition":{"x":26086.823060661056,"y":34427.10655731405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"01064db9-f153-4d30-a26c-d9d339e7a856","savedPayload":{"position":{"x":25863.289014292863,"y":34615.06458940235},"targetPosition":{"x":26086.823060661056,"y":34427.10655731405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"06f7cc4e-6112-4ac8-9f20-610b357a58d2","savedPayload":{"position":{"x":25800.619749067708,"y":34369.65589984576},"targetPosition":{"x":26086.823060661056,"y":34427.10655731405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b86ce81f-5084-48d1-8a45-8f45fbe97891","savedPayload":{"position":{"x":26085.882722277336,"y":34425.20699850924},"targetPosition":{"x":25953.54078456798,"y":34164.966832844664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5335fd67-ebdc-4cfd-936d-b76af957713e","savedPayload":{"position":{"x":25953.54078456798,"y":34164.966832844664},"targetPosition":{"x":25821.361016582057,"y":33905.1503032116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"WHB","id":"a0061ba6-2359-4c5c-822d-1e17aaf7c2fd","savedPayload":{"position":{"x":25502.59020355087,"y":34394.754103129955},"targetPosition":{"x":25661.882303820435,"y":34149.89426927967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"WHB","id":"88eab4e5-3be4-4982-93fa-e95bcb1ab559"}}},"id":"954b1896-121c-41e2-9608-5b46a70082fb","savedPayload":{"position":{"x":25661.882303820435,"y":34149.89426927967},"targetPosition":{"x":25821.361016582057,"y":33905.1503032116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"8cb4d9af-0f53-4b33-9174-330da87b166c","savedPayload":{"position":{"x":25821.361016582057,"y":33905.1503032116},"targetPosition":{"x":25836.74291688131,"y":33613.94559042871},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"8b30643a-eb54-4d6f-958d-8393f9a1e5f4","savedPayload":{"position":{"x":25836.74291688131,"y":33613.94559042871},"targetPosition":{"x":25852.055901777552,"y":33322.2430462622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"52ec5181-d057-42e3-a6e8-407d20d4e641","savedPayload":{"position":{"x":25852.055901777552,"y":33322.2430462622},"targetPosition":{"x":25882.854246796225,"y":32739.299037174344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1bbb36fe-edbf-49d8-9827-85a1345c0289","savedPayload":{"position":{"x":25882.854246796225,"y":32739.299037174344},"targetPosition":{"x":25761.601496698062,"y":32168.52024266521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"l"}}},{"type":"Task Manager","name":"Fwd & Live Sessions BBTB","tasks":[{"type":"Task","name":"Fwd Testing BBTB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Forward Testing Session","name":"Fwd BBTB","code":"{\n\"folderName\": \"Fwd-BBTB\",\n\"balancePercentage\": 10\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"3a75a6ee-f188-4bd1-81ff-8018094d1eb0","savedPayload":{"position":{"x":24857.094321966553,"y":34017.30375601778},"targetPosition":{"x":24619.145851955524,"y":34187.288899821026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"b0d3da2f-f67f-473e-9f61-1296a9bfd952","savedPayload":{"position":{"x":24900.379262240484,"y":34266.88105509463},"targetPosition":{"x":24619.145851955524,"y":34187.288899821026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"6b4f8416-a9ec-47f5-ac7b-3c5005733328","savedPayload":{"position":{"x":24732.106855452465,"y":34456.57555177858},"targetPosition":{"x":24619.145851955524,"y":34187.288899821026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"ab1e8a12-e834-4062-b411-dbf174dcee6d","savedPayload":{"position":{"x":24479.061255754154,"y":34443.320476277215},"targetPosition":{"x":24619.145851955524,"y":34187.288899821026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"97669707-03fd-488c-bb1d-1ee4cafcf93a","savedPayload":{"position":{"x":24331.540268704146,"y":34237.15844285456},"targetPosition":{"x":24619.145851955524,"y":34187.288899821026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"e92c18cc-6c10-4231-bd61-ec3561875ff6","savedPayload":{"position":{"x":24400.852816728264,"y":33993.59591676479},"targetPosition":{"x":24619.145851955524,"y":34187.288899821026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"231917f8-cc46-4f5b-834c-0b0ff89dd932","savedPayload":{"position":{"x":24619.145851955524,"y":34187.288899821026},"targetPosition":{"x":24634.678502791634,"y":33895.04800320409},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7b91c25c-ac96-4c3c-9e79-17c262f17180","savedPayload":{"position":{"x":24634.678502791634,"y":33895.04800320409},"targetPosition":{"x":24649.52986998621,"y":33604.070042960644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading System","name":"BB Top Bounce","id":"3313017d-fdce-481b-9679-fe8e4f67cd45"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"BBTB","id":"98b73dbc-52e7-4292-9051-d0cb41db5f72","savedPayload":{"position":{"x":24129.27847262082,"y":33869.54908085728},"targetPosition":{"x":24389.757289928526,"y":33736.110358887185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"BBTB","id":"bfea6ed0-673c-4245-9b5e-7837785a63c9"}}},"id":"ea2bb934-5c1f-4006-87af-865cf23f968c","savedPayload":{"position":{"x":24389.757289928526,"y":33736.110358887185},"targetPosition":{"x":24649.52986998621,"y":33604.070042960644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"c639e264-5ac1-41d3-8b56-c4c4cd46af16","savedPayload":{"position":{"x":24649.52986998621,"y":33604.070042960644},"targetPosition":{"x":24808.52711960168,"y":33359.15206815564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"e6d0e073-c898-41ec-9f84-611faf9732fa","savedPayload":{"position":{"x":24808.52711960168,"y":33359.15206815564},"targetPosition":{"x":25009.92952810802,"y":33048.84834292683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"29dd451d-55ac-4d0c-9b16-7e0da9bcd453","savedPayload":{"position":{"x":25010.003900512038,"y":33048.680845510964},"targetPosition":{"x":25327.724179065375,"y":32558.7886376995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Live Trading BBTB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Live Trading Session","name":"Live Trading BBTB","code":"{\n\"folderName\": \"Live-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"d5a1b4b6-2bfc-4772-9c60-0c55f2abb0b1","savedPayload":{"position":{"x":24259.65690114779,"y":33549.20053883887},"targetPosition":{"x":23969.104504329505,"y":33576.91878946957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"7354aa3e-f4a4-47b2-a709-50cc86d27d9d","savedPayload":{"position":{"x":24172.271339315303,"y":33786.90215883397},"targetPosition":{"x":23969.104504329505,"y":33576.91878946957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"de6e1749-8ecd-4cae-8a14-c2e51040ee7c","savedPayload":{"position":{"x":23931.88267060138,"y":33867.03794127833},"targetPosition":{"x":23969.104504329505,"y":33576.91878946957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"a9e15ef3-5525-4394-b2df-27ca00c3d946","savedPayload":{"position":{"x":23719.10104222115,"y":33728.79606523192},"targetPosition":{"x":23969.104504329505,"y":33576.91878946957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"d4e3d01f-dd4f-4e1d-a19f-309b3e06b627","savedPayload":{"position":{"x":23694.345712194692,"y":33476.6385777761},"targetPosition":{"x":23969.104504329505,"y":33576.91878946957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"9f20c206-6968-406a-b3ea-fe7279839093","savedPayload":{"position":{"x":23876.174603559277,"y":33300.04145285883},"targetPosition":{"x":23969.104504329505,"y":33576.91878946957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c1085d75-2c80-4b85-937c-fd9d0bda0569","savedPayload":{"position":{"x":23969.104504329505,"y":33576.91878946957},"targetPosition":{"x":24128.21229147908,"y":33332.02911909801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ef82a64d-7c70-48d5-868a-09acf97e5289","savedPayload":{"position":{"x":24128.21229147908,"y":33332.02911909801},"targetPosition":{"x":24287.003674972984,"y":33087.60393157113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"BB Top Bounce","id":"3313017d-fdce-481b-9679-fe8e4f67cd45"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"BBTB","id":"93b6328f-bf96-4ee9-95de-ef6dcc2f0d16","savedPayload":{"position":{"x":23703.56637178532,"y":33056.44592343519},"targetPosition":{"x":23995.28562662997,"y":33071.90981760334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"BBTB","id":"bfea6ed0-673c-4245-9b5e-7837785a63c9"}}},"id":"e5be2d9b-1d10-4752-8dda-3bd86a1d2e87","savedPayload":{"position":{"x":23995.28562662997,"y":33071.90981760334},"targetPosition":{"x":24287.003674972984,"y":33087.60393157113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"51e40ee6-299f-4916-b55b-2d5bb47f9c9d","savedPayload":{"position":{"x":24287.003674972984,"y":33087.60393157113},"targetPosition":{"x":24546.92479327684,"y":32955.57056182307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"d5320e1e-a4eb-4900-a6fc-8de4467e4363","savedPayload":{"position":{"x":24546.92479327684,"y":32955.57056182307},"targetPosition":{"x":24807.30357570537,"y":32823.26625993325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e3796688-b650-45cd-a0c0-24fe3a2e0d74","savedPayload":{"position":{"x":24807.30357570537,"y":32823.26625993325},"targetPosition":{"x":25327.724179065375,"y":32558.7886376995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0357b28b-fc1c-47aa-9b37-1106936ea9b2","savedPayload":{"position":{"x":25327.724179065375,"y":32558.7886376995},"targetPosition":{"x":25761.601496698062,"y":32168.52024266521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"l"}}}],"id":"fa859e89-960f-4fe1-8e68-1e41b0ea80ec","savedPayload":{"position":{"x":25761.601496698062,"y":32168.52024266521},"targetPosition":{"x":25941.936545722037,"y":31613.756231123843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"32656457-f603-416a-b805-546642094dc4","savedPayload":{"position":{"x":25941.744692627148,"y":31614.344640604217},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"u"}}},"id":"ce601334-52c5-4ffb-ab61-49ca1943a15a","savedPayload":{"position":{"x":26122.378344035824,"y":31058.919069244217},"targetPosition":{"x":24954.356993272086,"y":31057.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"r"}}}],"id":"efbbc81b-93c8-4ce0-873e-675f39d333e8","savedPayload":{"position":{"x":24954.356993272086,"y":31057.918778615294},"targetPosition":{"x":24954.356993272086,"y":31057.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"n"}}},{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","cryptoExchanges":[{"type":"Crypto Exchanges","name":"Tested","exchanges":[{"type":"Crypto Exchange","name":"Binance","code":"{\n \"codeName\": \"binance\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"EUR\"} \n}","assets":[{"type":"Asset","name":"Bitcoin","code":"{ \n\"codeName\": \"BTC\"\n}","id":"b2814a75-fd57-45c4-a3cb-af276793e573","savedPayload":{"position":{"x":14195.09373519908,"y":30498.57953967648},"targetPosition":{"x":14305.025652484152,"y":30812.79046466984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","code":"{ \n\"codeName\": \"USDT\"\n}","id":"04c5f172-6976-4557-b95f-38004b5201a6","savedPayload":{"position":{"x":14342.003487956641,"y":30482.411278035917},"targetPosition":{"x":14305.025652484152,"y":30812.79046466984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Ether","code":"{ \n\"codeName\": \"ETH\"\n}","id":"4175d47c-e12c-4902-b026-f4999a6d07a4","savedPayload":{"position":{"x":14481.605152989256,"y":30531.154856472},"targetPosition":{"x":14305.025652484152,"y":30812.79046466984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Monero","code":"{ \n\"codeName\": \"XMR\"\n}","id":"e3b61070-77b9-4dcf-9862-7f05ffa237f3","savedPayload":{"position":{"x":14586.128143352431,"y":30635.66020347477},"targetPosition":{"x":14305.025652484152,"y":30812.79046466984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Stellar","code":"{ \n\"codeName\": \"XLM\"\n}","id":"6dee1e7e-80f3-4597-a28a-881af206ec14","savedPayload":{"position":{"x":14635.380023465843,"y":30775.418809131024},"targetPosition":{"x":14305.025652484152,"y":30812.79046466984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Ethereum Classic","code":"{ \n\"codeName\": \"ETC\"\n}","id":"59378d33-4833-495a-89bb-f739710be7d9","savedPayload":{"position":{"x":14618.714156215316,"y":30922.740363095792},"targetPosition":{"x":14305.025652484152,"y":30812.79046466984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"f4451bbc-50ea-4558-9b3c-abd3e757a76e","savedPayload":{"position":{"x":14305.17360826227,"y":30812.68986934228},"targetPosition":{"x":14079.894884165275,"y":31038.166461562458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"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}","markets":[{"type":"Market","name":"BTC/USDT","code":"{ \n\"codeName\": \"BTC/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","id":"07b514a4-3ea2-4ab7-aeb0-07b48acb6f8d","savedPayload":{"position":{"x":15236.371832479537,"y":30780.053229243735},"targetPosition":{"x":15049.153562663865,"y":31038.131226693393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b2814a75-fd57-45c4-a3cb-af276793e573"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"61e7d2b5-1672-4e11-8380-345a4fe4a991","savedPayload":{"position":{"x":15352.419771068837,"y":30939.69858316036},"targetPosition":{"x":15049.153562663865,"y":31038.131226693393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"04c5f172-6976-4557-b95f-38004b5201a6"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"a174a91f-0818-4fdc-88cd-20dbdf45c548","savedPayload":{"position":{"x":15352.36057193139,"y":31136.524172911017},"targetPosition":{"x":15049.153562663865,"y":31038.131226693393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"11beab3d-d894-4d20-9940-f864ba957f91","savedPayload":{"position":{"x":15236.806192935961,"y":31295.59566491682},"targetPosition":{"x":15049.153562663865,"y":31038.131226693393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"5489751f-5ce4-40d0-9854-5bcfdc810269","savedPayload":{"position":{"x":15049.153562663865,"y":31038.131226693393},"targetPosition":{"x":14716.990761953079,"y":31038.17830230591},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0e1257c5-49b1-4b52-8942-9bdef72854d2","savedPayload":{"position":{"x":14716.843959091762,"y":31038.024738221364},"targetPosition":{"x":14079.894884165275,"y":31038.166461562458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b","savedPayload":{"position":{"x":15045.552221144293,"y":31329.003976386983},"targetPosition":{"x":14837.69016883917,"y":31570.65978539939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b2814a75-fd57-45c4-a3cb-af276793e573"}}},{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da","savedPayload":{"position":{"x":15129.925421763637,"y":31443.234588877498},"targetPosition":{"x":14837.69016883917,"y":31570.65978539939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"04c5f172-6976-4557-b95f-38004b5201a6"}}},{"type":"Exchange Account Asset","name":"Ether","id":"b3d0800f-f430-4549-86e9-68001c43fa1f","savedPayload":{"position":{"x":15156.324673396291,"y":31582.493916797535},"targetPosition":{"x":14837.69016883917,"y":31570.65978539939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4175d47c-e12c-4902-b026-f4999a6d07a4"}}},{"type":"Exchange Account Asset","name":"Monero","id":"ee25ff6a-8b3d-4f30-8acf-71ca4b186195","savedPayload":{"position":{"x":15119.60270103622,"y":31719.58562930427},"targetPosition":{"x":14837.69016883917,"y":31570.65978539939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Monero","id":"e3b61070-77b9-4dcf-9862-7f05ffa237f3"}}},{"type":"Exchange Account Asset","name":"Stellar","id":"5716ea79-1392-4f6d-a46e-dba38ab9b39e","savedPayload":{"position":{"x":15027.042577031634,"y":31827.16324834079},"targetPosition":{"x":14837.69016883917,"y":31570.65978539939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Stellar","id":"6dee1e7e-80f3-4597-a28a-881af206ec14"}}},{"type":"Exchange Account Asset","name":"Ethereum Classic","id":"d9d0d41c-67a9-42ea-8c64-067647ee53a4","savedPayload":{"position":{"x":14896.892806780692,"y":31883.891480137856},"targetPosition":{"x":14837.69016883917,"y":31570.65978539939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ethereum Classic","id":"59378d33-4833-495a-89bb-f739710be7d9"}}}],"id":"f7bbfcc0-2359-4de1-8ddc-5e117bde0c52","savedPayload":{"position":{"x":14837.69016883917,"y":31570.65978539939},"targetPosition":{"x":14529.97816888475,"y":31488.389186969194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"WHB","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"88eab4e5-3be4-4982-93fa-e95bcb1ab559","savedPayload":{"position":{"x":14771.379005546727,"y":32072.350747523094},"targetPosition":{"x":14612.113800977872,"y":31796.265546651335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Exchange Account Key","name":"BBTB","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"bfea6ed0-673c-4245-9b5e-7837785a63c9","savedPayload":{"position":{"x":14612.064462876144,"y":32115.0038323965},"targetPosition":{"x":14612.113800977872,"y":31796.265546651335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"cf3895fd-4f0c-4bd8-8afb-886a718cc891","savedPayload":{"position":{"x":14612.113800977872,"y":31796.265546651335},"targetPosition":{"x":14529.97816888475,"y":31488.389186969194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a718949a-e315-4bda-8523-b0b03e3ca507","savedPayload":{"position":{"x":14529.97816888475,"y":31488.389186969194},"targetPosition":{"x":14305.012345932206,"y":31263.313648257546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a913b30b-17d3-4b2b-9c39-9c7dc67f0000","savedPayload":{"position":{"x":14305.012345932206,"y":31263.313648257546},"targetPosition":{"x":14079.894884165275,"y":31038.166461562458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"22d2b36e-7a77-40a6-8948-b7d0fb744923","savedPayload":{"position":{"x":14079.894884165275,"y":31038.166461562458},"targetPosition":{"x":13442.879291220586,"y":31038.17362849701},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"c16f8dd4-05f5-45db-8a47-713eb1116f72","savedPayload":{"position":{"x":13442.879291220586,"y":31038.17362849701},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"signalsProviders":[],"superActions":{"type":"Super Actions","name":"New Super Actions","superActions":[{"type":"Super Action","name":"Install Market","id":"2cd8e9dd-02a8-40b5-8979-108491309697","savedPayload":{"position":{"x":13596.796537982185,"y":29900.600915146206},"targetPosition":{"x":13238.769838624787,"y":30494.890822183912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"d103d8f7-8b21-436a-a0cf-8244b3dcb756","savedPayload":{"position":{"x":13738.553946135695,"y":30013.646249280533},"targetPosition":{"x":13238.769838624787,"y":30494.890822183912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"c934df8f-d942-4723-ad44-f187e5df4351","savedPayload":{"position":{"x":12166.581869182457,"y":31038.25465749285},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9f4e7bfb-ea29-47cd-92bd-11f31d177ff8","savedPayload":{"position":{"x":12805.301618063546,"y":31038.2348844148},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"e"}}},{"type":"Charting Space","name":"New Charting Space","viewport":{"type":"Viewport","name":"New Viewport","code":"{\"zoom\":\"0.00\"}","id":"c3db9bcf-39ee-47d1-ab4f-14bd5de815da","savedPayload":{"position":{"x":13421.60994808922,"y":24983.353401471086},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"frame":{"position":{"x":-120.99999999999977,"y":42.59064327485356}}}},"dashboards":[{"type":"Dashboard","name":"Super Action Generated","timeMachines":[{"type":"Time Machine","name":"WHB Binance BTC/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-05-27T09:53:30.531Z\",\n \"toDate\": \"2020-05-27T11:00:59.999Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"9368d644-21cd-4be9-bb36-df83b66c67d1","savedPayload":{"position":{"x":11611.720379074248,"y":26036.808408556513},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 8468.468050704952,\n \"maxValue\": 10604.90816010915,\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"7242faad-e2a0-4dd2-8016-bd4448a3b61c","savedPayload":{"position":{"x":11472.84821627644,"y":26143.60061063287},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-min\"}","id":"cddfbb92-c310-477a-9c66-b2a38ff8309f","savedPayload":{"position":{"x":11311.376506720255,"y":26210.551198106474},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"09e91fb3-cdff-4c0c-b320-417aeb4f2538","savedPayload":{"position":{"x":45798.08358329995,"y":30783.47112133315},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"dd7c8795-bb24-4438-9d77-b37a9000ad7f"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"2b8f6dec-a712-4716-88d8-a33c01398956","savedPayload":{"position":{"x":45898.37673360377,"y":30788.25119234455},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"6929ebe7-6486-4299-add5-ed0282500d91"}}},{"type":"Layer","name":"Resistances","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"57d807c2-eeac-46a5-bd07-6f630a578562","savedPayload":{"position":{"x":45996.05938571397,"y":30809.588522972816},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Resistances","id":"0669d924-aace-46d1-b126-ccced8fd33cf"}}},{"type":"Layer","name":"Supports","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9a035c82-60cb-4ab4-b4f8-e40b0dde7c2c","savedPayload":{"position":{"x":46088.671022938994,"y":30846.72421469604},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Supports","id":"5e7a0e50-e6ed-4106-8025-8b35ad6c597c"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"25363a67-bcaf-4392-9ed8-2b6c99fb31c8","savedPayload":{"position":{"x":46173.797322491286,"y":30898.58369972401},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"1d7dd537-5f6f-4eb2-8e56-ddba0aef720f"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"63dbae3f-cebc-4587-9b9c-60ffe83e4143","savedPayload":{"position":{"x":46249.17664768098,"y":30963.730987652525},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"221c8d22-8a7f-4014-a7ed-0bafc886b123"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"2203bc66-a385-438b-8050-0b812b655d0a","savedPayload":{"position":{"x":46312.78393052083,"y":31040.384533238812},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"d83476c3-2f0b-4d4a-abb2-0e47ed0a421d"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ea4ce55e-855e-4a61-ad12-222a0077e51e","savedPayload":{"position":{"x":46362.900460538505,"y":31126.454059169817},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"5ffc6a67-e33b-422b-8e36-f9711f93c723"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"e9272caf-38f8-44de-a698-13f8b19b50c3","savedPayload":{"position":{"x":46398.167326095994,"y":31219.59432824167},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"0428f20b-9620-480e-a531-dbb2e5f59ef4"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"a9fcfaea-cd50-464e-aa65-1f2a3e98633d","savedPayload":{"position":{"x":46417.62588351845,"y":31317.267577006704},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"48f7953c-f62d-4292-b042-d1ac05f8f80f"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\"\n}","id":"8c1e005a-c340-4850-9de2-900a4cfc44bb","savedPayload":{"position":{"x":46420.70567572493,"y":31416.809466474464},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"3b9a3c93-6d41-440e-89a2-2fd1b2dde603"}}},{"type":"Layer","name":"Base5 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"6223f2d7-bdb4-474a-9e60-b54dc00680ea","savedPayload":{"position":{"x":46407.31337137963,"y":31515.483822428057},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"2404b1eb-c7c9-46e7-b22a-93cfcc3739f4"}}},{"type":"Layer","name":"Base6 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"a71c4fa6-d034-499c-9b30-7a46378cadc0","savedPayload":{"position":{"x":46377.87367543775,"y":31610.607629023725},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"1510fd36-633e-40a7-adbe-680660d64bd0"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"53c4ff8b-f3c5-4329-8fe4-6209c0ffb9f1","savedPayload":{"position":{"x":46333.185880681754,"y":31699.591341637817},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"70401ea0-3fed-4e40-8bba-a1e5adce9b8c"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"09cbb1f5-edad-4f9f-ab1c-7f9b0a0d8f7c","savedPayload":{"position":{"x":46274.467312818415,"y":31780.011584392756},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"06ac8eb7-8b14-42b1-9e2e-466280ade032"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"88466a0a-b385-417f-9efa-8c0139e05a5e","savedPayload":{"position":{"x":46203.31676678368,"y":31849.67669835976},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"014bba70-64d4-4035-b06d-145ee9b4c54c"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6564d574-c6fd-4ee0-96ab-0e7c62e1cd7c","savedPayload":{"position":{"x":46121.67361107911,"y":31906.68977984249},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"768cc06c-6fdf-491a-a741-5e08f0e25e38"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"941fef87-83dd-457f-818c-71745fa1692a","savedPayload":{"position":{"x":46028.33674024209,"y":31950.48529383432},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"40794460-b815-498f-a245-e677de0eed86"}}}],"id":"1c96281c-523a-4597-b9b2-2db3d880ff49","savedPayload":{"position":{"x":45819.36840869368,"y":31385.419815840156},"targetPosition":{"x":45228.931388073186,"y":31502.74417203152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"ff535c6b-411f-4790-ab2b-c755c74de1b9","savedPayload":{"position":{"x":11138.25130732125,"y":26233.38907834376},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 2109149.343784579,\n \"maxValue\": 2118053.365048354,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"9ee722c6-095f-4f4a-b8b2-9cb9bca115aa","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c4041768-1a6e-4f5b-8d7b-b681a175f27a","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"98e6c917-f4b7-4b71-9215-de3ccaf3dc0c"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"e9404a3f-2768-4b17-ac7a-8b11e1a1957c","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"858fd2be-abef-4173-abef-dedf17f00d47","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"8411d061-e010-4d33-b35c-e71d743fd403","savedPayload":{"position":{"x":10965.194408624708,"y":26210.60036281255},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 25826.74987533423,\n \"maxValue\": 25961.190304401338,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"60aaeaeb-2247-4536-a1a2-cf7d731b6fc5","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"c230772e-ca08-45df-bad6-4b72be44d9a5","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"4a3ed8eb-a73e-4fb4-835a-681cf47d7373"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"f9435119-1d3f-4106-9c78-531f6ef4714f","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"728d6f08-086f-41ba-9126-30ec56a45ea5"}}}],"id":"acbd2ecb-2f75-44b8-8659-26482cb6fb0b","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"a7f9fef6-c3f9-4e17-b894-9a5e154ccbbe","savedPayload":{"position":{"x":10803.78018262477,"y":26143.752131657493},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 943.9334763368367,\n \"maxValue\": 947.9334763368367,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"1415a288-9d79-45c9-a55c-9991e8b6953b","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"33e885d3-27f0-4ff7-8715-bc2f945e698e","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"7ccbd0c1-c804-47e3-9314-14cbb756c806"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f3cd6f15-98f5-4165-b6c3-04b8796fb43d","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"08f223a8-9707-4c45-b638-1fe0e4a2b053"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"66440f58-8741-4b22-8146-00f772837545","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"66f1a9be-fe96-48c3-91e4-500c6e246423"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"3ba14173-bac8-4013-9a5c-b8aecd05e0ae","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"e432c706-cbcd-4af0-b23c-b18e5b29377a"}}}],"id":"ab7c3367-a36e-4a78-b43b-bfeea5fc5201","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"156b9564-14a5-4148-8ca6-1e7b98d4189d","savedPayload":{"position":{"x":10665.17152728171,"y":26037.402405028162},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"4978dec9-1374-421a-865e-9e0d30682f65","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"93d62cc0-6914-411e-bf9f-008271cd2965","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"573fb46f-78d2-4bf3-ad11-e42d2531d53e"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"cbb41381-e76d-44f5-8dd3-f9a8c0c0379f","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"39d7a06d-5aad-4b03-8778-e4df8dacc825"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"88471305-9c12-4caf-856b-675fb2db2db3","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"82b46974-7a93-4066-a3b7-378b42710364"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"8cb92f6b-8ede-44ef-928a-36f4ec022af8","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"7af9d35c-7464-4ed5-9ee6-ccf7a9943894"}}}],"id":"3ec4f352-fb06-4ade-8393-7a5a83765773","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1770,"y":80},"width":150,"height":40,"radius":0}}},"id":"ac6929d9-238c-4689-b2ee-3cc001be578b","savedPayload":{"position":{"x":10558.81501585983,"y":25898.797450091883},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-min\"}","id":"d7c6c5e8-82d8-4f2a-a07e-66c3498d1fe5","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"b978b005-7bc2-4246-b4d9-5fcfc463eacf","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"63636068-307e-4cea-b31f-f47e106cea2c"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"1ca55ee3-231b-41ad-9acd-24f043e8aa01","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"20848048-8efb-47b1-aaf0-789d2f6c5b1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"52850e27-6287-4005-ba6e-66f5b193e3ad","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"5e28998c-b35f-4cc0-9fd6-8ee5f5714545"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"46bd81b8-5b9f-4c5f-89bb-149e19bd0267","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"87b74841-4f6a-4658-b01b-7feb254b5d2f"}}}],"id":"0cf47550-1612-4cd7-8fdd-a68014bd52cc","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1620,"y":80},"width":150,"height":330,"radius":0}}},"id":"c285480b-3a39-4dd0-be1d-6470a97d22a7","savedPayload":{"position":{"x":10491.96325073248,"y":25737.373898896472},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"b10a1160-3d9b-44a5-97e9-dbfdc9f103b6","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"b4fb2c12-42e4-496d-aea2-ccf8c90c2e6a","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"5919a710-a950-4049-9605-3f127b7fac6b"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"fc3d15bc-ac9c-4150-9a26-4c8baef90266","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"c7030a88-152f-421c-8b32-66f3c222286a"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"c749facc-4350-43c1-b881-72c781475f56","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"25db80e6-c4cf-4568-98d3-0cba83625ece"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"30fa6c26-bdbb-4a70-a917-f42d99583938","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"f4b18249-5044-4b34-83f7-3cedbbe939c5"}}}],"id":"c689ea14-8d8b-4482-9cf3-c652904ebd27","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1470,"y":80},"width":150,"height":40,"radius":0}}},"id":"fabbc9b6-b752-4ba6-80a4-835eaa856948","savedPayload":{"position":{"x":10469.194131114753,"y":25564.28586691085},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"eb70203f-383c-4227-8b82-64458c8ceb62","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"3a82f6d9-2063-4fd7-aa79-dedc4222c58c","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"af19e56c-eaf1-4b0b-93f9-74b9ac1843c2"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"605b9ea8-5ed1-4750-8921-88bc481ffbc4","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"30ac52a8-ee50-439c-83c8-df75ab49374a"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"3e97cb0b-80dd-4d12-8205-852c759a3f55","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"6a059555-2555-4c7f-a722-2ab4ca0440c5"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"76a918d5-1242-4b97-a252-550200546f5c","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"c35fa0be-6e51-4d14-9a52-6b0174cc1aab"}}}],"id":"8658198e-ea8a-45ef-b05f-b2810aa3e015","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1320,"y":80},"width":150,"height":40,"radius":0}}},"id":"6616907b-5ec0-4c2d-b47b-885343226b81","savedPayload":{"position":{"x":10492.226838547804,"y":25390.75587290283},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a9786387-316d-4b02-a53a-60187e2e17ed","savedPayload":{"position":{"x":11138.236958169193,"y":25564.296880103568},"targetPosition":{"x":11472.267056451483,"y":24985.351675411093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":1135,"y":395},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"BBTB Binance BTC/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-05-27T08:46:57.183Z\",\n \"toDate\": \"2020-05-27T11:00:59.999Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"28d6f2c6-d921-4bc6-a262-f9d432e43a75","savedPayload":{"position":{"x":10492.140742264783,"y":24579.9362145769},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 8539.15569832808,\n \"maxValue\": 10398.820427646755,\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"305a3f31-2554-45f4-9a5a-063087eade65","savedPayload":{"position":{"x":10469.108817024662,"y":24406.41410216667},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-min\"}","id":"af0e57b5-269b-4d97-ac21-76195ede4cd6","savedPayload":{"position":{"x":10491.878304594275,"y":24233.318318413578},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"8b7edeec-2998-4877-95d6-4bc85a91f199","savedPayload":{"position":{"x":46248.05137575185,"y":30539.981477083165},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"dd7c8795-bb24-4438-9d77-b37a9000ad7f"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"2360e8bf-a667-40b9-ad6e-84bca97a4c90","savedPayload":{"position":{"x":46348.34452605566,"y":30544.761548094564},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"6929ebe7-6486-4299-add5-ed0282500d91"}}},{"type":"Layer","name":"Resistances","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f2d657ea-cfc5-47d7-9a00-b1c1ebc61e3f","savedPayload":{"position":{"x":46446.02717816587,"y":30566.09887872283},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Resistances","id":"0669d924-aace-46d1-b126-ccced8fd33cf"}}},{"type":"Layer","name":"Supports","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5f830182-98fa-4e85-b66b-f1e240d821c9","savedPayload":{"position":{"x":46538.63881539089,"y":30603.234570446057},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Supports","id":"5e7a0e50-e6ed-4106-8025-8b35ad6c597c"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ae39c816-1963-4071-af1d-22d6cf94041e","savedPayload":{"position":{"x":46623.76511494318,"y":30655.094055474026},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"1d7dd537-5f6f-4eb2-8e56-ddba0aef720f"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"84a553d0-1d85-4164-8a7e-f583326a807d","savedPayload":{"position":{"x":46699.14444013288,"y":30720.24134340254},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"221c8d22-8a7f-4014-a7ed-0bafc886b123"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"c2fde932-5320-4d26-a998-4a4f5bf4d847","savedPayload":{"position":{"x":46762.751722972724,"y":30796.894888988827},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"d83476c3-2f0b-4d4a-abb2-0e47ed0a421d"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"986d6828-d93c-4eba-9ac2-c2c94d90582e","savedPayload":{"position":{"x":46812.8682529904,"y":30882.964414919832},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"5ffc6a67-e33b-422b-8e36-f9711f93c723"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"90090b4c-f6bb-465f-8240-1ff1b829503d","savedPayload":{"position":{"x":46848.135118547885,"y":30976.104683991685},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"0428f20b-9620-480e-a531-dbb2e5f59ef4"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"3100c7a8-46ce-4713-bb6c-4a90bf09dcbc","savedPayload":{"position":{"x":46867.59367597035,"y":31073.77793275672},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"48f7953c-f62d-4292-b042-d1ac05f8f80f"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\"\n}","id":"534a2350-9486-4c2b-8e42-0988e56d4a6e","savedPayload":{"position":{"x":46870.67346817683,"y":31173.31982222448},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"3b9a3c93-6d41-440e-89a2-2fd1b2dde603"}}},{"type":"Layer","name":"Base5 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"948561ae-efea-46e1-9667-5c4817118eca","savedPayload":{"position":{"x":46857.28116383152,"y":31271.994178178073},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"2404b1eb-c7c9-46e7-b22a-93cfcc3739f4"}}},{"type":"Layer","name":"Base6 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"49e73773-8345-4e59-9fed-0cf16c82be08","savedPayload":{"position":{"x":46827.84146788965,"y":31367.11798477374},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"1510fd36-633e-40a7-adbe-680660d64bd0"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"0f88f124-bb93-4bac-918e-fd11496d1a76","savedPayload":{"position":{"x":46783.15367313365,"y":31456.101697387832},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"70401ea0-3fed-4e40-8bba-a1e5adce9b8c"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"5fcb4df6-3903-4e0a-b29d-4ca52ca10f40","savedPayload":{"position":{"x":46724.43510527031,"y":31536.52194014277},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"06ac8eb7-8b14-42b1-9e2e-466280ade032"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"b9c8e51c-82eb-4dc5-9b12-01a5c660e27d","savedPayload":{"position":{"x":46653.28455923557,"y":31606.187054109774},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"014bba70-64d4-4035-b06d-145ee9b4c54c"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e101b9b9-54f7-4450-b658-41d428fe98b3","savedPayload":{"position":{"x":46571.641403531,"y":31663.200135592506},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"768cc06c-6fdf-491a-a741-5e08f0e25e38"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"7f4a8c67-cfb0-4370-a7d1-3dbb51a4200a","savedPayload":{"position":{"x":46478.30453269399,"y":31706.995649584336},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"40794460-b815-498f-a245-e677de0eed86"}}}],"id":"4ecd5f52-f81e-456c-9497-9c1d2fe4c659","savedPayload":{"position":{"x":46269.336201145576,"y":31141.93017159017},"targetPosition":{"x":45678.899180525084,"y":31259.254527781533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"6916ddb0-8156-49b5-a37b-16818ad780fd","savedPayload":{"position":{"x":10558.729861137988,"y":24071.895181337284},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 2042396.836815424,\n \"maxValue\": 2051300.858079199,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"fea71c82-c589-4e2b-9a23-a9f90a980a5c","savedPayload":{"position":{"x":44405.55033743636,"y":31261.51022477371},"targetPosition":{"x":44080.414675039254,"y":31287.13850027945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0358d7fb-73e1-4099-bbad-672d80f35e8e","savedPayload":{"position":{"x":44612.89390157048,"y":31479.949969919875},"targetPosition":{"x":44401.28500610063,"y":31441.688531642707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"98e6c917-f4b7-4b71-9215-de3ccaf3dc0c"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"1647ec62-daa0-4985-ae3d-9ad7b3222397","savedPayload":{"position":{"x":44564.361174041755,"y":31581.712327942194},"targetPosition":{"x":44401.28500610063,"y":31441.688531642707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"111f471b-a72c-4330-97b0-3f2b310f3c55","savedPayload":{"position":{"x":44401.28500610063,"y":31441.688531642707},"targetPosition":{"x":44080.414675039254,"y":31287.13850027945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"237e33ff-32f9-4f45-bb51-b42e93d4f2e3","savedPayload":{"position":{"x":10665.086276963259,"y":23933.289816556313},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 24818.86417825609,\n \"maxValue\": 24953.3046073232,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"9294ac73-b348-4f8c-aa4b-a98e72b643ce","savedPayload":{"position":{"x":44361.21664273736,"y":31366.73167335227},"targetPosition":{"x":44060.4423815896,"y":31347.32101223103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"e8cef08c-fcbb-4430-8a2f-825d101f44e3","savedPayload":{"position":{"x":44529.19471727387,"y":31592.619948516272},"targetPosition":{"x":44324.99063603653,"y":31523.731134007154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"4a3ed8eb-a73e-4fb4-835a-681cf47d7373"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"ce432b11-fd42-4bbb-be67-be70436e1935","savedPayload":{"position":{"x":44467.06932232549,"y":31685.848244771263},"targetPosition":{"x":44324.99063603653,"y":31523.731134007154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"728d6f08-086f-41ba-9126-30ec56a45ea5"}}}],"id":"40c545c9-8f6e-4777-a5b7-6386c382d0ef","savedPayload":{"position":{"x":44324.99063603653,"y":31523.731134007154},"targetPosition":{"x":44060.4423815896,"y":31347.32101223103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"3b7bd98c-c062-412b-8efc-b6943b0c57c4","savedPayload":{"position":{"x":10803.694986500428,"y":23826.93951465946},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 913.9458988180226,\n \"maxValue\": 917.9458988180226,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"33fca6f7-ae02-4d47-987b-6d4cdd54d7dc","savedPayload":{"position":{"x":44290.58808276839,"y":31546.332726046596},"targetPosition":{"x":44008.67786449814,"y":31450.627230444796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3f2dd6ab-cbb0-47d4-bcc0-4c65a6a26bbf","savedPayload":{"position":{"x":44413.860692334245,"y":31705.270868973323},"targetPosition":{"x":44217.224018592766,"y":31688.7983598539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"7ccbd0c1-c804-47e3-9314-14cbb756c806"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6970ee87-56eb-42e1-a7f5-e8496ae7c14e","savedPayload":{"position":{"x":44370.6894603055,"y":31786.435037256044},"targetPosition":{"x":44217.224018592766,"y":31688.7983598539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"08f223a8-9707-4c45-b638-1fe0e4a2b053"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"8467da0c-25b2-4471-8a51-d10e22c09575","savedPayload":{"position":{"x":44303.94190533702,"y":31846.937174734503},"targetPosition":{"x":44217.224018592766,"y":31688.7983598539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"66f1a9be-fe96-48c3-91e4-500c6e246423"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"538dc51b-9d04-4064-8997-7c2cfd01def4","savedPayload":{"position":{"x":44207.172795775405,"y":31883.5736299024},"targetPosition":{"x":44217.224018592766,"y":31688.7983598539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"e432c706-cbcd-4af0-b23c-b18e5b29377a"}}}],"id":"413ae363-1475-4fb5-918f-607c5ee50198","savedPayload":{"position":{"x":44217.224018592766,"y":31688.7983598539},"targetPosition":{"x":44008.67786449814,"y":31450.627230444796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"6fbb972a-6cb6-479d-bbd8-20d96f997ec7","savedPayload":{"position":{"x":10965.11030574667,"y":23760.090535827057},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"c0059d35-5a9a-4569-9384-72e2e15f134d","savedPayload":{"position":{"x":27557.63582153647,"y":27912.736751977856},"targetPosition":{"x":27650.227157061017,"y":28257.50773383182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"1ab2b96f-e3d5-46a0-9be0-2f2b76209ea2","savedPayload":{"position":{"x":27665.65594917696,"y":27585.32604165042},"targetPosition":{"x":27743.053578769875,"y":27912.28127902672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"653622df-b35b-4c72-9b1d-cbbea2d45a93"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"3d8a3ad2-2047-4906-b695-5336d5d7c98a","savedPayload":{"position":{"x":27773.681834722982,"y":27575.417965010536},"targetPosition":{"x":27743.053578769875,"y":27912.28127902672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"bcd39fee-3584-4e3a-b524-05ecb62d4582"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"75f4bc8d-ba22-4a6e-a8c2-2c384ef2b98c","savedPayload":{"position":{"x":27879.136658694806,"y":27601.456940514337},"targetPosition":{"x":27743.053578769875,"y":27912.28127902672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"d6a48300-ab24-4b7b-8fb1-b431e389c7d1"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"db1b234c-5cba-4b03-8572-755e2af13f73","savedPayload":{"position":{"x":27979.473145949694,"y":27672.59337035246},"targetPosition":{"x":27743.053578769875,"y":27912.28127902672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"aa60feec-3e11-4509-ab4f-5eac17ea7d3b"}}}],"id":"ce11bc60-a642-46e6-ab04-99b6835f22d3","savedPayload":{"position":{"x":27743.053578769875,"y":27912.28127902672},"targetPosition":{"x":27650.227157061017,"y":28257.50773383182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1770,"y":80},"width":150,"height":40,"radius":0}}},"id":"d3f769da-9958-4549-b2d9-7eb8582f94c2","savedPayload":{"position":{"x":11138.157252601008,"y":23737.30184414623},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-min\"}","id":"4c7c5182-d380-459d-aaf3-27cf75fff424","savedPayload":{"position":{"x":28262.385658877018,"y":28130.53416813641},"targetPosition":{"x":28262.41822833366,"y":28486.384792584635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"8c3a6cb3-9c1c-4a56-8e45-34da3b7211a5","savedPayload":{"position":{"x":28447.69443236196,"y":27841.456778292883},"targetPosition":{"x":28440.385696197893,"y":28177.98107529941},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"2004d488-ba55-478c-afa4-c00a555bf34c"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"f6941192-1842-4fa5-9963-3d82963ccf8f","savedPayload":{"position":{"x":28557.462280733387,"y":27859.50803963232},"targetPosition":{"x":28440.385696197893,"y":28177.98107529941},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"7859d024-817a-4059-8a17-86690194f9de"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"dbc9d245-aa65-4b6e-bed2-43a76dd4c5f6","savedPayload":{"position":{"x":28655.050318792713,"y":27915.11964276374},"targetPosition":{"x":28440.385696197893,"y":28177.98107529941},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"dd541e63-8071-4b0f-8eb8-5fd50ef3eb82"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"d4c540d0-ef98-40c5-8b3b-401a36d97a35","savedPayload":{"position":{"x":28729.501541674534,"y":28006.267495681434},"targetPosition":{"x":28440.385696197893,"y":28177.98107529941},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"11af0867-3396-48d4-b794-9d133d2d2416"}}}],"id":"848138ac-75f4-4f45-9d75-5f3efd1b1851","savedPayload":{"position":{"x":28440.385696197893,"y":28177.98107529941},"targetPosition":{"x":28262.41822833366,"y":28486.384792584635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1620,"y":80},"width":150,"height":330,"radius":0}}},"id":"7e78029b-0e92-4aca-b46e-b0abd6a9efc1","savedPayload":{"position":{"x":11311.290953212665,"y":23760.139397561445},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"30f19a00-1682-4e5b-bbf1-038de1e095a0","savedPayload":{"position":{"x":28472.766660410845,"y":29349.031832198143},"targetPosition":{"x":28472.716345933826,"y":29707.546693237375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"55f431d8-2f2b-4a23-8918-c7e648f501f4","savedPayload":{"position":{"x":28819.954200077675,"y":29131.835390461678},"targetPosition":{"x":28725.76222074944,"y":29454.779651892102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"3713af17-7ed8-4d32-abbb-66be7ba3d95b"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"352896a0-4682-4e04-b63a-8c449e290e3c","savedPayload":{"position":{"x":28923.00109202421,"y":29179.54612793986},"targetPosition":{"x":28725.76222074944,"y":29454.779651892102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"8206a3c4-7a92-4f52-aa29-d0b912511e94"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"ad636a90-0f4f-4851-8ac4-f1d8f62db35f","savedPayload":{"position":{"x":28999.37401037677,"y":29254.845401658935},"targetPosition":{"x":28725.76222074944,"y":29454.779651892102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"82cb4b63-c7ed-4e1c-b558-5caf08e7840e"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"46e22bd5-7a0a-4cf4-a07a-ffb56e480b13","savedPayload":{"position":{"x":29049.875305170575,"y":29364.278029383444},"targetPosition":{"x":28725.76222074944,"y":29454.779651892102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"35c51f59-d967-4fb9-bf3d-ebef155fe90a"}}}],"id":"b3fbff56-9599-4434-b850-ecde29200a93","savedPayload":{"position":{"x":28725.76222074944,"y":29454.779651892102},"targetPosition":{"x":28472.716345933826,"y":29707.546693237375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1470,"y":80},"width":150,"height":40,"radius":0}}},"id":"6a6e8794-41f5-43a6-afd2-7e46272b49f6","savedPayload":{"position":{"x":11472.759865802207,"y":23827.087856289705},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-min\"}","id":"0e5d370a-9170-44e8-870a-20dcc784a793","savedPayload":{"position":{"x":28317.561321721798,"y":28460.143313868284},"targetPosition":{"x":28139.557768239833,"y":28769.97071387159},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"d4b2f167-9859-46d5-a98f-18ce9b8c2c37","savedPayload":{"position":{"x":28624.627247902066,"y":28305.973052222267},"targetPosition":{"x":28447.39063058376,"y":28591.244910585203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"84c5619b-c379-4bed-bd1c-3dccfc840fa7"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"303943c9-fa32-4510-abdb-59c743008a7a","savedPayload":{"position":{"x":28705.758217764087,"y":28373.020535680873},"targetPosition":{"x":28447.39063058376,"y":28591.244910585203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"9cd0c0da-e0df-4b83-a7f5-7e503f050020"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"09bd756c-955e-40c3-b093-f5bd16a47d94","savedPayload":{"position":{"x":28763.500035918594,"y":28466.28104399784},"targetPosition":{"x":28447.39063058376,"y":28591.244910585203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"05aa1029-fde5-4240-b5ef-31636ed817ee"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"7baed766-dcbe-4ca9-a45c-f09d5e1f0c0c","savedPayload":{"position":{"x":28784.40971720822,"y":28589.492110455},"targetPosition":{"x":28447.39063058376,"y":28591.244910585203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"8681f8d9-c6fa-4966-aa76-e627000962cb"}}}],"id":"73aed3a7-3c46-4847-85a8-1da38a836b75","savedPayload":{"position":{"x":28447.39063058376,"y":28591.244910585203},"targetPosition":{"x":28139.557768239833,"y":28769.97071387159},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1320,"y":80},"width":150,"height":40,"radius":0}}},"id":"0440d6cc-9623-40ab-b3fd-b6fc234d2550","savedPayload":{"position":{"x":11611.635854119537,"y":23933.882953163084},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f2065c00-1afb-40e3-937c-fa4046f388a2","savedPayload":{"position":{"x":11138.15835124918,"y":24406.41899509399},"targetPosition":{"x":11472.267056451483,"y":24985.351675411093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":725,"y":395},"width":240,"height":113.625,"radius":0}}}],"id":"64fa2a31-21ea-4b56-a625-dc4082876a89","savedPayload":{"position":{"x":11472.267056451483,"y":24985.351675411093},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":0,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"t"}}}],"id":"c53a4385-3fb3-49d5-b506-99bcaef2c141","savedPayload":{"position":{"x":12809.806237131383,"y":24985.35640053908},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":0,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"c"}}},{"type":"Trading System","name":"BB Top Bounce","code":"{ \n\"codeName\": \"\"\n}","strategies":[{"type":"Strategy","name":"S1 - 3H Down","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"99948a6e-e866-4339-86ba-eac367226312","savedPayload":{"position":{"x":31745.87792199155,"y":30844.340258645996},"targetPosition":{"x":32052.38122416619,"y":30583.023145060495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f0534c68-ab47-4370-b1fd-b3be4c1c262f","savedPayload":{"position":{"x":32052.38122416619,"y":30583.023145060495},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"d3bd1690-1f94-484b-ac3c-7be2c7be85ed","savedPayload":{"position":{"x":31605.618112221746,"y":30565.806770971594},"targetPosition":{"x":31989.318028702757,"y":30441.460815337527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2d7334d-cf52-44d9-a20e-5be201ca6799","savedPayload":{"position":{"x":31989.318028702757,"y":30441.460815337527},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"d1fa707f-eb75-4b1c-8117-688b9b94e539","savedPayload":{"position":{"x":31554.61755893405,"y":30257.172197674274},"targetPosition":{"x":31956.687749228324,"y":30288.882416651897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fb71bcfb-2a40-4e8a-b8e8-b492128350a0","savedPayload":{"position":{"x":31956.687749228324,"y":30288.882416651897},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","id":"8c8c5128-b88b-44a5-8e36-d5c61127404f","savedPayload":{"position":{"x":31639.94576021355,"y":29954.803831254892},"targetPosition":{"x":31999.203547395213,"y":30137.794869043297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22246178-a8f9-4ec8-b55b-36cf7a24fbff","savedPayload":{"position":{"x":31999.203547395213,"y":30137.794869043297},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Medium, Steep or Extreme","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Medium\" || chart.at03hs.bollingerSubChannel.slope === \"Steep\" || chart.at03hs.bollingerSubChannel.slope === \"Extreme\" ","id":"bf8df41c-c62f-4cd6-840e-1dd538359c3b","savedPayload":{"position":{"x":31834.655620259655,"y":29707.873760246843},"targetPosition":{"x":32096.553555740164,"y":30014.31400704127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9dba774d-1afa-40dd-b5ec-8f4029824473","savedPayload":{"position":{"x":32096.553555740164,"y":30014.31400704127},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope === \"Gentle\"","id":"c4428437-7308-46f3-884e-22d2aac8d1a0","savedPayload":{"position":{"x":32109.03084733644,"y":29554.180048988066},"targetPosition":{"x":32233.790964800362,"y":29937.452098557496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7766453d-73ca-46f7-a39c-00f4f11af05e","savedPayload":{"position":{"x":32233.790964800362,"y":29937.452098557496},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"eac9b2d4-4364-4116-9d99-e92b8bbce5e7","savedPayload":{"position":{"x":32420.849012406088,"y":29517.112042973775},"targetPosition":{"x":32389.86788822145,"y":29918.98295933012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40cb1853-f93e-4023-8d45-708376281bde","savedPayload":{"position":{"x":32389.86788822145,"y":29918.98295933012},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8d558598-60b5-4104-9a84-1773b125c509","savedPayload":{"position":{"x":32358.475513276375,"y":30321.19625417135},"targetPosition":{"x":32756.369395728692,"y":30473.2782041962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3afd4ef5-2175-48fa-844f-e4e4ed775b26","savedPayload":{"position":{"x":32756.369395728692,"y":30473.2782041962},"targetPosition":{"x":33115.49575849726,"y":30655.993268223905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"0fb11814-5ba2-4c23-86b0-e6f8c01363e6","savedPayload":{"position":{"x":32617.29250092579,"y":29121.850815516915},"targetPosition":{"x":32741.838475650537,"y":29505.18938868129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32415e55-51cb-44cf-a0d9-9de73b946da8","savedPayload":{"position":{"x":32741.838475650537,"y":29505.18938868129},"targetPosition":{"x":32866.375295950726,"y":29888.60205395678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"317dd29a-db32-4f10-bee0-325b7a7c816c","savedPayload":{"position":{"x":32866.375295950726,"y":29888.60205395678},"targetPosition":{"x":32991.015860687716,"y":30271.979726021065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"547d578f-4568-4b1f-965d-1d598b7b67bb","savedPayload":{"position":{"x":32991.015860687716,"y":30271.979726021065},"targetPosition":{"x":33115.49575849726,"y":30655.993268223905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"903651ac-50d3-44ea-aae2-0b6bbe43b989","savedPayload":{"position":{"x":32519.153930150867,"y":29623.888173680094},"targetPosition":{"x":32898.8713319454,"y":29758.68564157265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4c4c6084-bebe-46ce-a12f-68924568c81d","savedPayload":{"position":{"x":32898.8713319454,"y":29758.68564157265},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"b16e3f56-5a3f-4af9-a9d1-ff3bbf9ca0b8","savedPayload":{"position":{"x":32679.72474976604,"y":29354.39087414772},"targetPosition":{"x":32979.10492621333,"y":29624.347968493967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c4e1f247-db57-4488-81e9-c7602562b8f3","savedPayload":{"position":{"x":32979.10492621333,"y":29624.347968493967},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"34452811-c161-4b33-8335-bc996a8638ad","savedPayload":{"position":{"x":32931.691553348195,"y":29166.564159994483},"targetPosition":{"x":33105.053842370166,"y":29530.40381131325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"db35b110-1991-4e3d-a1bd-04b0d1bad669","savedPayload":{"position":{"x":33105.053842370166,"y":29530.40381131325},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","id":"8fcf0aed-cd6b-4df9-8ec4-4511fcde66d8","savedPayload":{"position":{"x":33236.37478842459,"y":29089.384601838196},"targetPosition":{"x":33257.444177016405,"y":29491.79286529503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48bd56ea-0d5a-404d-a887-061493bebbcf","savedPayload":{"position":{"x":33257.444177016405,"y":29491.79286529503},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Medium, Steep or Extreme","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Medium\" || chart.at03hs.bollingerSubChannel.slope === \"Steep\" || chart.at03hs.bollingerSubChannel.slope === \"Extreme\" ","id":"40b36ec9-ebf1-43fe-8003-f0d130b7cb36","savedPayload":{"position":{"x":33547.15819738872,"y":29134.731069626498},"targetPosition":{"x":33412.887765036874,"y":29514.443714403056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c90a754-52bd-47cf-a3b5-95ad037bbb62","savedPayload":{"position":{"x":33412.887765036874,"y":29514.443714403056},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope === \"Gentle\"","id":"3f28257c-cc33-4c59-b40b-85bc88821f96","savedPayload":{"position":{"x":33817.50271555692,"y":29295.712530312267},"targetPosition":{"x":33548.076869473945,"y":29594.931818674166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fc2fb509-2854-4359-aa1e-b32a2174bd35","savedPayload":{"position":{"x":33548.076869473945,"y":29594.931818674166},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"5226a3d7-c8f8-41bd-9b45-f6238576628f","savedPayload":{"position":{"x":34005.82672873455,"y":29547.817722630363},"targetPosition":{"x":33642.2312063245,"y":29721.07059078792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b38876e-bcad-4cec-90e2-c2e358723d29","savedPayload":{"position":{"x":33642.2312063245,"y":29721.07059078792},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"46e2ecf6-82ae-435d-a3a0-d5e2903404fd","savedPayload":{"position":{"x":33278.333917070595,"y":29894.451567060434},"targetPosition":{"x":33299.00147256256,"y":30297.01571488586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"c296b2ce-4039-48ec-b8bb-99c9d96853eb","savedPayload":{"position":{"x":33609.682057130776,"y":29953.38300829202},"targetPosition":{"x":33434.376532064154,"y":30147.396378822883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d0dbc486-d195-4db3-b895-385088b800ba","savedPayload":{"position":{"x":33434.475794635255,"y":30147.282072860846},"targetPosition":{"x":33299.00147256256,"y":30297.01571488586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"93418d2a-3047-4f80-aa59-0c6fdb35ad43","savedPayload":{"position":{"x":33299.00147256256,"y":30297.01571488586},"targetPosition":{"x":33115.49575849726,"y":30655.993268223905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"1055a2cc-e93a-4dd8-a992-f56553527ddd","savedPayload":{"position":{"x":33115.49575849726,"y":30655.993268223905},"targetPosition":{"x":33239.48474341851,"y":31038.643250235426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"853852d1-d2fa-4e32-a891-e98ca52a556e","savedPayload":{"position":{"x":33687.32525899127,"y":28630.28850235298},"targetPosition":{"x":33979.54395432601,"y":28708.55040929766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"3bdebe73-3546-43f3-b644-73ec62086c66","savedPayload":{"position":{"x":33666.51804208801,"y":27539.983917204023},"targetPosition":{"x":33744.69548060642,"y":27832.06710596675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"36615e86-2c8e-4182-ab3e-5c263c44fcb1","savedPayload":{"position":{"x":33744.70691352631,"y":27832.134330548877},"targetPosition":{"x":33822.954696502624,"y":28124.404333447008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6aae47da-70b4-4fd3-b2da-65a1d645b915","savedPayload":{"position":{"x":33822.86695788699,"y":28124.39717183063},"targetPosition":{"x":33901.15598726982,"y":28416.52491269287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"18261801-3d1b-4dfe-872c-019fff59db4d","savedPayload":{"position":{"x":33901.15572942444,"y":28416.51381216433},"targetPosition":{"x":33979.54395432601,"y":28708.55040929766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"678cc7e5-c7cf-48e5-beee-37455617aa15","savedPayload":{"position":{"x":33979.616026972566,"y":28708.527885863212},"targetPosition":{"x":34193.31786858143,"y":28922.065415950765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a57d76af-2d34-41a0-b68b-a5dda59436b4","savedPayload":{"position":{"x":34193.31786858143,"y":28922.065415950765},"targetPosition":{"x":34406.84857131276,"y":29135.252280701574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"f191391f-f798-4819-b46b-8ae9538ff71f","savedPayload":{"position":{"x":34123.43694196574,"y":28303.266547138595},"targetPosition":{"x":34313.34298525399,"y":28538.488004355862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"65b73feb-09e0-491d-99fd-30f331acac97","savedPayload":{"position":{"x":34436.073537225195,"y":27376.24000730662},"targetPosition":{"x":34483.20864925244,"y":27674.87599559046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fa12e6f8-f9d6-4eb7-9e3b-1e0f17581548","savedPayload":{"position":{"x":34483.301676393894,"y":27675.108504545075},"targetPosition":{"x":34530.31165278271,"y":27973.96671756476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"2eff0ccd-bf54-4456-aff5-9f46cf1469ff","savedPayload":{"position":{"x":35000.38389861486,"y":27593.093039459363},"targetPosition":{"x":34765.46226665505,"y":27783.35172716299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a4af8e92-a505-48fd-8080-8a715cd856dc","savedPayload":{"position":{"x":34765.43852093076,"y":27783.562045970917},"targetPosition":{"x":34530.31165278271,"y":27973.96671756476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ef07d7e4-53c0-4746-a1a2-4b4856cba9df","savedPayload":{"position":{"x":34530.30099769694,"y":27973.974792996265},"targetPosition":{"x":34421.88845899308,"y":28256.249074095707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"2484f7be-38df-4139-94b4-d753e6d50eed","savedPayload":{"position":{"x":34421.82014227279,"y":28256.221955834993},"targetPosition":{"x":34313.34298525399,"y":28538.488004355862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"8ba924d4-3ac9-41de-ba03-02368b3bde5a","savedPayload":{"position":{"x":34313.4187637897,"y":28538.448023932728},"targetPosition":{"x":34360.1918698118,"y":28837.00124492984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8c2601bb-ff4c-4947-b514-96f43313e134","savedPayload":{"position":{"x":34360.1600707038,"y":28837.029615626387},"targetPosition":{"x":34406.84857131276,"y":29135.252280701574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"058068ed-ad77-4574-b61b-58e54f0db35b","savedPayload":{"position":{"x":34682.314020993916,"y":28597.031066228574},"targetPosition":{"x":34544.60399635092,"y":28866.212135868725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9ba67283-694d-42a9-995f-19e53d5519d0","savedPayload":{"position":{"x":34544.60399635092,"y":28866.212135868725},"targetPosition":{"x":34406.84857131276,"y":29135.252280701574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"bd3b401d-5b77-43ba-87e1-c4f9552bf56f","savedPayload":{"position":{"x":34946.04548109355,"y":28861.386648858126},"targetPosition":{"x":34676.46337129765,"y":28998.42894504949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4938fc97-68bf-490e-85a0-66254b98bbac","savedPayload":{"position":{"x":34676.46337129765,"y":28998.42894504949},"targetPosition":{"x":34406.84857131276,"y":29135.252280701574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3f9517c2-52d1-4922-a838-1aacf268bcc7","savedPayload":{"position":{"x":34406.84857131276,"y":29135.252280701574},"targetPosition":{"x":34217.642980461096,"y":30328.208176155946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"97162469-0f8d-4710-81e1-1a1f3070a5ac","savedPayload":{"position":{"x":34462.41262967484,"y":30150.616620789337},"targetPosition":{"x":34217.642980461096,"y":30328.208176155946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"b23bab61-270d-4e0e-bcdc-f57457942e30","savedPayload":{"position":{"x":34822.17690991721,"y":30423.728911300397},"targetPosition":{"x":34516.57606336537,"y":30375.449231047525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a92fd7c1-db55-485b-bb59-7894f339959d","savedPayload":{"position":{"x":34516.582487985164,"y":30375.451352699893},"targetPosition":{"x":34217.642980461096,"y":30328.208176155946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e35699bc-1fe9-4cdc-b029-6361f0ce8592","savedPayload":{"position":{"x":34217.642980461096,"y":30328.208176155946},"targetPosition":{"x":33239.48474341851,"y":31038.643250235426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Standard Run","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"0e9e87f6-4636-4f1f-8091-d1c3090ee345","savedPayload":{"position":{"x":34864.4258519058,"y":31073.451873580834},"targetPosition":{"x":34461.11172798981,"y":31137.136196285086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"4a44eb01-4bb2-4b85-bd64-cab1b6a4678f","savedPayload":{"position":{"x":34461.11172798981,"y":31137.136196285086},"targetPosition":{"x":33939.89373966002,"y":31219.42301087441},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a9042fd2-0f05-4208-91b7-81e00b6493fb","savedPayload":{"position":{"x":33964.17199362247,"y":31212.629100310176},"targetPosition":{"x":33565.701923404486,"y":31275.6154406843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"aadae3ad-5cf1-4417-baad-c6e8b0ab8f31","savedPayload":{"position":{"x":34479.54862907233,"y":31441.47133565945},"targetPosition":{"x":34242.223416518915,"y":31767.17190193582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"bfc7fa92-c54c-43e7-8a6d-f89572d1fee2","savedPayload":{"position":{"x":35534.17506364013,"y":32601.01834737772},"targetPosition":{"x":35227.57871058723,"y":32377.80094191258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5ea229bf-a68c-40f9-a6ac-8bae8171ecda","savedPayload":{"position":{"x":35227.57871058723,"y":32377.80094191258},"targetPosition":{"x":34900.77194830591,"y":32141.7292100267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"585c2f06-93d7-403f-ab70-0aab9c936f72","savedPayload":{"position":{"x":34900.77194830591,"y":32141.7292100267},"targetPosition":{"x":34573.63535245736,"y":31912.267182708572},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"cddeb772-d0f7-4ba8-b303-b623746f3f6e","savedPayload":{"position":{"x":34573.63535245736,"y":31912.267182708572},"targetPosition":{"x":34242.223416518915,"y":31767.17190193582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"4862beb3-990c-43ba-a21b-93ce1227d060","savedPayload":{"position":{"x":34095.983992917565,"y":33156.25692616599},"targetPosition":{"x":33932.40423152793,"y":32787.97422544229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dc6ade59-03df-4aa5-a892-5e225a38cb35","savedPayload":{"position":{"x":33932.40423152793,"y":32787.97422544229},"targetPosition":{"x":33768.76262490215,"y":32419.670081760734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"54428b89-eb5f-4844-9fec-b049f074b3c8","savedPayload":{"position":{"x":33684.54360513825,"y":33221.50127229437},"targetPosition":{"x":33726.58189119683,"y":32820.64500846274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"81b0626e-e4c7-40dc-ae8d-ec5603067461","savedPayload":{"position":{"x":33726.58189119683,"y":32820.64500846274},"targetPosition":{"x":33768.76262490215,"y":32419.670081760734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"05867691-257f-4795-b70f-180ef26713fd","savedPayload":{"position":{"x":33295.15009910802,"y":33072.03862949453},"targetPosition":{"x":33531.844828303714,"y":32745.9038412817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2d354bdf-7142-4921-aec4-60a295569584","savedPayload":{"position":{"x":33531.844828303714,"y":32745.9038412817},"targetPosition":{"x":33768.76262490215,"y":32419.670081760734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"74adc18a-fcb8-47ad-a447-1595f16cc7f6","savedPayload":{"position":{"x":33032.65657548499,"y":32747.964707298193},"targetPosition":{"x":33400.58073167286,"y":32583.817208006196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c760094-3830-48d3-a97c-a9dee27f3c7e","savedPayload":{"position":{"x":33400.58073167286,"y":32583.817208006196},"targetPosition":{"x":33768.76262490215,"y":32419.670081760734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"45a3f428-25a5-4cf2-a13f-08bf3bbc4972","savedPayload":{"position":{"x":32967.43396894057,"y":32336.52703312829},"targetPosition":{"x":33367.984332677246,"y":32377.98795861293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6106746d-8995-425e-8dd9-009894a5dd07","savedPayload":{"position":{"x":33367.984332677246,"y":32377.98795861293},"targetPosition":{"x":33768.76262490215,"y":32419.670081760734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"61a873ab-dc8f-4023-93cd-a861bd965858","savedPayload":{"position":{"x":33768.76262490215,"y":32419.670081760734},"targetPosition":{"x":34005.569456507634,"y":32093.444793007522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"aa98a93e-c928-4900-854a-97b3750182d2","savedPayload":{"position":{"x":34005.569456507634,"y":32093.444793007522},"targetPosition":{"x":34242.223416518915,"y":31767.17190193582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"83f85765-e13b-406a-bd56-7fd820eebc16"}}}],"announcements":[],"id":"e3b43a25-cbb0-4ebc-ac2f-148a56d7d934","savedPayload":{"position":{"x":34242.223416518915,"y":31767.17190193582},"targetPosition":{"x":33891.42358861794,"y":31512.39396500924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"e603a735-7a74-4654-b0bb-50bee2d1e307","savedPayload":{"position":{"x":34965.37684662937,"y":31962.859663977957},"targetPosition":{"x":34566.985205192934,"y":32026.856287734012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"12b3cadf-b8f9-4f43-8799-40c1509f8d07","savedPayload":{"position":{"x":35934.15152043711,"y":32273.569658836277},"targetPosition":{"x":35565.78497710967,"y":32437.163554507133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d45aa91c-a153-4311-8403-8e4492ffcc95","savedPayload":{"position":{"x":35565.78497710967,"y":32437.163554507133},"targetPosition":{"x":35196.94350553596,"y":32600.98818807042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"47191a8e-485b-4f11-be05-c1b6253da95e","savedPayload":{"position":{"x":36019.79323488345,"y":32698.898330709257},"targetPosition":{"x":35618.76476118394,"y":32656.59127038628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a6eff46-6a7b-4a29-81a4-93a751a056bf","savedPayload":{"position":{"x":35618.76476118394,"y":32656.59127038628},"targetPosition":{"x":35196.94350553596,"y":32600.98818807042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"e9cfe84c-e144-4e95-88ce-8bfdffd42f89","savedPayload":{"position":{"x":35850.04803078668,"y":33074.805375387914},"targetPosition":{"x":35523.743612251135,"y":32837.93392343165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9dfa9604-bc08-4df3-980d-2f8b06185031","savedPayload":{"position":{"x":35523.743612251135,"y":32837.93392343165},"targetPosition":{"x":35196.94350553596,"y":32600.98818807042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"8c332bfe-ab0c-4905-9440-86091b7040b1","savedPayload":{"position":{"x":35526.96283562273,"y":33337.71267605346},"targetPosition":{"x":35362.78202114205,"y":32969.172911299174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e358399e-001d-4d07-83e4-2bf9d65ed1bd","savedPayload":{"position":{"x":35362.78202114205,"y":32969.172911299174},"targetPosition":{"x":35196.94350553596,"y":32600.98818807042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"51ec782d-f54f-46b5-b45a-9db5cf7a380e","savedPayload":{"position":{"x":35078.386460330876,"y":33413.44311371471},"targetPosition":{"x":35120.761185118834,"y":33012.25356399207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c64c6aff-2525-4e58-9e27-ac7a8b3dc8cb","savedPayload":{"position":{"x":35120.761185118834,"y":33012.25356399207},"targetPosition":{"x":35196.94350553596,"y":32600.98818807042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08f82342-86ce-4222-b954-968397dd2d33","savedPayload":{"position":{"x":35196.94350553596,"y":32600.98818807042},"targetPosition":{"x":34870.15982787527,"y":32364.087714314013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"170cad22-eef5-48c3-b5d9-fae484dab493","savedPayload":{"position":{"x":34870.15982787527,"y":32364.087714314013},"targetPosition":{"x":34566.985205192934,"y":32026.856287734012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"83f85765-e13b-406a-bd56-7fd820eebc16"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"0320d330-7d8e-4577-8ea3-debcdf5c4971","savedPayload":{"position":{"x":35201.0639175972,"y":33465.70824658257},"targetPosition":{"x":34945.200145626884,"y":33137.04979310342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6611a627-dfaf-4248-8aaa-e27fb7ac7141","savedPayload":{"position":{"x":34945.200145626884,"y":33137.04979310342},"targetPosition":{"x":34692.15922488175,"y":32823.47675811349},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"51f5f720-c0df-4209-a32f-80f67688004d","savedPayload":{"position":{"x":34403.59582771485,"y":33576.18639286568},"targetPosition":{"x":34547.81576381235,"y":33199.90475745102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"62ebc71f-7dab-4090-9f0e-c557cbbf5045","savedPayload":{"position":{"x":34547.81576381235,"y":33199.90475745102},"targetPosition":{"x":34692.15922488175,"y":32823.47675811349},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9cfa9122-1b64-4a37-877f-1c722493562a","savedPayload":{"position":{"x":34692.15922488175,"y":32823.47675811349},"targetPosition":{"x":34629.497980836786,"y":32425.186055399783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"73f3e391-cceb-4d27-932f-7b3c76d63b24","savedPayload":{"position":{"x":34629.497980836786,"y":32425.186055399783},"targetPosition":{"x":34566.985205192934,"y":32026.856287734012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e3b43a25-cbb0-4ebc-ac2f-148a56d7d934"}}}],"announcements":[],"id":"913c2adb-a405-40e1-b661-300ec59c4ea0","savedPayload":{"position":{"x":34566.985205192934,"y":32026.856287734012},"targetPosition":{"x":34242.223416518915,"y":31767.17190193582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"be65b94d-3942-43c3-96aa-354447d5d591","savedPayload":{"position":{"x":35266.86864213329,"y":32080.796230194483},"targetPosition":{"x":34898.47957079251,"y":32244.880649959683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"fb87ce68-53e9-4553-a0d4-c996920c9b7a","savedPayload":{"position":{"x":35881.98510857697,"y":33453.83239370252},"targetPosition":{"x":35556.24500068716,"y":33217.03786906918},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1c9f9e96-a31d-42dc-a72f-ee8c25057426","savedPayload":{"position":{"x":35556.24500068716,"y":33217.03786906918},"targetPosition":{"x":35230.10643190333,"y":32980.148545011216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"2d8cbbda-0c6c-4f48-ab1a-4f3ee6cb46d1","savedPayload":{"position":{"x":35144.11024531394,"y":33766.74632003621},"targetPosition":{"x":35186.14435295862,"y":33366.033340052745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e4719fbb-2730-46bf-9593-75e9544d860c","savedPayload":{"position":{"x":35186.14435295862,"y":33366.033340052745},"targetPosition":{"x":35230.10643190333,"y":32980.148545011216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"60819e62-c36a-4cf6-86ea-09aa1046f1b7","savedPayload":{"position":{"x":35230.10643190333,"y":32980.148545011216},"targetPosition":{"x":35061.15284169607,"y":32613.19638922832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"297f0537-a281-46ab-89a4-9aab36495673","savedPayload":{"position":{"x":35061.15284169607,"y":32613.19638922832},"targetPosition":{"x":34898.47957079251,"y":32244.880649959683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e3b43a25-cbb0-4ebc-ac2f-148a56d7d934"}}}],"announcements":[],"id":"83f85765-e13b-406a-bd56-7fd820eebc16","savedPayload":{"position":{"x":34898.47957079251,"y":32244.880649959683},"targetPosition":{"x":34566.985205192934,"y":32026.856287734012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cf907f3e-a01a-4ffb-9e3b-23ea0d8f34d1","savedPayload":{"position":{"x":33892.049283641114,"y":31512.87348125915},"targetPosition":{"x":33565.701923404486,"y":31275.6154406843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"fa95edc3-acc6-44c0-acb1-47583e1ff54a","savedPayload":{"position":{"x":33690.80820420145,"y":32071.297117691756},"targetPosition":{"x":33628.26011341306,"y":31673.51260213062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"67446ae0-3e01-451b-8689-d9c7ea48a1f4","savedPayload":{"position":{"x":33629.00012297632,"y":31673.95650524724},"targetPosition":{"x":33565.701923404486,"y":31275.6154406843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3f7a5501-fa20-4b3b-b038-2297cb2fd04e","savedPayload":{"position":{"x":33565.701923404486,"y":31275.6154406843},"targetPosition":{"x":33239.48474341851,"y":31038.643250235426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"938021bb-3f71-4d07-961b-bdac0c208ec6","savedPayload":{"position":{"x":33385.03651416626,"y":31721.91869755804},"targetPosition":{"x":33115.24150182601,"y":31421.868407518647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"dc7931a1-ce6a-4a8b-bc84-65cbfc4ebbd0","savedPayload":{"position":{"x":32676.438509295866,"y":32098.960417908125},"targetPosition":{"x":32895.535995884864,"y":31760.66588131618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f75b57a-e00c-4479-9cf0-7c87eef8254b","savedPayload":{"position":{"x":32895.5338274171,"y":31760.68558474898},"targetPosition":{"x":33115.24150182601,"y":31421.868407518647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2371e1b0-7d6e-47d8-92b3-8447bd933af5","savedPayload":{"position":{"x":33115.24150182601,"y":31421.868407518647},"targetPosition":{"x":33239.48474341851,"y":31038.643250235426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"77e56192-a0b0-4786-afdb-8e59ba757ccf","savedPayload":{"position":{"x":33239.48474341851,"y":31038.643250235426},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S3 - 2H Down","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"0c6d7b91-4bbf-4e27-850c-6348ffea4055","savedPayload":{"position":{"x":31634.350378426207,"y":30259.571095345415},"targetPosition":{"x":32263.43911849039,"y":30259.947220728467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9c8b0541-0125-4ed1-8bcb-2d8a539bcc85","savedPayload":{"position":{"x":32263.43911849039,"y":30259.947220728467},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"b09863b6-7ea3-4929-8b3c-f99409fb1bf1","savedPayload":{"position":{"x":31696.88500088226,"y":29870.632625415637},"targetPosition":{"x":32294.89171998345,"y":30065.140782336246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"26835b4a-83a2-4209-84a0-e38c74ff993a","savedPayload":{"position":{"x":32294.89171998345,"y":30065.140782336246},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"2fc1bc08-9def-4a37-abc3-dbac24a2c360","savedPayload":{"position":{"x":31875.884827815316,"y":29520.365687488113},"targetPosition":{"x":32384.487164002785,"y":29890.063455449697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1fa5642c-48f4-492b-81d3-5d752decd8af","savedPayload":{"position":{"x":32384.487164002785,"y":29890.063455449697},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Down","code":"chart.at02hs.bollingerBand.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","id":"07c23ae8-6440-4b6e-aabe-67afdba80c7c","savedPayload":{"position":{"x":32154.209372947636,"y":29242.349943028978},"targetPosition":{"x":32523.67032296668,"y":29751.085106238465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c14a9e3b-6d84-44c9-8273-1a37850087b4","savedPayload":{"position":{"x":32523.67032296668,"y":29751.085106238465},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at02hs.bollingerBand.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","id":"57d558fd-ecfa-429a-9304-88f41b32b44c","savedPayload":{"position":{"x":32504.830345617527,"y":29063.85702318619},"targetPosition":{"x":32698.994485377014,"y":29661.828315918163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ab49ca45-333d-4ed9-99a1-a3ca632cbbb2","savedPayload":{"position":{"x":32698.994485377014,"y":29661.828315918163},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Side","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Side\"","id":"261d9835-4d23-4b58-946d-b9324d920273","savedPayload":{"position":{"x":32893.22119985897,"y":29002.336709240757},"targetPosition":{"x":32893.22305153142,"y":29631.07615103375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4d450dc4-bfbb-4779-b070-cac385b809c7","savedPayload":{"position":{"x":32893.22305153142,"y":29631.07615103375},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H RSI > 60","code":"chart.at24hs.rsi14.value < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.rsi14.value > 60","id":"c0afd580-e4b8-4c7c-ac4c-7370e5a79a98","savedPayload":{"position":{"x":33281.4681278924,"y":29063.86071973356},"targetPosition":{"x":33087.3880414573,"y":29661.86609096789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"95207d90-4af8-4b5a-8321-0076e8b8929d","savedPayload":{"position":{"x":33087.3880414573,"y":29661.86609096789},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"92ef2b33-6bd1-4ab7-91a4-ddb3e035ed08","savedPayload":{"position":{"x":33632.012109517724,"y":29242.375556754567},"targetPosition":{"x":33262.687218260275,"y":29751.231513287654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3ac7ebe1-3f6f-4e35-a8a2-f39aa509c849","savedPayload":{"position":{"x":33262.687218260275,"y":29751.231513287654},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","id":"6ef3aec8-78cb-4942-bcfd-ff860b2b7971","savedPayload":{"position":{"x":33910.39444114047,"y":29520.60636592229},"targetPosition":{"x":33401.847358196974,"y":29890.34803965414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5af02e84-f067-45ee-8d7e-44966254e430","savedPayload":{"position":{"x":33401.847358196974,"y":29890.34803965414},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20017afc-2e99-4596-9a1d-41b8b8ee7999","savedPayload":{"position":{"x":32893.236637209084,"y":30260.196412414953},"targetPosition":{"x":33087.874215175114,"y":30859.83394852712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"e6080867-291e-4dc7-b00f-582656e25e80","savedPayload":{"position":{"x":33087.874215175114,"y":30859.83394852712},"targetPosition":{"x":33217.802289890395,"y":31259.358809115663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"890f22bb-d291-4fdd-b444-5afbea478f13","savedPayload":{"position":{"x":33996.096905529594,"y":29767.64086654404},"targetPosition":{"x":33805.65783204276,"y":30141.695325277316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ef921c85-8bd3-49cc-aeaa-2556181fec27","savedPayload":{"position":{"x":33805.65783204276,"y":30141.695325277316},"targetPosition":{"x":33599.576454871414,"y":30510.782338093184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d4217f36-b6e4-45dc-979d-5ad1e74d0b85","savedPayload":{"position":{"x":33599.576454871414,"y":30510.782338093184},"targetPosition":{"x":33408.94602515501,"y":30885.02159265233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"92cd971f-1315-425e-883c-4adefb12883e","savedPayload":{"position":{"x":33408.94602515501,"y":30885.02159265233},"targetPosition":{"x":33217.802289890395,"y":31259.358809115663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"f5611889-2d66-4b5a-84ca-1bd444e56cb0","savedPayload":{"position":{"x":33395.423835013324,"y":29567.707236019025},"targetPosition":{"x":33709.38286226146,"y":30112.552280287062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96fdbdfc-c7d9-4e54-972c-de01d3f58a76","savedPayload":{"position":{"x":33709.38286226146,"y":30112.552280287062},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"ccd315a6-ae1c-4fcf-b6d4-deac89aef390","savedPayload":{"position":{"x":33778.40641159468,"y":29431.615941930762},"targetPosition":{"x":33908.92112230485,"y":30046.80251988933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"382fb23e-b4bc-4792-a492-328fa6201f6c","savedPayload":{"position":{"x":33908.92112230485,"y":30046.80251988933},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"cbc7b7f8-b6f1-4752-9259-6372178089e4","savedPayload":{"position":{"x":34170.783725012014,"y":29411.253122777303},"targetPosition":{"x":34105.031023089345,"y":30036.658201403985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"74975af2-4802-47bc-8251-97981c77dc4a","savedPayload":{"position":{"x":34105.031023089345,"y":30036.658201403985},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Down","code":"chart.at02hs.bollingerBand.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","id":"b7bdf1ce-16a5-4fc0-a87b-f8815615ef99","savedPayload":{"position":{"x":34550.61749887825,"y":29513.125500171263},"targetPosition":{"x":34294.97437106376,"y":30087.594297581873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a1e09269-19e5-4dff-8aeb-66d8bf6bd96d","savedPayload":{"position":{"x":34294.97437106376,"y":30087.594297581873},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at02hs.bollingerBand.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","id":"c516d181-ad48-49cd-a298-fddb6e91de94","savedPayload":{"position":{"x":34880.39014568893,"y":29727.362169392713},"targetPosition":{"x":34459.88109390561,"y":30194.77025937824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d57a06c7-d40b-4488-93fe-f7441dd299c6","savedPayload":{"position":{"x":34459.88109390561,"y":30194.77025937824},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Side","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Side\"","id":"9fabe671-7d14-43b5-ba69-831f4f2a066f","savedPayload":{"position":{"x":35127.70499575345,"y":30032.837976998024},"targetPosition":{"x":34583.614143110055,"y":30347.712936148797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"177c777c-ff05-4dc0-8b6b-d663b7329938","savedPayload":{"position":{"x":34583.614143110055,"y":30347.712936148797},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H RSI > 60","code":"chart.at24hs.rsi14.value < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.rsi14.value > 60","id":"e48e0eea-8553-4baa-ab82-de8e822619b3","savedPayload":{"position":{"x":35232.973925329425,"y":30343.470555819193},"targetPosition":{"x":34654.06615516728,"y":30531.468555641797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ee231079-650d-4046-8e5b-ad3a82e09efa","savedPayload":{"position":{"x":34654.06615516728,"y":30531.468555641797},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"241ea7c4-ec8c-4f74-994f-27cdc3cc5084","savedPayload":{"position":{"x":35289.263598407466,"y":30849.634778970838},"targetPosition":{"x":34664.35817900187,"y":30727.80228253821},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b1bb2780-2f92-47da-9ea5-39d0397e7144","savedPayload":{"position":{"x":34664.35817900187,"y":30727.80228253821},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","id":"35f95b09-f037-43ba-96f9-fa9d7d677bea","savedPayload":{"position":{"x":35186.911624698034,"y":31174.495365223673},"targetPosition":{"x":34613.44451250334,"y":30917.967080169867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6d92e5f1-7164-4f38-9a56-07334aee23fd","savedPayload":{"position":{"x":34613.44451250334,"y":30917.967080169867},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2f0018b8-a386-4eb2-8cf8-b61c00af7639","savedPayload":{"position":{"x":34039.16510092277,"y":30662.160080407033},"targetPosition":{"x":33617.50526924846,"y":31130.04262069468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"ef95cbde-2d8b-4b1e-99a5-887e8ae2134c","savedPayload":{"position":{"x":34064.66251833871,"y":31147.655408084436},"targetPosition":{"x":33889.356993272086,"y":31341.668778615298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96060481-8324-4e13-808e-110537619ad7","savedPayload":{"position":{"x":33827.692335875254,"y":31119.423819500727},"targetPosition":{"x":33617.50526924846,"y":31130.04262069468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a937976d-4084-4184-a913-910b75ed6659","savedPayload":{"position":{"x":33617.50526924846,"y":31130.04262069468},"targetPosition":{"x":33217.802289890395,"y":31259.358809115663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"def5d0af-b5ee-43f9-9ea0-0b73cd37d82e","savedPayload":{"position":{"x":33217.802289890395,"y":31259.358809115663},"targetPosition":{"x":33027.197109693196,"y":31632.476242375036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"7e0c459e-9cc8-4d5a-bc57-fb82c79c09c5","savedPayload":{"position":{"x":35135.70214605619,"y":30167.516083927436},"targetPosition":{"x":35293.07724412037,"y":30440.26764173129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"e3edba7e-b9f0-4f02-8f66-ce5b9829d767","savedPayload":{"position":{"x":35922.91984041911,"y":29348.815450539747},"targetPosition":{"x":35765.484647432946,"y":29621.567567535756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"076b5c63-1619-410e-9ee5-1fa66f3d035f","savedPayload":{"position":{"x":35765.484647432946,"y":29621.567567535756},"targetPosition":{"x":35607.95729325596,"y":29894.457895979314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"094675d4-792f-4529-9f36-55540ba6c57d","savedPayload":{"position":{"x":35607.95729325596,"y":29894.457895979314},"targetPosition":{"x":35450.49478104098,"y":30167.39244502679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"7318274d-9569-419a-ba18-c3c1df7191f8","savedPayload":{"position":{"x":35450.49478104098,"y":30167.39244502679},"targetPosition":{"x":35293.07724412037,"y":30440.26764173129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"d4d2eb85-82c2-4c39-9f1f-9c865905dd5b","savedPayload":{"position":{"x":35293.07724412037,"y":30440.26764173129},"targetPosition":{"x":35288.817725527595,"y":30747.9133770426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"295179a4-3458-455d-b4de-549db3a926a8","savedPayload":{"position":{"x":35288.817725527595,"y":30747.9133770426},"targetPosition":{"x":35289.0497852532,"y":31090.402311553746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"3466c2e0-e14f-4e76-9735-651f84617051","savedPayload":{"position":{"x":35692.920333218164,"y":30268.646393535015},"targetPosition":{"x":35659.66370706001,"y":30581.829281582708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"0ecb1abe-ce06-4d16-a850-b180b6b66252","savedPayload":{"position":{"x":36605.838815369854,"y":29816.50777554093},"targetPosition":{"x":36420.67086759038,"y":30071.16215403728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"30e0b04a-1a96-4850-ae5c-f3e85da03da3","savedPayload":{"position":{"x":36420.67086759038,"y":30071.16215403728},"targetPosition":{"x":36235.36714817673,"y":30325.959128296938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"f6e4f3d5-a156-48d8-9c93-1109c5a5fca5","savedPayload":{"position":{"x":36861.988247619585,"y":30391.53865762637},"targetPosition":{"x":36548.78807948588,"y":30358.761659611344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a40f8de3-9ee1-47f7-9f91-71dd2240ab98","savedPayload":{"position":{"x":36548.78807948588,"y":30358.761659611344},"targetPosition":{"x":36235.36714817673,"y":30325.959128296938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"22980027-50ca-447a-a53c-fa84e87cfc4b","savedPayload":{"position":{"x":36235.36714817673,"y":30325.959128296938},"targetPosition":{"x":35947.5490253868,"y":30453.9215256811},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"ae0768db-6f1c-438d-af27-223b71c98b26","savedPayload":{"position":{"x":35947.5490253868,"y":30453.9215256811},"targetPosition":{"x":35659.66370706001,"y":30581.829281582708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"76c590b2-d1f8-497d-aadc-084d4500772c","savedPayload":{"position":{"x":35659.66370706001,"y":30581.829281582708},"targetPosition":{"x":35474.3107204167,"y":30836.26619004085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fcc3e4a-8a02-4dbd-82b8-b0f10843f527","savedPayload":{"position":{"x":35474.3107204167,"y":30836.26619004085},"targetPosition":{"x":35289.0497852532,"y":31090.402311553746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"1f9b31ce-64a5-4606-ba43-cdab0eb3dece","savedPayload":{"position":{"x":35888.51870731133,"y":30897.094478356263},"targetPosition":{"x":35588.76478443183,"y":30993.81670423616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"811a932e-9ad1-454e-aa71-86c100807627","savedPayload":{"position":{"x":35588.76478443183,"y":30993.81670423616},"targetPosition":{"x":35289.0497852532,"y":31090.402311553746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"4c2c3a4f-8cca-4211-b3d1-180266f99704","savedPayload":{"position":{"x":35888.02932685479,"y":31285.56938726938},"targetPosition":{"x":35588.475187273674,"y":31188.07770374712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7da16723-66b0-44a8-80a2-32afbfc33eda","savedPayload":{"position":{"x":35588.475187273674,"y":31188.07770374712},"targetPosition":{"x":35289.0497852532,"y":31090.402311553746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"05204106-bf49-4b86-be1e-c04acfff70ff","savedPayload":{"position":{"x":35289.0497852532,"y":31090.402311553746},"targetPosition":{"x":34270.93031373407,"y":31829.561903674166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"b739c187-7a8d-4877-b35d-db44832293a9","savedPayload":{"position":{"x":34582.036710214496,"y":31878.912006201877},"targetPosition":{"x":34270.93031373407,"y":31829.561903674166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"79d58168-9a31-4fe8-9e7e-19212ea5b481","savedPayload":{"position":{"x":34611.957839823925,"y":32060.94845886817},"targetPosition":{"x":34306.356993272086,"y":32012.668778615298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4a32c55d-ae86-4918-b898-ad027b574e14","savedPayload":{"position":{"x":34456.25406941115,"y":32084.595626386963},"targetPosition":{"x":34270.93031373407,"y":31829.561903674166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"96a417b6-09d8-4b1e-9778-3bef281c7849","savedPayload":{"position":{"x":34270.93031373407,"y":31829.561903674166},"targetPosition":{"x":33027.197109693196,"y":31632.476242375036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Slow Run","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"c57b9aaa-edc1-4a24-a2f9-1eeb3eed3d5c","savedPayload":{"position":{"x":34130.26731414797,"y":32800.3400427803},"targetPosition":{"x":33790.66857191591,"y":32553.726624302923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"22d1ba82-cecd-4ebf-a9b0-c02a2dcc4385","savedPayload":{"position":{"x":33790.66857191591,"y":32553.726624302923},"targetPosition":{"x":33432.69324860659,"y":32293.801129954125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f41b282c-06b8-4a86-9c94-18173ce77526","savedPayload":{"position":{"x":33432.82333847737,"y":32294.4434055754},"targetPosition":{"x":33092.84480699051,"y":32047.383542560598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"214e21c2-bdab-4d05-91b2-02f327d177b8","savedPayload":{"position":{"x":33560.189047347376,"y":33061.25591731097},"targetPosition":{"x":33168.17755880856,"y":32910.85719093055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"401d2bc0-0193-42de-8a65-df43242eb516","savedPayload":{"position":{"x":31019.353328127647,"y":34771.29319333476},"targetPosition":{"x":30873.113188713138,"y":34459.5430677265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b023b429-024c-46eb-86f8-6e4e23be3b3c","savedPayload":{"position":{"x":30873.113188713138,"y":34459.5430677265},"targetPosition":{"x":30730.968945388893,"y":34140.681493701086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ee7cd341-d632-47d6-9ddf-4462e6961461","savedPayload":{"position":{"x":30730.968945388893,"y":34140.681493701086},"targetPosition":{"x":30588.167033308324,"y":33817.51375204604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5c96f85d-f36d-496f-8c82-68bdbde4456f","savedPayload":{"position":{"x":32841.61331690757,"y":33175.13217299862},"targetPosition":{"x":33168.17755880856,"y":32910.85719093055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593","savedPayload":{"position":{"x":33168.17755880856,"y":32910.85719093055},"targetPosition":{"x":33099.11889863151,"y":32474.052057676712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"54a1a04f-b59d-40d9-91d6-9716c0198983","savedPayload":{"position":{"x":33573.69376797636,"y":33571.86718032515},"targetPosition":{"x":33233.80391345122,"y":33325.478360001805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"23d9abaa-63cc-4aef-abaf-7b493213cd29","savedPayload":{"position":{"x":32449.77558908902,"y":34154.4611915215},"targetPosition":{"x":32015.40384472738,"y":34108.56368300236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"28be9fea-5e5c-4c99-b4a4-6c01a831d9ce","savedPayload":{"position":{"x":32015.40384472738,"y":34108.56368300236},"targetPosition":{"x":31568.575996973697,"y":34061.39642915175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"c59f1c98-a4e9-40c1-8690-6543baa7a966","savedPayload":{"position":{"x":32283.759517871575,"y":34582.810236984864},"targetPosition":{"x":31931.786549495515,"y":34326.11237323376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c24d0f99-6491-40b3-94d9-49f91d354f3c","savedPayload":{"position":{"x":31931.786549495515,"y":34326.11237323376},"targetPosition":{"x":31568.575996973697,"y":34061.39642915175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"d6b4d297-a5fa-4561-acb0-b8d3b891912e","savedPayload":{"position":{"x":31946.197478846712,"y":34889.8385827318},"targetPosition":{"x":31751.053079962017,"y":34472.602873182244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c3f66d39-dc88-4049-895a-378f492a7d35","savedPayload":{"position":{"x":31751.053079962017,"y":34472.602873182244},"targetPosition":{"x":31568.575996973697,"y":34061.39642915175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"e9ac7090-a4d5-409d-9432-0d422f60e6e1","savedPayload":{"position":{"x":31475.217579292843,"y":34943.29649864423},"targetPosition":{"x":31521.155688266826,"y":34508.526991908395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a05e64ed-4262-42f1-b9dc-cc14f8b27c2d","savedPayload":{"position":{"x":31521.155688266826,"y":34508.526991908395},"targetPosition":{"x":31568.575996973697,"y":34061.39642915175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"cb158763-cb2f-494b-88ab-dafeb3825ca4","savedPayload":{"position":{"x":31046.924625195723,"y":34779.00271509945},"targetPosition":{"x":31304.05023460572,"y":34425.23837899979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"386bbe6b-9082-47e7-b750-e0e9d16a7030","savedPayload":{"position":{"x":31304.05023460572,"y":34425.23837899979},"targetPosition":{"x":31568.575996973697,"y":34061.39642915175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"32813be2-a6cd-4e5d-9a58-87eae5b3b5e9","savedPayload":{"position":{"x":33456.2367626283,"y":34169.229931685244},"targetPosition":{"x":33390.31829204923,"y":33754.57207201343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"264bdd5b-5246-4a3f-bd09-5c50baf57963","savedPayload":{"position":{"x":33390.31829204923,"y":33754.57207201343},"targetPosition":{"x":33233.80391345122,"y":33325.478360001805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"308d9cf6-beba-4d14-9b90-bb11409e3835","savedPayload":{"position":{"x":32678.163507437253,"y":36556.91105564189},"targetPosition":{"x":32834.64820004886,"y":36148.98136136614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a787ffbe-ea25-41cb-a719-de115285eead","savedPayload":{"position":{"x":32834.64820004886,"y":36148.98136136614},"targetPosition":{"x":32991.201109072026,"y":35740.89140224141},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d4b41076-5b23-498d-bc3e-1ccf277a1a43","savedPayload":{"position":{"x":32739.83720167254,"y":34005.06095530531},"targetPosition":{"x":32986.689244005254,"y":33665.01100359143},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"7cb4214c-3e3e-4a70-ad14-6ae2a568f24c","savedPayload":{"position":{"x":32986.689244005254,"y":33665.01100359143},"targetPosition":{"x":33233.80391345122,"y":33325.478360001805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593"}}}],"announcements":[],"id":"592ad0d7-d583-4827-8ae6-48f6ad25c1a3","savedPayload":{"position":{"x":33233.80391345122,"y":33325.478360001805},"targetPosition":{"x":33168.17755880856,"y":32910.85719093055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"580ecace-0d6d-4632-ad8d-e6dc86df51c8","savedPayload":{"position":{"x":33668.801065501335,"y":33887.456734513806},"targetPosition":{"x":33276.768273175025,"y":33736.54711405289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"bf6a5ecf-f5c8-4d13-a15c-1b567422bee0","savedPayload":{"position":{"x":34576.829412485866,"y":37000.01142562244},"targetPosition":{"x":34410.432322905384,"y":36626.06517025616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ca87de8b-af92-4d83-af59-7c71f17e1be4","savedPayload":{"position":{"x":34410.432322905384,"y":36626.06517025616},"targetPosition":{"x":34243.930379694895,"y":36251.90943343497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"d626af7e-c8bb-4e17-95e5-ba5abda158d8","savedPayload":{"position":{"x":33763.03089309385,"y":36914.47628256974},"targetPosition":{"x":34003.45132162593,"y":36583.27161248551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"98a76d2a-1ec4-413c-85b2-59865c6e1187","savedPayload":{"position":{"x":34003.45132162593,"y":36583.27161248551},"targetPosition":{"x":34243.930379694895,"y":36251.90943343497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9406f175-4d00-436d-ab9e-27081d36611b","savedPayload":{"position":{"x":34243.930379694895,"y":36251.90943343497},"targetPosition":{"x":34286.475860589395,"y":35844.37747430465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"aef3e320-bbaf-42e5-8083-21157428bfaf","savedPayload":{"position":{"x":33126.35798120075,"y":34129.20434251816},"targetPosition":{"x":33276.768273175025,"y":33736.54711405289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593"}}}],"announcements":[],"id":"9b594083-3fb0-4dfa-ba4b-1b1ada8687fe","savedPayload":{"position":{"x":33276.768273175025,"y":33736.54711405289},"targetPosition":{"x":33233.80391345122,"y":33325.478360001805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"80d81cb5-6a3a-4eff-ad9f-5590450c7366","savedPayload":{"position":{"x":33158.365096722715,"y":32462.606975036346},"targetPosition":{"x":33092.84480699051,"y":32047.383542560598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"8d20508d-dc45-4488-8a09-814a24826d00","savedPayload":{"position":{"x":32806.905084060476,"y":32680.453294176434},"targetPosition":{"x":32744.356993272086,"y":32282.668778615298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c04c40be-cd86-4c0e-b802-681f5c47a7f7","savedPayload":{"position":{"x":32846.11743673657,"y":32387.282950915138},"targetPosition":{"x":33092.84480699051,"y":32047.383542560598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3ea826ac-fe6b-4b8c-a0dc-f830202e8306","savedPayload":{"position":{"x":33092.84480699051,"y":32047.383542560598},"targetPosition":{"x":33027.197109693196,"y":31632.476242375036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"0400f408-3b91-42fd-839b-c71d8212e22b","savedPayload":{"position":{"x":32424.640743292275,"y":32175.998602689077},"targetPosition":{"x":32653.493876842065,"y":31823.167177806845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"761d7668-7a62-4221-be67-5754f4b7b2f2","savedPayload":{"position":{"x":32352.256298910706,"y":32433.62407361041},"targetPosition":{"x":32571.508942630673,"y":32095.215305371734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"00e6ad00-1176-41ab-a1f3-52a59aa8f7cd","savedPayload":{"position":{"x":32242.00054662029,"y":31910.80310333033},"targetPosition":{"x":32653.493876842065,"y":31823.167177806845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f83a0cfd-237d-4b3f-b4f0-9fa0a71b00bb","savedPayload":{"position":{"x":32653.493876842065,"y":31823.167177806845},"targetPosition":{"x":33027.197109693196,"y":31632.476242375036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4af71378-a61f-4d1d-a1cd-6933897ef3bd","savedPayload":{"position":{"x":33027.197109693196,"y":31632.476242375036},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S8 - 4H Up","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"0b8368d3-b1b1-413b-bbeb-95641a85b80f","savedPayload":{"position":{"x":32583.02153148494,"y":30375.069170464114},"targetPosition":{"x":32890.507807742724,"y":30666.144907896156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6034fcd2-8d4d-48b8-a392-18535fa70a53","savedPayload":{"position":{"x":32890.507807742724,"y":30666.144907896156},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"5e94af5d-2be9-4ae9-ae44-2867f755a827","savedPayload":{"position":{"x":32771.60113409807,"y":30224.788572225458},"targetPosition":{"x":32985.067261121585,"y":30591.65661580369},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f811cfed-9f3e-4211-84da-066b038d0b33","savedPayload":{"position":{"x":32985.067261121585,"y":30591.65661580369},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"9d5052c6-8411-4f18-ace8-17f021dfd5e2","savedPayload":{"position":{"x":32997.279518098934,"y":30134.976526965966},"targetPosition":{"x":33098.83303822341,"y":30547.231787359233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d4f2d1aa-32fd-4345-8291-3da0a9bf3fc5","savedPayload":{"position":{"x":33098.83303822341,"y":30547.231787359233},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","id":"3347b5df-6552-43dd-8265-43bb7d87df98","savedPayload":{"position":{"x":33236.19812252272,"y":30108.997090796624},"targetPosition":{"x":33217.92836568535,"y":30533.18565473396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7a4b6d88-b433-435d-a683-6eb73780f27b","savedPayload":{"position":{"x":33217.92836568535,"y":30533.18565473396},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","id":"3bf685d6-ac1f-4bab-a7f1-8450ee657948","savedPayload":{"position":{"x":33473.11688690986,"y":30153.501414040173},"targetPosition":{"x":33336.27708618797,"y":30555.259147958208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22eebcad-ee09-4e3b-897e-9495bb82784d","savedPayload":{"position":{"x":33336.27708618797,"y":30555.259147958208},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Side or 1H Extreme or Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\" || (chart.at04hs.bollingerSubChannel.slope === \"Gentle\" && (chart.at01hs.bollingerSubChannel.slope === \"Extreme\" || chart.at01hs.bollingerSubChannel.slope === \"Side\"))","id":"d5a69ea3-5ae1-4e4b-b858-8844f20f6369","savedPayload":{"position":{"x":33688.10523565221,"y":30263.125417578416},"targetPosition":{"x":33443.773670688315,"y":30610.037447064653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"54ac9a91-76eb-4d28-9d75-bcad0008c481","savedPayload":{"position":{"x":33443.773670688315,"y":30610.037447064653},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"e84f9d0b-15fc-4656-a2ed-392304b44df3","savedPayload":{"position":{"x":33863.57761044307,"y":30428.90350360676},"targetPosition":{"x":33531.52386726751,"y":30692.94592730243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"658b7720-b18e-42d0-9cb3-7f5c71928409","savedPayload":{"position":{"x":33531.52386726751,"y":30692.94592730243},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","id":"84b0abb3-cf34-491e-9436-4fdb07ee4977","savedPayload":{"position":{"x":33985.280778200904,"y":30637.388456021126},"targetPosition":{"x":33592.38327848182,"y":30797.24063448982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f39b86b4-5a2a-470c-8503-0ee11eab51f6","savedPayload":{"position":{"x":33592.38327848182,"y":30797.24063448982},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","id":"3bde8f4f-c2e3-413b-8df1-37aeb20a85f9","savedPayload":{"position":{"x":34043.32401464137,"y":30871.65436333817},"targetPosition":{"x":33621.38059220496,"y":30914.477414693258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"04fd8c8d-8074-4932-b3e1-56357c7829ea","savedPayload":{"position":{"x":33621.38059220496,"y":30914.477414693258},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 2: 02H, 03H, 04H, 06H, all Up && 2H Steep && 1H, 6H NOT Gentle","code":"chart.at24hs.bollingerChannel.direction + chart.at24hs.bollingerBand.slope > chart.at01hs.rsi14.value","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerSubChannel.direction === \"Up\" && chart.at03hs.bollingerSubChannel.direction === \"Up\" && chart.at04hs.bollingerSubChannel.direction === \"Up\" && chart.at06hs.bollingerSubChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Steep\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\" && chart.at06hs.bollingerSubChannel.slope != \"Gentle\") {false} else {true}","id":"cf1a034f-093e-422f-ba6f-ec4c3ce091d2","savedPayload":{"position":{"x":34030.35077514018,"y":31104.321423914676},"targetPosition":{"x":33616.07981062104,"y":31035.056200409377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"69c8d1ca-52b4-4eed-a65b-7a8a870bb46d","savedPayload":{"position":{"x":33616.07981062104,"y":31035.056200409377},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"64643171-239b-49ac-adc7-0124075eb96e","savedPayload":{"position":{"x":33198.90105550597,"y":30956.877809899306},"targetPosition":{"x":33028.14648636911,"y":31378.695917323454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9c8b28ef-af88-416c-9262-20efbf357408","savedPayload":{"position":{"x":33028.14648636911,"y":31378.695917323454},"targetPosition":{"x":32835.90089509466,"y":31756.649802761232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"09286632-34ad-4ea0-9f01-32bd89b20900","savedPayload":{"position":{"x":34447.590158460414,"y":31232.025739290348},"targetPosition":{"x":34044.21217345816,"y":31363.108994682723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f75343e2-3c65-413b-85de-8e88a1f91e09","savedPayload":{"position":{"x":34044.21217345816,"y":31363.108994682723},"targetPosition":{"x":33640.74002460985,"y":31494.101999004426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"68074fb6-7ca9-43a7-a83c-abcd0c55148c","savedPayload":{"position":{"x":33640.74002460985,"y":31494.101999004426},"targetPosition":{"x":33239.78472574559,"y":31625.86269368105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"07f812fb-602f-4713-871d-648faa64a6ce","savedPayload":{"position":{"x":33239.78472574559,"y":31625.86269368105},"targetPosition":{"x":32835.90089509466,"y":31756.649802761232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"07c87bc6-f04b-4a08-88c3-82df8036a971","savedPayload":{"position":{"x":33850.367819499166,"y":31107.164291469344},"targetPosition":{"x":33751.92630459747,"y":31519.524189915035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9a120c5b-3fda-4ff3-89af-621d53b2e075","savedPayload":{"position":{"x":33751.92630459747,"y":31519.524189915035},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"d054b93f-3378-49e9-9e18-73373b1ec935","savedPayload":{"position":{"x":34061.47889360183,"y":31200.202061977026},"targetPosition":{"x":33848.155210901954,"y":31560.253992569105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cbc32f34-4189-4526-a323-9291e672495c","savedPayload":{"position":{"x":33848.155210901954,"y":31560.253992569105},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"562f3238-94f0-41af-8d61-f9984bc8bd0b","savedPayload":{"position":{"x":34248.89826260879,"y":31340.441558383638},"targetPosition":{"x":33943.065513621616,"y":31634.31513182773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5b4549d-92bd-4c3e-af81-884899aae8d9","savedPayload":{"position":{"x":33943.065513621616,"y":31634.31513182773},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","id":"ce7a4a64-743a-443d-a825-b02c25d4b55a","savedPayload":{"position":{"x":34389.59498945044,"y":31536.34634291851},"targetPosition":{"x":34013.448225311375,"y":31732.263679781754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4b992367-9f3a-4ce3-b389-2fc84c8cca16","savedPayload":{"position":{"x":34013.448225311375,"y":31732.263679781754},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","id":"a1c10e9c-19b9-4805-b441-ce3ec64b23a1","savedPayload":{"position":{"x":34469.42688721992,"y":31763.970288609766},"targetPosition":{"x":34053.391618664995,"y":31846.123357271776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f5f2b1bb-f847-4994-a1ab-5252c7c685c6","savedPayload":{"position":{"x":34053.391618664995,"y":31846.123357271776},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Side or 1H Extreme or Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\" || (chart.at04hs.bollingerSubChannel.slope === \"Gentle\" && (chart.at01hs.bollingerSubChannel.slope === \"Extreme\" || chart.at01hs.bollingerSubChannel.slope === \"Side\"))","id":"3d26867a-7ffc-4b17-a226-c2cf2d02a1ae","savedPayload":{"position":{"x":34481.870711502044,"y":32004.452875644973},"targetPosition":{"x":34059.63071301428,"y":31966.419472112397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a96f6aed-5ba0-458e-b073-a14a7030a4ce","savedPayload":{"position":{"x":34059.63071301428,"y":31966.419472112397},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"f674d92e-8b5b-4a88-9c97-c0499fea9f41","savedPayload":{"position":{"x":34425.87549450783,"y":32239.301956007203},"targetPosition":{"x":34031.64897146041,"y":32083.89092574789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b0663ef7-ad0e-44eb-8448-87c92b066de1","savedPayload":{"position":{"x":34031.64897146041,"y":32083.89092574789},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","id":"6337812b-5df1-428e-9d36-f7935dde3ca7","savedPayload":{"position":{"x":34305.98828960082,"y":32448.99884859954},"targetPosition":{"x":33971.70269044266,"y":32188.76251868252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cda16118-0ec1-4313-bb27-be56055bb89a","savedPayload":{"position":{"x":33971.70269044266,"y":32188.76251868252},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","id":"d467380e-37f7-4d69-8384-c766fa7511ef","savedPayload":{"position":{"x":34131.9442575213,"y":32616.530009178252},"targetPosition":{"x":33884.62935458651,"y":32272.531065884734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"90afdd8d-1565-42b1-abbb-e88eb2e359db","savedPayload":{"position":{"x":33884.62935458651,"y":32272.531065884734},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 2: 02H, 03H, 04H, 06H, all Up && 2H Steep && 1H, 6H NOT Gentle","code":"chart.at24hs.bollingerChannel.direction + chart.at24hs.bollingerBand.slope > chart.at01hs.rsi14.value","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerSubChannel.direction === \"Up\" && chart.at03hs.bollingerSubChannel.direction === \"Up\" && chart.at04hs.bollingerSubChannel.direction === \"Up\" && chart.at06hs.bollingerSubChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Steep\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\" && chart.at06hs.bollingerSubChannel.slope != \"Gentle\") {false} else {true}","id":"051149b3-b815-4eb2-952c-88317a972764","savedPayload":{"position":{"x":33917.66926583683,"y":32728.305067164874},"targetPosition":{"x":33777.32415729678,"y":32328.419178658256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac3a3676-3fc0-4eed-97c8-51fe93a65256","savedPayload":{"position":{"x":33777.32415729678,"y":32328.419178658256},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3583b309-fa26-4e63-bfb2-055d5bad14b7","savedPayload":{"position":{"x":33637.0339345046,"y":31928.112734113376},"targetPosition":{"x":33213.509077296134,"y":31949.716370342587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"1cca5dce-5617-4b2d-b103-68c7289c7912","savedPayload":{"position":{"x":33248.66251833871,"y":31922.655408084436},"targetPosition":{"x":33073.356993272086,"y":32116.668778615298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bdadf3d3-ff21-4ea1-a342-9c135a422a3b","savedPayload":{"position":{"x":33370.94219349302,"y":32092.35851956931},"targetPosition":{"x":33213.509077296134,"y":31949.716370342587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e86cdca6-99e9-487f-b824-af95cf635d1f","savedPayload":{"position":{"x":33213.509077296134,"y":31949.716370342587},"targetPosition":{"x":32835.90089509466,"y":31756.649802761232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"fa8dc2de-7299-4e00-82a7-deb31393b442","savedPayload":{"position":{"x":32835.90089509466,"y":31756.649802761232},"targetPosition":{"x":32433.371579576764,"y":31886.914337943625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"be4be272-6865-445f-81e9-320f8bfdc392","savedPayload":{"position":{"x":34967.124271760935,"y":32358.1785110076},"targetPosition":{"x":34884.7347766961,"y":32665.58211057604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"5bee76dc-6b48-47d0-92c1-be86008a0567","savedPayload":{"position":{"x":36114.12799068074,"y":32336.170693053667},"targetPosition":{"x":35806.871460174916,"y":32418.413004338316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"058c7bc3-1b46-415d-bcf6-b2b260049b34","savedPayload":{"position":{"x":35806.871460174916,"y":32418.413004338316},"targetPosition":{"x":35499.43380969467,"y":32500.74406598618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cba32e81-cca9-4056-bd59-82f986580893","savedPayload":{"position":{"x":35499.43380969467,"y":32500.74406598618},"targetPosition":{"x":35192.04380396341,"y":32583.121051172304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"72bf5a83-c129-4bcb-b196-7efbf38b3122","savedPayload":{"position":{"x":35192.04380396341,"y":32583.121051172304},"targetPosition":{"x":34884.7347766961,"y":32665.58211057604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"502b92e1-1e58-46a5-9ecf-8cc1636f0ff4","savedPayload":{"position":{"x":34884.7347766961,"y":32665.58211057604},"targetPosition":{"x":34660.02936631182,"y":32890.48337181073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"eb4ede91-3ccc-41f8-b54c-8295767f386c","savedPayload":{"position":{"x":34660.02936631182,"y":32890.48337181073},"targetPosition":{"x":34435.67151202602,"y":33115.14655163129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"39c79407-8af5-465e-af51-1c75aad45115","savedPayload":{"position":{"x":35311.11096720446,"y":32816.9272234083},"targetPosition":{"x":35063.64575113468,"y":33016.76264590724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"aa01ada7-95ad-41e6-96f7-5c31702a541e","savedPayload":{"position":{"x":36286.24106064014,"y":33145.81980834591},"targetPosition":{"x":35972.055489563856,"y":33195.34612138585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d717b269-b5ec-4198-b8c4-4191fbbc4b18","savedPayload":{"position":{"x":35972.055489563856,"y":33195.34612138585},"targetPosition":{"x":35657.673132234,"y":33244.878314280504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"5e2b89fd-d5f9-4c8a-98e1-44ff5c2844cd","savedPayload":{"position":{"x":36058.15655754124,"y":33739.29437123348},"targetPosition":{"x":35857.98050868123,"y":33492.17091282344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d715ce3c-8efb-4ff3-bac9-4339b5906a91","savedPayload":{"position":{"x":35857.98050868123,"y":33492.17091282344},"targetPosition":{"x":35657.673132234,"y":33244.878314280504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1133b940-15fd-4255-8099-8c83ebf9ab1d","savedPayload":{"position":{"x":35657.673132234,"y":33244.878314280504},"targetPosition":{"x":35360.66365230035,"y":33130.86179964265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"e6a82789-515c-403d-a11d-9c16d7e1e2d0","savedPayload":{"position":{"x":35360.66365230035,"y":33130.86179964265},"targetPosition":{"x":35063.64575113468,"y":33016.76264590724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"2fbf4e78-500b-4e2a-876b-fec9950bfeb4","savedPayload":{"position":{"x":35063.64575113468,"y":33016.76264590724},"targetPosition":{"x":34749.50080339453,"y":33066.0137817785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7e699a39-d4bc-44d7-bb6c-7813d7d63aeb","savedPayload":{"position":{"x":34749.50080339453,"y":33066.0137817785},"targetPosition":{"x":34435.67151202602,"y":33115.14655163129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"3d73ecde-b6ca-4229-9536-fbc7f87e0d45","savedPayload":{"position":{"x":35001.972454730174,"y":33404.90881119627},"targetPosition":{"x":34718.751802473744,"y":33260.05696886418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c43b5b83-3c68-480e-b390-26c224b63bbf","savedPayload":{"position":{"x":34718.751802473744,"y":33260.05696886418},"targetPosition":{"x":34435.67151202602,"y":33115.14655163129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"1e208de6-1b0c-4754-9b10-41edc1653336","savedPayload":{"position":{"x":34723.83391273956,"y":33682.356075508505},"targetPosition":{"x":34579.63262505743,"y":33398.762441228064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c575ff8-0704-4398-8792-34e0eeb4381f","savedPayload":{"position":{"x":34579.63262505743,"y":33398.762441228064},"targetPosition":{"x":34435.67151202602,"y":33115.14655163129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"05c05d0c-7815-464b-bbf2-f7d2820d0235","savedPayload":{"position":{"x":34435.67151202602,"y":33115.14655163129},"targetPosition":{"x":33180.75535106592,"y":32916.07101014247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"478b1483-d146-4141-b6e7-2e913d285da5","savedPayload":{"position":{"x":33367.5784322329,"y":33173.57800692712},"targetPosition":{"x":33180.75535106592,"y":32916.07101014247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"08bb3184-c06a-43b6-9463-fd922b64abbd","savedPayload":{"position":{"x":33158.957839823925,"y":33124.948458868166},"targetPosition":{"x":32853.356993272086,"y":33076.6687786153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c6b029d3-1de0-4dbf-80bd-e303ae27a2ba","savedPayload":{"position":{"x":33131.10438055651,"y":33230.608107064065},"targetPosition":{"x":33180.75535106592,"y":32916.07101014247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a4386996-dbe4-434c-818b-66ac926fc575","savedPayload":{"position":{"x":33180.75535106592,"y":32916.07101014247},"targetPosition":{"x":32433.371579576764,"y":31886.914337943625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Controlled Run","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"6938be43-dc74-4576-8b0a-8b18bd34792e","savedPayload":{"position":{"x":32052.655649535795,"y":33496.36457838122},"targetPosition":{"x":32096.65981549785,"y":33074.519171615095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"6cefcdbc-918c-4abe-99f9-5a99c391d79b","savedPayload":{"position":{"x":32096.65981549785,"y":33074.519171615095},"targetPosition":{"x":32140.64270658053,"y":32652.206682617852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"901eb16f-14dd-4fd2-81c1-b4713a1b34e0","savedPayload":{"position":{"x":32250.309062987384,"y":32649.586359950557},"targetPosition":{"x":32184.041014524384,"y":32230.18847885705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"0199babe-dfd7-4f18-b9d7-3b73ade997fd","savedPayload":{"position":{"x":31582.494012962958,"y":32962.937014157265},"targetPosition":{"x":31410.280046457636,"y":32575.275710033362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"89e97633-9b3e-42ba-9cf6-bf29d6383a72","savedPayload":{"position":{"x":35114.68579910982,"y":35351.53563650537},"targetPosition":{"x":34955.055100783706,"y":34993.54246316036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"971da4c6-325b-4c78-a025-95dbd138bbc4","savedPayload":{"position":{"x":34955.055100783706,"y":34993.54246316036},"targetPosition":{"x":34795.109639340524,"y":34635.50799960973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2af1c651-e988-4ae0-92a3-d0918b8a1cfe","savedPayload":{"position":{"x":34795.109639340524,"y":34635.50799960973},"targetPosition":{"x":34634.92973533252,"y":34277.38989257793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4e18019c-6173-4b68-b709-174bc220cd55","savedPayload":{"position":{"x":31120.854325706285,"y":32749.006422256185},"targetPosition":{"x":31410.280046457636,"y":32575.275710033362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"a8860a5a-66b5-41f0-8a6c-dac7bf971c9d","savedPayload":{"position":{"x":30218.098378964016,"y":31775.44357488877},"targetPosition":{"x":30641.420921935773,"y":31788.395864739927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"690aeb6d-75ec-45c9-b321-9d943d84df5f","savedPayload":{"position":{"x":30641.420921935773,"y":31788.395864739927},"targetPosition":{"x":31065.15767239706,"y":31801.060086999303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"d691ad30-4129-48d1-9b75-2b2337e409d2","savedPayload":{"position":{"x":30312.735304700313,"y":31410.31946547273},"targetPosition":{"x":30688.782681018638,"y":31605.692657427535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"30880b5e-f66a-4d5a-b112-14bcc8bb9ac9","savedPayload":{"position":{"x":30688.782681018638,"y":31605.692657427535},"targetPosition":{"x":31065.15767239706,"y":31801.060086999303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"8d66b5bd-521c-4d19-9fc0-baa4fb54ad84","savedPayload":{"position":{"x":30556.44880964036,"y":31122.5653875293},"targetPosition":{"x":30810.690604022504,"y":31461.749653777068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c4298d6d-c635-49fe-a517-0dc19531c919","savedPayload":{"position":{"x":30810.690604022504,"y":31461.749653777068},"targetPosition":{"x":31065.15767239706,"y":31801.060086999303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"67b51901-a5fe-4fad-aad4-fc4d756b09cc","savedPayload":{"position":{"x":30900.789650854644,"y":30969.119767215772},"targetPosition":{"x":30982.937053526082,"y":31385.017133242192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b051770c-7c9c-4636-86c8-d3b419f9a8bd","savedPayload":{"position":{"x":30982.937053526082,"y":31385.017133242192},"targetPosition":{"x":31065.15767239706,"y":31801.060086999303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"8d54874e-6c21-434a-80fa-492bf2a9be2b","savedPayload":{"position":{"x":31276.64844988148,"y":30980.361588941225},"targetPosition":{"x":31171.060852877814,"y":31390.702278688343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9aa25c88-a620-42f1-b1e8-403c5c8718b1","savedPayload":{"position":{"x":31171.060852877814,"y":31390.702278688343},"targetPosition":{"x":31065.15767239706,"y":31801.060086999303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\"","id":"e8c97495-8098-4209-a220-6c399baba0f3","savedPayload":{"position":{"x":31610.0599232527,"y":31161.58973768663},"targetPosition":{"x":31338.32832705977,"y":31477.72508842297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f39ad55a-1988-4ac8-9d5c-99054f951179","savedPayload":{"position":{"x":31338.32832705977,"y":31477.72508842297},"targetPosition":{"x":31065.15767239706,"y":31801.060086999303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"abaf1d9b-b5f9-4f8f-9a59-10936c3ea7b1","savedPayload":{"position":{"x":31065.15767239706,"y":31801.060086999303},"targetPosition":{"x":31237.76485603842,"y":32188.236450221637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f9636b68-93f0-4100-8046-1d62eed73501","savedPayload":{"position":{"x":31237.76485603842,"y":32188.236450221637},"targetPosition":{"x":31410.280046457636,"y":32575.275710033362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"274cc7b8-9ab0-4f9a-9302-3357cfcac9da"}}}],"announcements":[],"id":"b1d129c5-5f5e-4b1a-a2d6-b79561d2a6ce","savedPayload":{"position":{"x":31410.280046457636,"y":32575.275710033362},"targetPosition":{"x":31797.26417642712,"y":32402.646659011032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"640cd6a8-a447-43ca-84f9-7dc5e6c8c826","savedPayload":{"position":{"x":30847.41292297006,"y":33144.808922085795},"targetPosition":{"x":30998.534423684807,"y":32747.451613870147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"9502bdd5-310a-4048-81ca-1eb0afe3c99d","savedPayload":{"position":{"x":30205.803426783637,"y":34001.091193026725},"targetPosition":{"x":30249.917950331896,"y":33577.896743108766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cb42b9eb-16cb-4bb4-af70-570fc4d1cd29","savedPayload":{"position":{"x":30249.917950331896,"y":33577.896743108766},"targetPosition":{"x":30294.134801020176,"y":33154.57222324627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"da7a29f2-93be-4ce8-aeb0-f286b5710891","savedPayload":{"position":{"x":29796.111617502072,"y":33843.85742346663},"targetPosition":{"x":30044.979866313377,"y":33499.24970649383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b4748a9d-7f41-4ce0-92ea-267488fd2e02","savedPayload":{"position":{"x":30044.979866313377,"y":33499.24970649383},"targetPosition":{"x":30294.134801020176,"y":33154.57222324627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"792355fa-6601-4a41-b673-b814127b3524","savedPayload":{"position":{"x":29519.96605719332,"y":33502.923264063706},"targetPosition":{"x":29906.846942045566,"y":33328.73011607854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4cd7afea-ce88-4111-b74e-dc48e34bcee5","savedPayload":{"position":{"x":29906.846942045566,"y":33328.73011607854},"targetPosition":{"x":30294.134801020176,"y":33154.57222324627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"835d94b1-7b62-43bc-bbda-34184c5a5410","savedPayload":{"position":{"x":29451.262472325034,"y":33070.381351734206},"targetPosition":{"x":29872.476892943403,"y":33112.352507651274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"66c6c8dc-f8b2-4534-aeb1-5f7aea412564","savedPayload":{"position":{"x":29872.476892943403,"y":33112.352507651274},"targetPosition":{"x":30294.134801020176,"y":33154.57222324627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side or Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\"","id":"4734e468-3fd1-4b7e-8361-66dea0f1d3c1","savedPayload":{"position":{"x":29608.402791503686,"y":32660.871196158085},"targetPosition":{"x":29951.00436379901,"y":32907.53037466467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b9f90ab7-e386-4fa3-a326-d99ce319edcd","savedPayload":{"position":{"x":29951.00436379901,"y":32907.53037466467},"targetPosition":{"x":30294.134801020176,"y":33154.57222324627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"26ef5972-8cc4-4b0d-92a4-b7da565b84b4","savedPayload":{"position":{"x":30294.134801020176,"y":33154.57222324627},"targetPosition":{"x":30681.667674684573,"y":32980.164487420945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9be98459-d007-4f66-94ac-cc7b6c6ad81c","savedPayload":{"position":{"x":30681.667674684573,"y":32980.164487420945},"targetPosition":{"x":30998.534423684807,"y":32747.451613870147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"274cc7b8-9ab0-4f9a-9302-3357cfcac9da"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"c959c1b6-aec3-4db7-a572-477f1ea2c132","savedPayload":{"position":{"x":29433.709225515253,"y":32793.11947467331},"targetPosition":{"x":29820.425136437625,"y":32619.15623349406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31460537-bb42-499a-9645-fca83618f4a5","savedPayload":{"position":{"x":29820.425136437625,"y":32619.15623349406},"targetPosition":{"x":30207.276664433924,"y":32445.696257695414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"b3e36006-93f4-4852-a7a7-d612a7e7ec27","savedPayload":{"position":{"x":29423.284124799575,"y":32145.37524164802},"targetPosition":{"x":29812.2635139139,"y":32295.247107792475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b8fe60bd-1dbd-458d-bdfd-1accfdab0b7c","savedPayload":{"position":{"x":29812.2635139139,"y":32295.247107792475},"targetPosition":{"x":30207.276664433924,"y":32445.696257695414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"6b79a9e3-796e-4db6-8a5c-0bc0bd875f45","savedPayload":{"position":{"x":29863.249250356712,"y":31674.039657913658},"targetPosition":{"x":30035.18086627339,"y":32059.80702167967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1d09d25e-54eb-4d39-bea6-44f8492a2d10","savedPayload":{"position":{"x":30035.18086627339,"y":32059.80702167967},"targetPosition":{"x":30207.276664433924,"y":32445.696257695414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f3ce7cba-7352-4634-a05d-07399ba679f2","savedPayload":{"position":{"x":30207.276664433924,"y":32445.696257695414},"targetPosition":{"x":30603.028520115917,"y":32596.356054088126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"23ebc628-449c-43d8-97a2-28c23bb4dda7","savedPayload":{"position":{"x":30603.028520115917,"y":32596.356054088126},"targetPosition":{"x":30998.534423684807,"y":32747.451613870147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"b1d129c5-5f5e-4b1a-a2d6-b79561d2a6ce"}}}],"announcements":[],"id":"0995a46a-7564-4e4a-bdf9-d1dd437c75c6","savedPayload":{"position":{"x":30998.534423684807,"y":32747.451613870147},"targetPosition":{"x":31410.280046457636,"y":32575.275710033362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"12d58077-9b90-44f6-9d1d-5247aad7b0a4","savedPayload":{"position":{"x":30550.04180271156,"y":33329.80692424424},"targetPosition":{"x":30593.773775288653,"y":32906.46681785033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"af3238a0-9671-4ef7-90d8-802f9255d298","savedPayload":{"position":{"x":34353.31566433633,"y":36371.478113298595},"targetPosition":{"x":34107.73400761102,"y":36065.577333894784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2191cdaf-d396-458b-80e3-d67c69976c29","savedPayload":{"position":{"x":34107.73400761102,"y":36065.577333894784},"targetPosition":{"x":33865.53761248559,"y":35764.117352789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"fa54d65e-9ed1-42f1-bcfe-c774607c7ae3","savedPayload":{"position":{"x":33781.1348043335,"y":36545.510360363085},"targetPosition":{"x":33823.36067956762,"y":36154.932202560594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"de06b55c-392c-4032-b8a9-b1810881be63","savedPayload":{"position":{"x":33823.36067956762,"y":36154.932202560594},"targetPosition":{"x":33865.53761248559,"y":35764.117352789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Up || Side, Gentle or Medium","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Up\" || chart.at01hs.bollingerSubChannel.slope === \"Side\" || chart.at01hs.bollingerSubChannel.slope === \"Gentle\" || chart.at01hs.bollingerSubChannel.slope === \"Medium\"","id":"4eca07e4-a6af-46c8-8099-fd4599755539","savedPayload":{"position":{"x":33253.70014218347,"y":36259.27754119686},"targetPosition":{"x":33559.59724286728,"y":36011.788615334415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a6ee99c3-005b-4b96-be05-579230e6af8b","savedPayload":{"position":{"x":33559.59724286728,"y":36011.788615334415},"targetPosition":{"x":33865.53761248559,"y":35764.117352789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fb58e58-feea-47c1-b7a6-0da4777ff32f","savedPayload":{"position":{"x":33865.53761248559,"y":35764.117352789},"targetPosition":{"x":33915.59035931588,"y":35356.68995455061},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3ca96593-db50-40f0-a191-bfdffe79fdf8","savedPayload":{"position":{"x":30172.077781119075,"y":32863.606917906094},"targetPosition":{"x":30593.773775288653,"y":32906.46681785033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"b1d129c5-5f5e-4b1a-a2d6-b79561d2a6ce"}}}],"announcements":[],"id":"274cc7b8-9ab0-4f9a-9302-3357cfcac9da","savedPayload":{"position":{"x":30593.773775288653,"y":32906.46681785033},"targetPosition":{"x":30998.534423684807,"y":32747.451613870147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5969717f-fd1e-4579-a80b-5e66723412a9","savedPayload":{"position":{"x":31934.3203114876,"y":32573.628726629446},"targetPosition":{"x":32184.041014524384,"y":32230.18847885705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"ab76811a-5688-40bb-bcc9-dc754dea83c1","savedPayload":{"position":{"x":31829.79809078839,"y":32538.006502876146},"targetPosition":{"x":31767.25,"y":32140.22198731501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3add1401-37ae-4ab1-9bfd-bd2409be15ee","savedPayload":{"position":{"x":31765.00069416873,"y":32296.572495929217},"targetPosition":{"x":32184.041014524384,"y":32230.18847885705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"455d4f49-eb65-49f8-a6d5-2bdd44e8bbac","savedPayload":{"position":{"x":32184.041014524384,"y":32230.18847885705},"targetPosition":{"x":32433.371579576764,"y":31886.914337943625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"1805fb84-f9aa-4376-b68b-7d009c1f35ad","savedPayload":{"position":{"x":31614.787231440176,"y":31844.739900906556},"targetPosition":{"x":32030.194776844528,"y":31756.418543665284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"53916478-d8e6-4a30-8c30-7eb64eab5232","savedPayload":{"position":{"x":31726.14930563862,"y":32262.17728231012},"targetPosition":{"x":31945.401949358587,"y":31923.768514071446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ebcdfc8a-8348-4b1d-ad3a-630bb68bcf95","savedPayload":{"position":{"x":31673.637620746475,"y":31525.40620600377},"targetPosition":{"x":32030.194776844528,"y":31756.418543665284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0ab9c0ab-a710-4da3-adb1-9e2f837da5fc","savedPayload":{"position":{"x":32030.194776844528,"y":31756.418543665284},"targetPosition":{"x":32433.371579576764,"y":31886.914337943625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a1b63f90-0ec5-4eb4-a51e-88852cc95049","savedPayload":{"position":{"x":32433.371579576764,"y":31886.914337943625},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S4 - 8H Up","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"565db073-2544-4f1e-8ffd-450fb4e10feb","savedPayload":{"position":{"x":33016.108423138045,"y":30708.61650625706},"targetPosition":{"x":33001.605706827475,"y":31117.1437175863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1f26cf4a-76fc-4186-9b3b-9010f9f3da7c","savedPayload":{"position":{"x":33001.605706827475,"y":31117.1437175863},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"f288ec4c-d242-4138-a291-4e97fcec4e8e","savedPayload":{"position":{"x":33294.14747935223,"y":30768.08538063477},"targetPosition":{"x":33140.33062460357,"y":31147.607021558273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eb5bf914-8163-453a-afa5-95f22ba39ead","savedPayload":{"position":{"x":33140.33062460357,"y":31147.607021558273},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"0638ff08-302c-488f-8a8b-be0cd0454e49","savedPayload":{"position":{"x":33536.5418717862,"y":30918.780123840108},"targetPosition":{"x":33262.102839579675,"y":31222.758503492238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0c8e03c5-c1b2-4aaf-bddc-874c50cfbbba","savedPayload":{"position":{"x":33262.102839579675,"y":31222.758503492238},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"8H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at08hs.bollingerChannel.direction === \"Up\"","id":"77dbd8ad-81fc-4394-93d4-e84e931970f7","savedPayload":{"position":{"x":33711.37061669641,"y":31142.31816964065},"targetPosition":{"x":33349.696532391084,"y":31334.167601834975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78fae417-cc69-4a59-8edf-5d2e7102b50f","savedPayload":{"position":{"x":33349.696532391084,"y":31334.167601834975},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"12H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at12hs.bollingerChannel.direction === \"Down\"","id":"f513cfb2-d7b3-442b-8d72-8bedb02e7ddf","savedPayload":{"position":{"x":33799.103478253135,"y":31412.55479282884},"targetPosition":{"x":33393.62871134569,"y":31469.252426709958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4ab49bb6-b9d3-44a1-8fa5-6d5f7b9d3b3f","savedPayload":{"position":{"x":33393.62871134569,"y":31469.252426709958},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","id":"09bdc89a-fa30-46cc-9da0-aa16844e829b","savedPayload":{"position":{"x":33789.194999211526,"y":31696.0948743394},"targetPosition":{"x":33388.694866665915,"y":31611.066158039575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2aae14ee-14b3-4c94-9394-d64432517632","savedPayload":{"position":{"x":33388.694866665915,"y":31611.066158039575},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H NOT Extreme","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope != \"Extreme\"","id":"a2059ed1-a903-483c-a5b1-a44203fb670f","savedPayload":{"position":{"x":33682.80126272068,"y":31959.687980869192},"targetPosition":{"x":33335.44879159541,"y":31742.939959405492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2ca6efe4-43ac-45a1-ba84-5215d33f32a6","savedPayload":{"position":{"x":33335.44879159541,"y":31742.939959405492},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Deviation > 40","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 25","id":"3b0663ea-9168-4101-bd49-a4fa14473dc7","savedPayload":{"position":{"x":33492.81527571664,"y":32171.088329177917},"targetPosition":{"x":33240.16363723661,"y":31848.699229038637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6f3289e9-c257-4953-ae25-664416db52a7","savedPayload":{"position":{"x":33240.16363723661,"y":31848.699229038637},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"977e6e41-dca1-4b42-9e82-3e2eeae3c220","savedPayload":{"position":{"x":32987.75009839662,"y":31526.263027016277},"targetPosition":{"x":32607.26331447191,"y":31676.362232420466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"260de0f8-58ff-477f-aadb-f61a4043e3a8","savedPayload":{"position":{"x":32607.26331447191,"y":31676.362232420466},"targetPosition":{"x":32218.203346952138,"y":31802.987156123374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"a2b6bf13-42e1-428f-9691-42be919fa8c1","savedPayload":{"position":{"x":33677.75850723514,"y":32546.480820378853},"targetPosition":{"x":33313.07984357831,"y":32360.792558224523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"05892d30-611b-4f6e-93ae-3f484b208fe5","savedPayload":{"position":{"x":33313.07984357831,"y":32360.792558224523},"targetPosition":{"x":32948.32328257087,"y":32175.005781011547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f6bb3530-fc04-47bb-b335-1f90463c6a04","savedPayload":{"position":{"x":32948.32328257087,"y":32175.005781011547},"targetPosition":{"x":32583.454684770324,"y":31989.358256691274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3046ad00-d3de-4458-80db-287144ff86fa","savedPayload":{"position":{"x":32583.454684770324,"y":31989.358256691274},"targetPosition":{"x":32218.203346952138,"y":31802.987156123374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"3847310d-3d70-43f6-85a1-8a62eec1d4d3","savedPayload":{"position":{"x":33387.42539740356,"y":32116.794527589384},"targetPosition":{"x":33018.0279860199,"y":32292.436249824437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"680fec1e-3d4c-4b3b-82a6-0f45a34f9776","savedPayload":{"position":{"x":33018.0279860199,"y":32292.436249824437},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"ffbb6568-c112-46de-8097-fbf993a8232f","savedPayload":{"position":{"x":33465.571106445495,"y":32425.43478155105},"targetPosition":{"x":33056.74325525523,"y":32446.256555772732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f0830878-6dd9-4657-a0b5-906ff9296559","savedPayload":{"position":{"x":33056.74325525523,"y":32446.256555772732},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"d7a8fc7d-57a2-4340-bb12-627c667324e6","savedPayload":{"position":{"x":33419.45900626823,"y":32740.505273158957},"targetPosition":{"x":33033.752962097045,"y":32603.794747800173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e841acd3-9785-49f5-be08-5aa63d3df039","savedPayload":{"position":{"x":33033.752962097045,"y":32603.794747800173},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"8H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at08hs.bollingerChannel.direction === \"Up\"","id":"60872ff6-a88d-4e3c-9069-4337d9e77653","savedPayload":{"position":{"x":33256.14231973845,"y":33014.56892092391},"targetPosition":{"x":32952.065637836226,"y":32740.884130165858},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"969eebbc-1e68-4dc7-bb42-5fd1e92648b3","savedPayload":{"position":{"x":32952.065637836226,"y":32740.884130165858},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"12H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at12hs.bollingerChannel.direction === \"Down\"","id":"e1f6e5b8-70b1-44b9-b127-099a28b39e5f","savedPayload":{"position":{"x":33000.20306486545,"y":33205.3420591731},"targetPosition":{"x":32824.05870270297,"y":32836.33950328082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1d87e62c-73ff-434b-ac60-e7afa7035b78","savedPayload":{"position":{"x":32824.05870270297,"y":32836.33950328082},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","id":"4dbcbf0e-b029-40db-9b3e-422ccb1d1642","savedPayload":{"position":{"x":32690.53788200545,"y":33283.801184534575},"targetPosition":{"x":32669.20586962084,"y":32875.59460029089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed71b78d-b409-451d-9e23-72fde4c6ac59","savedPayload":{"position":{"x":32669.20586962084,"y":32875.59460029089},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Deviation > 40","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 25","id":"ca95ffdd-a14f-4985-84b7-2a482eb8091d","savedPayload":{"position":{"x":32374.860433575843,"y":33237.99653746514},"targetPosition":{"x":32511.293905353414,"y":32852.60908935485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"80a35c8a-7650-442f-82de-b9acb0c09988","savedPayload":{"position":{"x":32511.293905353414,"y":32852.60908935485},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"22a72082-528a-440b-8e3f-374d612c4d51","savedPayload":{"position":{"x":32647.89809256855,"y":32466.81884324842},"targetPosition":{"x":32343.994367056974,"y":32192.577730607023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"db4a7c92-b806-4329-9300-9b83a3ad036c","savedPayload":{"position":{"x":32267.555525066622,"y":32166.208616784148},"targetPosition":{"x":32092.25,"y":32360.22198731501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6bebda83-5fa6-40c6-8b9d-193636aa5ff8","savedPayload":{"position":{"x":32353.99815107377,"y":32397.54225711615},"targetPosition":{"x":32343.994367056974,"y":32192.577730607023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9d98dc4-e354-4357-99c8-eaa829f874d7","savedPayload":{"position":{"x":32343.994367056974,"y":32192.577730607023},"targetPosition":{"x":32218.203346952138,"y":31802.987156123374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"0bf02e1f-d661-437b-85b0-b31e57707199","savedPayload":{"position":{"x":32218.203346952138,"y":31802.987156123374},"targetPosition":{"x":31854.611783869535,"y":31617.461964697784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"283c986f-f9e6-4db2-a7cf-31df9bc42e21","savedPayload":{"position":{"x":33262.348283073654,"y":33668.26110625135},"targetPosition":{"x":32996.16226727139,"y":33821.48103036987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"7e24efcb-8efd-4f21-846e-c1c9be5e4dc0","savedPayload":{"position":{"x":35661.5330621917,"y":32460.96477728643},"targetPosition":{"x":35395.80978722638,"y":32307.691972974666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"151ea590-9f96-4956-a7e8-1ae8ed2497b1","savedPayload":{"position":{"x":35395.80978722638,"y":32307.691972974666},"targetPosition":{"x":35129.93735813902,"y":32154.346004055602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"af5a4bfb-1676-4497-ad6f-8da3ad1154a1","savedPayload":{"position":{"x":35129.93735813902,"y":32154.346004055602},"targetPosition":{"x":34864.21598400471,"y":32001.112915297275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0c8cf0e4-2be0-4010-b296-400c3413dbfe","savedPayload":{"position":{"x":34864.21598400471,"y":32001.112915297275},"targetPosition":{"x":32996.16226727139,"y":33821.48103036987},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"80a6f7ab-286d-4f4e-af25-ba3f60432087","savedPayload":{"position":{"x":32996.16226727139,"y":33821.48103036987},"targetPosition":{"x":32689.147179694144,"y":33821.48199786943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6ccb7dd5-015c-4d99-855a-4c51c8d31c1a","savedPayload":{"position":{"x":32689.147179694144,"y":33821.48199786943},"targetPosition":{"x":32382.725700846328,"y":33821.60989461435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"cf1fe591-e95e-49b1-9917-696fd2b69ea4","savedPayload":{"position":{"x":33184.71999818604,"y":34214.11641349901},"targetPosition":{"x":32879.1540673357,"y":34182.00430123203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"ac6e1c39-95ac-485c-b9c8-dddefff2fe1c","savedPayload":{"position":{"x":33634.126653251245,"y":35099.63359407601},"targetPosition":{"x":33383.31078816607,"y":34919.700064680575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6d2069d0-7a7b-478c-b682-81e52abc066a","savedPayload":{"position":{"x":33382.25050178636,"y":34920.44290986782},"targetPosition":{"x":33132.43780807961,"y":34740.48684695961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"bde76cfe-6402-4245-883b-9f5b50db5c52","savedPayload":{"position":{"x":33082.77997596954,"y":35350.85551519918},"targetPosition":{"x":33103.89082700777,"y":35043.21827334428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"697829a6-b00e-4b70-99a5-c109263e5ca3","savedPayload":{"position":{"x":33101.38914931789,"y":35045.366536668065},"targetPosition":{"x":33132.43780807961,"y":34740.48684695961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b43a31b0-a9ed-4e41-ae4c-427924f40c59","savedPayload":{"position":{"x":33129.1780223032,"y":34742.82310819165},"targetPosition":{"x":33004.26762261222,"y":34462.6015445682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1c6e5b5b-6ac5-4693-94dd-45c76fdf2b96","savedPayload":{"position":{"x":33003.93138154689,"y":34462.70823485492},"targetPosition":{"x":32879.1540673357,"y":34182.00430123203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"0b1c973a-ce4a-47bd-90a1-d306b30d12aa","savedPayload":{"position":{"x":32878.67130061081,"y":34182.98753017021},"targetPosition":{"x":32630.566126111215,"y":34002.25393399775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04dc4bc7-dcaf-4b43-8418-e050d05c8952","savedPayload":{"position":{"x":32630.39594770166,"y":34002.13102715508},"targetPosition":{"x":32382.725700846328,"y":33821.60989461435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"eee941cf-f98c-4dd0-92fa-815fe2c10865","savedPayload":{"position":{"x":32571.120782001806,"y":34406.17252734529},"targetPosition":{"x":32476.87909012684,"y":34113.938241438496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ae433b8c-e6fd-4241-bbe3-2a2cd27ce009","savedPayload":{"position":{"x":32476.82545458858,"y":34113.76990798757},"targetPosition":{"x":32382.725700846328,"y":33821.60989461435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"117adca4-9252-45f2-84b6-6391fbfcb63b","savedPayload":{"position":{"x":32192.68544723151,"y":34405.61314236691},"targetPosition":{"x":32287.633187524032,"y":34113.59824941377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"67dd3e52-2d23-48a0-a7d0-56f7b60e6832","savedPayload":{"position":{"x":32287.559875555915,"y":34113.432909927375},"targetPosition":{"x":32382.725700846328,"y":33821.60989461435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7165c7fa-fb68-40ee-bfb7-2317a0defd40","savedPayload":{"position":{"x":32382.897645029716,"y":33821.819273275294},"targetPosition":{"x":31662.56404301089,"y":32829.66381673354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"b13321e7-009a-4c2e-bc8c-f1b0bdb4dd7b","savedPayload":{"position":{"x":31614.527267611713,"y":33132.96245280527},"targetPosition":{"x":31662.56404301089,"y":32829.66381673354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"9331e3ec-0b89-478a-9910-36fac6843934","savedPayload":{"position":{"x":31726.85084655184,"y":32860.50166756788},"targetPosition":{"x":31421.25,"y":32812.22198731501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5456a919-1f27-4bc1-80de-14aeb1dd2010","savedPayload":{"position":{"x":31414.04315714644,"y":33010.32122662356},"targetPosition":{"x":31662.56404301089,"y":32829.66381673354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2e4981ca-a802-4941-8ed8-563a3e6950ed","savedPayload":{"position":{"x":31662.56404301089,"y":32829.66381673354},"targetPosition":{"x":31854.611783869535,"y":31617.461964697784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Slow Run","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"53f5b5c3-ba67-453c-9c9f-4ce573a45cf7","savedPayload":{"position":{"x":30500.89247017438,"y":32459.578297266748},"targetPosition":{"x":30819.036958787143,"y":32201.72019233247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"9f500e15-05a0-49f2-acb6-22dc52e3a776","savedPayload":{"position":{"x":30819.036958787143,"y":32201.72019233247},"targetPosition":{"x":31150.975630250297,"y":31932.866520667907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48f10387-f326-4021-ae7e-bf0c89f12f0e","savedPayload":{"position":{"x":31208.328337171784,"y":32013.008173556012},"targetPosition":{"x":31448.949834379793,"y":31681.57948129423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"d2f712ac-98dc-41dc-b29e-260334b7cd69","savedPayload":{"position":{"x":30514.18167577269,"y":31761.2170374418},"targetPosition":{"x":30661.02568754195,"y":31379.194283221575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"629a5ecb-7ade-4453-89bb-1d1c5d5f96d9","savedPayload":{"position":{"x":31452.62521613617,"y":35704.649175755076},"targetPosition":{"x":31306.38507672166,"y":35392.89905014682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c9b1b192-1698-44a7-a0f5-20d21088f280","savedPayload":{"position":{"x":31306.38507672166,"y":35392.89905014682},"targetPosition":{"x":31164.240833397416,"y":35074.037476121404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0402e263-ac5c-4546-be68-8f33fdbf8666","savedPayload":{"position":{"x":31164.240833397416,"y":35074.037476121404},"targetPosition":{"x":31021.438921316847,"y":34750.86973446636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1fc1bb7a-a52b-4ce2-b17b-95194de42c8a","savedPayload":{"position":{"x":30296.68637656971,"y":31322.79310193876},"targetPosition":{"x":30661.02568754195,"y":31379.194283221575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"a0b6604b-8744-468d-8eb8-37266a7790bb","savedPayload":{"position":{"x":30438.724191200963,"y":29978.473640966942},"targetPosition":{"x":30695.912811285634,"y":30296.608544153656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7a6659c-b0db-4966-875f-4f3c22448e5f","savedPayload":{"position":{"x":30695.912811285634,"y":30296.608544153656},"targetPosition":{"x":30953.245579650113,"y":30614.81281670587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"bba2d293-88c4-492f-94af-1b9619f740fd","savedPayload":{"position":{"x":30825.47049961038,"y":29806.19925833095},"targetPosition":{"x":30889.3671042988,"y":30210.385421398318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"20aebaee-eb59-4c3f-8c59-39349e032515","savedPayload":{"position":{"x":30889.3671042988,"y":30210.385421398318},"targetPosition":{"x":30953.245579650113,"y":30614.81281670587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"8419c8f8-b2b3-4d98-99e8-2506e40bdb02","savedPayload":{"position":{"x":31245.840967273478,"y":29850.337168761183},"targetPosition":{"x":31099.60147314376,"y":30232.46849471163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0d40d31a-b3d2-4213-9ec0-16dfad84800c","savedPayload":{"position":{"x":31099.60147314376,"y":30232.46849471163},"targetPosition":{"x":30953.245579650113,"y":30614.81281670587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"1f20f276-1067-413d-9855-d5a8c3bf4dd5","savedPayload":{"position":{"x":31588.106924305583,"y":30098.824371705417},"targetPosition":{"x":31270.79628296104,"y":30356.84452509362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5a699f92-494e-4078-b641-1c9c57ffc366","savedPayload":{"position":{"x":31270.79628296104,"y":30356.84452509362},"targetPosition":{"x":30953.245579650113,"y":30614.81281670587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"8522cf28-0d47-4049-a2d0-f859792cc083","savedPayload":{"position":{"x":31745.815505511848,"y":30486.82650760695},"targetPosition":{"x":31356.715958954213,"y":30550.219742514226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0c5c7d7b-590f-4902-b44d-8609741d2b0c","savedPayload":{"position":{"x":31356.715958954213,"y":30550.219742514226},"targetPosition":{"x":30953.245579650113,"y":30614.81281670587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa9bda47-780e-48ec-97bf-52f713be6d1c","savedPayload":{"position":{"x":30953.245579650113,"y":30614.81281670587},"targetPosition":{"x":30807.09852676496,"y":30997.07900762244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0905efc2-d8c9-4b8b-b09f-de915fca26e4","savedPayload":{"position":{"x":30807.09852676496,"y":30997.07900762244},"targetPosition":{"x":30661.02568754195,"y":31379.194283221575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"dc4b92b2-3855-4cc7-84f5-20cc259c1634"}}}],"announcements":[],"id":"e6304ea5-e683-49c1-8e84-e2bc119565fa","savedPayload":{"position":{"x":30661.02568754195,"y":31379.194283221575},"targetPosition":{"x":31068.629399090474,"y":31535.33551862273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"73870f3c-4fc8-464c-be6a-f5e397ee044e","savedPayload":{"position":{"x":29901.249484375345,"y":31377.094167262778},"targetPosition":{"x":30274.70605518238,"y":31210.2377720679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"bc212a30-b2e9-435c-84a8-e505019c0570","savedPayload":{"position":{"x":28893.406176646076,"y":31520.778332079593},"targetPosition":{"x":29212.07710550547,"y":31264.012686794093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"19c71956-4d1e-4355-826e-5bc25d09fdc3","savedPayload":{"position":{"x":29212.07710550547,"y":31264.012686794093},"targetPosition":{"x":29531.831887857006,"y":31006.50215332862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"31e8935e-497f-47eb-9466-900faced609c","savedPayload":{"position":{"x":28721.087664239905,"y":31134.011329246656},"targetPosition":{"x":29125.8628289353,"y":31070.501110683115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"506df2ab-b891-4709-84e6-b773c8743abf","savedPayload":{"position":{"x":29125.8628289353,"y":31070.501110683115},"targetPosition":{"x":29531.831887857006,"y":31006.50215332862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"c1e44382-1537-453b-9f6c-52ef913228aa","savedPayload":{"position":{"x":28765.22117439923,"y":30713.57003149922},"targetPosition":{"x":29147.944257952,"y":30860.18192434744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"928db494-0024-4ed4-a407-84087efb0704","savedPayload":{"position":{"x":29147.944257952,"y":30860.18192434744},"targetPosition":{"x":29531.831887857006,"y":31006.50215332862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"8bae0609-ccff-480d-b382-b56f22ec8dc4","savedPayload":{"position":{"x":29013.97083829324,"y":30370.97096869017},"targetPosition":{"x":29272.351997056765,"y":30688.807256238648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"98ac2a8f-4541-46de-8e01-f9709d6b195f","savedPayload":{"position":{"x":29272.351997056765,"y":30688.807256238648},"targetPosition":{"x":29531.831887857006,"y":31006.50215332862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"a5a3a569-6a05-4fd0-8c15-22d5e5d1b148","savedPayload":{"position":{"x":29400.59541225859,"y":30198.51224944108},"targetPosition":{"x":29465.694395008868,"y":30602.505107002034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2adc3c50-f284-4fb1-9f79-b077a54b5046","savedPayload":{"position":{"x":29465.694395008868,"y":30602.505107002034},"targetPosition":{"x":29531.831887857006,"y":31006.50215332862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c91df057-7904-431b-b997-8fbb2afada1f","savedPayload":{"position":{"x":29531.831887857006,"y":31006.50215332862},"targetPosition":{"x":29915.35006651546,"y":31152.79468292573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8196d5fe-af67-4302-84d1-f95279fb2075","savedPayload":{"position":{"x":29915.35006651546,"y":31152.79468292573},"targetPosition":{"x":30274.70605518238,"y":31210.2377720679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"dc4b92b2-3855-4cc7-84f5-20cc259c1634"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"60d1211f-6279-4c80-abe5-e727a70aea22","savedPayload":{"position":{"x":34435.312104755925,"y":37604.797131887906},"targetPosition":{"x":34371.381595713305,"y":37200.520638670896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6659d86a-2e52-48b2-bcc4-5f5b43b3907e","savedPayload":{"position":{"x":34371.381595713305,"y":37200.520638670896},"targetPosition":{"x":34301.70161318501,"y":36759.80355610525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"5ce2e13e-4b4f-424b-b4ee-1741c013690b","savedPayload":{"position":{"x":33637.05690195842,"y":37298.380990103775},"targetPosition":{"x":33955.25921385612,"y":37040.548458870755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38aa2600-90dc-4c6b-be17-a08ee9c829b3","savedPayload":{"position":{"x":33955.25921385612,"y":37040.548458870755},"targetPosition":{"x":34301.70161318501,"y":36759.80355610525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fd092801-0b6b-4f09-bbb3-b16fe1144ae3","savedPayload":{"position":{"x":29942.550949462675,"y":30461.549907287925},"targetPosition":{"x":30108.751431134442,"y":30835.89159387049},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4b4f5de5-723c-4d6e-b26e-50ee87671f48","savedPayload":{"position":{"x":30108.751431134442,"y":30835.89159387049},"targetPosition":{"x":30274.70605518238,"y":31210.2377720679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e6304ea5-e683-49c1-8e84-e2bc119565fa"}}}],"announcements":[],"id":"ad2a51aa-b179-457e-9704-5c9b1a8db72e","savedPayload":{"position":{"x":30274.70605518238,"y":31210.2377720679},"targetPosition":{"x":30661.02568754195,"y":31379.194283221575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"d29e9a58-79bb-445f-b51a-e5b86937aa8c","savedPayload":{"position":{"x":29569.89733993556,"y":31298.831477570733},"targetPosition":{"x":29887.28573602895,"y":31041.38429809122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"59efd870-0af2-4d5c-a78c-281b71f00497","savedPayload":{"position":{"x":35010.10130049439,"y":37933.36740804276},"targetPosition":{"x":34843.70421091391,"y":37559.42115267648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31c9eb9e-6567-4866-b3de-cf7ac4fa0126","savedPayload":{"position":{"x":34843.70421091391,"y":37559.42115267648},"targetPosition":{"x":34677.20226770342,"y":37185.26541585529},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"0dd58774-bae1-48f4-bb2a-ff3af03d885b","savedPayload":{"position":{"x":34196.30278110237,"y":37847.83226499006},"targetPosition":{"x":34436.72320963445,"y":37516.627594905825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8894b26-93ec-450a-9cbf-2462e442a7bc","savedPayload":{"position":{"x":34436.72320963445,"y":37516.627594905825},"targetPosition":{"x":34677.20226770342,"y":37185.26541585529},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1141841-95d0-4c98-b77e-16eb893e6b19","savedPayload":{"position":{"x":34677.20226770342,"y":37185.26541585529},"targetPosition":{"x":34719.74774859792,"y":36777.73345672497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5a854197-4f85-4f31-bf5e-c9acff5a60cc","savedPayload":{"position":{"x":29630.2706807204,"y":30722.685610075176},"targetPosition":{"x":29887.28573602895,"y":31041.38429809122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e6304ea5-e683-49c1-8e84-e2bc119565fa"}}}],"announcements":[],"id":"dc4b92b2-3855-4cc7-84f5-20cc259c1634","savedPayload":{"position":{"x":29887.28573602895,"y":31041.38429809122},"targetPosition":{"x":30274.70605518238,"y":31210.2377720679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6b48bcff-79c4-4705-82ac-3666914c8628","savedPayload":{"position":{"x":31044.29603098015,"y":31745.267981535948},"targetPosition":{"x":31448.949834379793,"y":31681.57948129423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"103674cc-96ef-407d-8714-ea2e9a9d7e74","savedPayload":{"position":{"x":31378.79809078839,"y":31736.006502876146},"targetPosition":{"x":31316.25,"y":31338.22198731501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5270f90c-9a7c-4c48-a70d-b75316d43872","savedPayload":{"position":{"x":31117.861875558334,"y":31440.806546951313},"targetPosition":{"x":31448.949834379793,"y":31681.57948129423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"657399d3-c55b-46b6-8ef6-bf1ed183c48f","savedPayload":{"position":{"x":31448.949834379793,"y":31681.57948129423},"targetPosition":{"x":31854.611783869535,"y":31617.461964697784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"c3529923-8f7c-4ce4-8368-edca9f37fa52","savedPayload":{"position":{"x":31325.053472792577,"y":31030.065705487017},"targetPosition":{"x":31668.750919700407,"y":31253.281061179234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"1147f820-1445-48ab-8c68-0f9dfc653b99","savedPayload":{"position":{"x":31261.14930563862,"y":31481.17728231012},"targetPosition":{"x":31480.401949358587,"y":31142.768514071446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b01a5c6-c37d-4738-9bfd-1931a7d2d3d5","savedPayload":{"position":{"x":31583.37792473191,"y":30852.18473839943},"targetPosition":{"x":31668.750919700407,"y":31253.281061179234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"62290446-8b87-4e5a-8ade-9a34b8dbb148","savedPayload":{"position":{"x":31668.750919700407,"y":31253.281061179234},"targetPosition":{"x":31854.611783869535,"y":31617.461964697784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b27aa9de-ced9-4e53-941c-499bab212f80","savedPayload":{"position":{"x":31854.611783869535,"y":31617.461964697784},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S6 - 2H Up","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"873a72fd-cc23-4965-ae29-5b2b70d85cb9","savedPayload":{"position":{"x":33010.897460448316,"y":31179.087705618313},"targetPosition":{"x":32743.530080996377,"y":31476.678900946034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"087962b5-2546-4472-b71c-b161f0013b1c","savedPayload":{"position":{"x":32743.530080996377,"y":31476.678900946034},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"c72459a6-49d5-4021-b6e3-4a8c374b6b4b","savedPayload":{"position":{"x":33147.08185909988,"y":31338.07547366014},"targetPosition":{"x":32811.43571183378,"y":31556.272945529192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48333f2b-d8c7-4a92-bf5d-b8c9a8de4196","savedPayload":{"position":{"x":32811.43571183378,"y":31556.272945529192},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"8488937e-9b92-4562-b89c-a4d6c6dd8ee2","savedPayload":{"position":{"x":33237.13790341573,"y":31526.911203926844},"targetPosition":{"x":32856.01196197148,"y":31650.98625831615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ec9b3ba8-d6a4-4cb0-8679-a8daa868e549","savedPayload":{"position":{"x":32856.01196197148,"y":31650.98625831615},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Up\"","id":"ade6a251-d161-467d-8e94-45cfdadf536b","savedPayload":{"position":{"x":33275.56332572748,"y":31733.285246992767},"targetPosition":{"x":32875.524833571035,"y":31754.249385991152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7499f60b-762e-4b37-a66d-2872755620c4","savedPayload":{"position":{"x":32875.524833571035,"y":31754.249385991152},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"04H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Down\"","id":"3beea11e-ff4a-4e39-97d0-97563dacfb09","savedPayload":{"position":{"x":33259.28460932873,"y":31940.902502677036},"targetPosition":{"x":32867.80836627228,"y":31858.056490410654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e0650fa-cd1b-4770-81b2-06d677c73510","savedPayload":{"position":{"x":32867.80836627228,"y":31858.056490410654},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"01H Med, Steep o Extreme","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","id":"276b36c3-c0ca-45d6-a659-c40dac406f46","savedPayload":{"position":{"x":33189.54211479279,"y":32137.713665862248},"targetPosition":{"x":32833.07319674841,"y":31956.498147475777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"904385e8-8b04-4c0c-9961-98b10184e976","savedPayload":{"position":{"x":32833.07319674841,"y":31956.498147475777},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"a49fbb15-05db-4a21-b59b-662a6d84c999","savedPayload":{"position":{"x":33071.171384054614,"y":32309.90187202421},"targetPosition":{"x":32773.91856258477,"y":32042.64240847269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"89591bf6-dabe-4ba6-b2d8-4580a2c75b0a","savedPayload":{"position":{"x":32773.91856258477,"y":32042.64240847269},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side or Medium","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\" || chart.at02hs.bollingerSubChannel.slope === \"Medium\"","id":"bb0016e9-0b74-4595-b450-209487362f00","savedPayload":{"position":{"x":32912.24643585934,"y":32445.677135860693},"targetPosition":{"x":32694.434555061398,"y":32110.581831373445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad9f8e37-16b5-4245-9492-0192ef168849","savedPayload":{"position":{"x":32694.434555061398,"y":32110.581831373445},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"1e3c7245-5582-4af5-9527-5dddf151b976","savedPayload":{"position":{"x":32723.598227552084,"y":32535.7334732403},"targetPosition":{"x":32600.0416875229,"y":32155.64929664765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"440d6ea0-2ee2-408a-a556-18d4c53dda17","savedPayload":{"position":{"x":32600.0416875229,"y":32155.64929664765},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","id":"d4189ed6-4d0f-45ea-b1ae-dbdb8f2e0e2c","savedPayload":{"position":{"x":32518.077922250573,"y":32573.891283006145},"targetPosition":{"x":32497.144449475723,"y":32174.74285972898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"01875e5f-f718-4047-baa4-c91930dd6c86","savedPayload":{"position":{"x":32497.144449475723,"y":32174.74285972898},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Steep","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Steep\"","id":"350d4a04-700f-4f33-960e-d267e00cec51","savedPayload":{"position":{"x":32310.0762594611,"y":32557.365021417743},"targetPosition":{"x":32392.844211360745,"y":32166.404433653668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bda747f3-188e-4ed0-82bf-b600a9a9c3f5","savedPayload":{"position":{"x":32392.844211360745,"y":32166.404433653668},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7ec2e400-1608-44b5-8ae4-ac4f815e76f5","savedPayload":{"position":{"x":32476.10497248283,"y":31774.247558718183},"targetPosition":{"x":32114.4975340574,"y":31604.990853046736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0499e109-2786-4159-b79a-c6c24ebac150","savedPayload":{"position":{"x":32114.4975340574,"y":31604.990853046736},"targetPosition":{"x":31758.22011621457,"y":31424.574860926965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"3ed33d07-ff92-4ecc-81cd-8d9318f5a3a2","savedPayload":{"position":{"x":32252.16665434626,"y":32947.31660965903},"targetPosition":{"x":32128.776811132153,"y":32567.424743327494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40eeff59-ef6d-456b-9662-2590ba1f90b8","savedPayload":{"position":{"x":32128.776811132153,"y":32567.424743327494},"targetPosition":{"x":32005.204151094837,"y":32186.883294667958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"208d89cb-60a9-461f-a8d2-a9d185ca3c5a","savedPayload":{"position":{"x":32005.204151094837,"y":32186.883294667958},"targetPosition":{"x":31881.43076718399,"y":31805.23997790666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"77ac2dcd-e4a4-4a8f-8c71-d8a30fa7a508","savedPayload":{"position":{"x":31881.43076718399,"y":31805.23997790666},"targetPosition":{"x":31758.22011621457,"y":31424.574860926965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"0c4f8301-8084-4276-a901-5e8137867ea0","savedPayload":{"position":{"x":31988.82332276822,"y":32672.19571834107},"targetPosition":{"x":31692.071482468677,"y":32404.721283246283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c407af9c-fe4a-4d5a-9446-25fc7284ee5c","savedPayload":{"position":{"x":31692.071482468677,"y":32404.721283246283},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"6f84e4e1-1174-4eea-b92a-fdb64cdded61","savedPayload":{"position":{"x":31830.031046317567,"y":32808.01597089322},"targetPosition":{"x":31612.54259799393,"y":32472.84689786787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"56b51e70-1cfd-403a-809d-ee19347ca315","savedPayload":{"position":{"x":31612.54259799393,"y":32472.84689786787},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"f3b540af-68c9-4345-9826-faf0d9e6e04c","savedPayload":{"position":{"x":31641.55767350311,"y":32897.9022710009},"targetPosition":{"x":31518.23455469705,"y":32517.86144086963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f4cdcc47-9a5d-4999-9c11-8fd1c19a5424","savedPayload":{"position":{"x":31518.23455469705,"y":32517.86144086963},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Up\"","id":"0f3ff1d1-ff82-42da-a526-aff486cbc0bb","savedPayload":{"position":{"x":31436.205013692565,"y":32935.90412023717},"targetPosition":{"x":31415.48977015678,"y":32536.89355815333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0835043e-d8e1-424e-a530-1def860228eb","savedPayload":{"position":{"x":31415.48977015678,"y":32536.89355815333},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"04H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Down\"","id":"54f8e8ae-578f-461d-9ed2-9f352395dd19","savedPayload":{"position":{"x":31228.54443615153,"y":32919.419915645696},"targetPosition":{"x":31311.585595466433,"y":32528.664179815376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"feb6ba85-a9c1-40af-9e6b-00bd4ef1480b","savedPayload":{"position":{"x":31311.585595466433,"y":32528.664179815376},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"01H Med, Steep o Extreme","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","id":"949100cd-882b-4c11-b010-dbbfd5fff6f5","savedPayload":{"position":{"x":31031.643356321496,"y":32849.55793610308},"targetPosition":{"x":31213.072553776572,"y":32493.738191603945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d3f463af-4e6d-493b-bc8f-e4c66ffc8567","savedPayload":{"position":{"x":31213.072553776572,"y":32493.738191603945},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"b6856a8d-7a24-4a5f-a449-de2d32fe63be","savedPayload":{"position":{"x":30859.463550636483,"y":32731.085165783043},"targetPosition":{"x":31126.93780611842,"y":32434.498319116443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"37a6e660-f28f-4bd2-99ea-3c2f46d2a36c","savedPayload":{"position":{"x":31126.93780611842,"y":32434.498319116443},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side or Medium","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\" || chart.at02hs.bollingerSubChannel.slope === \"Medium\"","id":"08d54285-d07e-4cec-8f13-a2f268a569a2","savedPayload":{"position":{"x":30723.724643081026,"y":32572.09916636515},"targetPosition":{"x":31059.056353841177,"y":32354.976107409486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e0208159-e2c5-4fa4-8658-714af9cc91bd","savedPayload":{"position":{"x":31059.056353841177,"y":32354.976107409486},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"36e3a366-1402-4953-8283-9a4131d304b2","savedPayload":{"position":{"x":30633.69548060391,"y":32383.464894864584},"targetPosition":{"x":31014.06490490233,"y":32260.590685797342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d4dc8ef4-ba98-4843-9ef5-16a649541da1","savedPayload":{"position":{"x":31014.06490490233,"y":32260.590685797342},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","id":"f24fcdcf-8844-4f08-a9f2-3b56471a6dde","savedPayload":{"position":{"x":30595.571410680965,"y":32178.05371321225},"targetPosition":{"x":30995.052862976325,"y":32157.74965041339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2f6a17d7-7a2e-4aa2-b120-d22cb0898194","savedPayload":{"position":{"x":30995.052862976325,"y":32157.74965041339},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Steep","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Steep\"","id":"5e74fc74-6684-4675-ba35-4ce3fee27b2a","savedPayload":{"position":{"x":30612.009771633493,"y":31970.454085425517},"targetPosition":{"x":31003.424923684455,"y":32053.515183920517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cc3b8326-99cd-431c-8b27-c85322f6413f","savedPayload":{"position":{"x":31003.424923684455,"y":32053.515183920517},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e5d2fd0e-f202-44e7-bf4c-32d3a203528e","savedPayload":{"position":{"x":31394.696965332292,"y":32137.06841264846},"targetPosition":{"x":31575.976545730267,"y":31780.03372773283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"08776dac-4836-413b-ad45-fdfa781b031c","savedPayload":{"position":{"x":31575.976545730267,"y":31780.03372773283},"targetPosition":{"x":31758.22011621457,"y":31424.574860926965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"5724bd17-a57c-4ec4-9389-170c4255a2d5","savedPayload":{"position":{"x":31758.22011621457,"y":31424.574860926965},"targetPosition":{"x":31633.219625647092,"y":31038.6715717692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"7ac87760-6585-45b0-8e6a-52393eba7893","savedPayload":{"position":{"x":30735.600805138325,"y":33507.99863549079},"targetPosition":{"x":30475.476039234916,"y":33357.5191308144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"e18e37c2-45e6-4c79-8ab5-0e5ca1d5106f","savedPayload":{"position":{"x":33617.84667711506,"y":33938.36138235442},"targetPosition":{"x":33617.80021414131,"y":33638.42804439987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"97289bf8-e16b-42a3-b467-58175c304390","savedPayload":{"position":{"x":33617.80021414131,"y":33638.42804439987},"targetPosition":{"x":33617.692701429136,"y":33338.295643587335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"77be179e-b8d7-42e1-8612-32b85af6352b","savedPayload":{"position":{"x":33617.67000115603,"y":33338.2983947205},"targetPosition":{"x":33617.553943954204,"y":33038.401141381386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"21d88502-c3c4-4847-af18-a943a25e44f4","savedPayload":{"position":{"x":33617.553943954204,"y":33038.401141381386},"targetPosition":{"x":30475.395949616388,"y":33357.36740858946},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"5c93f074-54cb-4ef9-bcd5-b2ccef229271","savedPayload":{"position":{"x":30475.395949616388,"y":33357.36740858946},"targetPosition":{"x":30325.095919219108,"y":33097.442231856185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3c1bbf78-0fa6-429b-8dbf-d002f6a375b4","savedPayload":{"position":{"x":30325.095919219108,"y":33097.442231856185},"targetPosition":{"x":30174.932833579667,"y":32838.137954305625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"11d19fb0-32df-475f-a4b9-2832942954f3","savedPayload":{"position":{"x":30234.264038388534,"y":33709.59649631907},"targetPosition":{"x":30112.179889514613,"y":33434.84161439404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"547c7e11-9615-4493-8541-29323286596e","savedPayload":{"position":{"x":29697.381162992446,"y":34518.08926656646},"targetPosition":{"x":29728.562546731402,"y":34219.545692809836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"495e7972-41f7-474b-91b1-e434b599dcdc","savedPayload":{"position":{"x":29728.562546731402,"y":34219.545692809836},"targetPosition":{"x":29759.759570577848,"y":33920.72891942154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"eb8e1683-b144-470c-a376-2b091463a231","savedPayload":{"position":{"x":29211.7322965648,"y":34165.26538028993},"targetPosition":{"x":29485.6195128475,"y":34043.05074487052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"867afb92-cc37-44ff-b2e9-b0f5cd2b3856","savedPayload":{"position":{"x":29485.6195128475,"y":34043.05074487052},"targetPosition":{"x":29759.759570577848,"y":33920.72891942154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"01b47fc7-1a64-44cb-bf9c-898cca8bed2b","savedPayload":{"position":{"x":29759.759570577848,"y":33920.72891942154},"targetPosition":{"x":29935.942617287852,"y":33677.80023794164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"cf8da514-59ee-4653-9cc1-69430acc9458","savedPayload":{"position":{"x":29935.942617287852,"y":33677.80023794164},"targetPosition":{"x":30112.179889514613,"y":33434.84161439404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"7f1cee55-5e8d-4ef6-bcf6-d93ebcd364dd","savedPayload":{"position":{"x":30112.081341129044,"y":33434.631552439794},"targetPosition":{"x":30143.474708288704,"y":33136.159475499015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7d4e2188-8c93-4994-8d1d-ac48e2d042ee","savedPayload":{"position":{"x":30143.474708288704,"y":33136.159475499015},"targetPosition":{"x":30174.932833579667,"y":32838.137954305625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"09f38b0e-fe77-4c18-94f7-ccf4065bd658","savedPayload":{"position":{"x":29772.844422223552,"y":33283.54921569672},"targetPosition":{"x":29973.88377786049,"y":33060.741059920125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3bf360bd-8eaf-4902-b171-228ee072b89f","savedPayload":{"position":{"x":29973.88377786049,"y":33060.741059920125},"targetPosition":{"x":30174.932833579667,"y":32838.137954305625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"220cd9e4-fafa-44dc-bded-294af6ccc6df","savedPayload":{"position":{"x":29588.164690634123,"y":32962.447589802534},"targetPosition":{"x":29881.55127058081,"y":32900.126240651916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"58aae9b5-2a28-49dc-b8f6-b2f4a0ed6897","savedPayload":{"position":{"x":29881.55127058081,"y":32900.126240651916},"targetPosition":{"x":30174.932833579667,"y":32838.137954305625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"94e31b0c-1e6e-4a82-aaaf-62f1ceaea758","savedPayload":{"position":{"x":30174.932833579667,"y":32838.137954305625},"targetPosition":{"x":30662.455253128323,"y":31743.375196346577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"20e99942-a476-436b-8a1c-a9347a048114","savedPayload":{"position":{"x":30363.938333749466,"y":31774.39366742148},"targetPosition":{"x":30662.455253128323,"y":31743.375196346577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[],"id":"8f3d8a80-6472-48d8-a081-8de85b844295","savedPayload":{"position":{"x":30662.455253128323,"y":31743.375196346577},"targetPosition":{"x":31633.219625647092,"y":31038.6715717692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"New Manage Stage","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"a32cdd1e-19ce-4bcc-b7c9-52a9e9466dbf","savedPayload":{"position":{"x":30082.885861767205,"y":30674.271706394175},"targetPosition":{"x":30513.31088525428,"y":30719.649203626926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"291bbfda-c1d5-49f6-966b-3f7704ffbda8","savedPayload":{"position":{"x":30449.70849833978,"y":30712.79175326387},"targetPosition":{"x":30918.36861727118,"y":30762.229078092434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bbb0aab4-c6e3-47f8-b737-9e6fcafcfba1","savedPayload":{"position":{"x":30909.98604740559,"y":30862.912765036395},"targetPosition":{"x":31305.47719822368,"y":30800.44309590927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"34d1cb14-5351-42d4-8827-b2b0aa013b99","savedPayload":{"position":{"x":30605.26333421754,"y":30205.78693761094},"targetPosition":{"x":30971.141125384296,"y":30043.93219128299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"6f6150fc-3a6a-4686-a350-ff141bc83623","savedPayload":{"position":{"x":30331.119285087545,"y":35572.907331899485},"targetPosition":{"x":30184.879145673036,"y":35261.15720629123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3ef9a345-0c46-428c-94f3-80decc872e23","savedPayload":{"position":{"x":30184.879145673036,"y":35261.15720629123},"targetPosition":{"x":30042.73490234879,"y":34942.295632265814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d34694ed-b6c6-4fca-ae8d-95e3f30a4888","savedPayload":{"position":{"x":30042.73490234879,"y":34942.295632265814},"targetPosition":{"x":29899.932990268222,"y":34619.12789061077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0be8dfdf-f4ff-4616-b788-c04b3c64eb1b","savedPayload":{"position":{"x":30735.67671147718,"y":29734.66378505733},"targetPosition":{"x":30971.141125384296,"y":30043.93219128299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"45b5b7a2-8cc1-47f8-99c5-8042c7925a89","savedPayload":{"position":{"x":31785.587628057838,"y":28921.80729278172},"targetPosition":{"x":31743.582103773908,"y":29319.674508790024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9bb86da8-d8fa-4b5c-b6a5-952327938371","savedPayload":{"position":{"x":31743.582103773908,"y":29319.674508790024},"targetPosition":{"x":31701.637548164443,"y":29717.658565468908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"05f551c5-32a7-4986-8753-5ac0bd0d4acc","savedPayload":{"position":{"x":32172.013825409394,"y":29069.989139590693},"targetPosition":{"x":31936.92706800949,"y":29393.78099313842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9ba9b517-a809-4b01-848f-5bb31ab1f92c","savedPayload":{"position":{"x":31936.92706800949,"y":29393.78099313842},"targetPosition":{"x":31701.637548164443,"y":29717.658565468908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"c7001aa3-f176-40e4-a6d7-2744966363cd","savedPayload":{"position":{"x":32432.555394753173,"y":29391.497494618434},"targetPosition":{"x":32067.232883950746,"y":29554.586947261843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"094200d6-3761-4dd0-8073-083d14bbeb71","savedPayload":{"position":{"x":32067.232883950746,"y":29554.586947261843},"targetPosition":{"x":31701.637548164443,"y":29717.658565468908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"aaee1ab9-d92b-4f01-afc1-654347d9511a","savedPayload":{"position":{"x":32497.38168861228,"y":29799.19204314747},"targetPosition":{"x":32099.598869002944,"y":29758.585748231508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9143d8e3-b435-49f2-907e-a874e794d32a","savedPayload":{"position":{"x":32099.598869002944,"y":29758.585748231508},"targetPosition":{"x":31701.637548164443,"y":29717.658565468908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"9e27b341-5396-4a81-b483-13c9e497f3c4","savedPayload":{"position":{"x":32342.498436465543,"y":30179.457799669777},"targetPosition":{"x":32025.30263324656,"y":29951.650215787853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77518efa-2184-4602-8f5a-f3e106c6845c","savedPayload":{"position":{"x":32025.30263324656,"y":29951.650215787853},"targetPosition":{"x":31701.637548164443,"y":29717.658565468908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9d8fbd63-29f2-41f9-85f1-92643ff12c6d","savedPayload":{"position":{"x":31701.637548164443,"y":29717.658565468908},"targetPosition":{"x":31336.23232758938,"y":29880.60125077836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"a92424e5-ab90-424c-85cc-b8697bcb6009","savedPayload":{"position":{"x":31336.23232758938,"y":29880.60125077836},"targetPosition":{"x":30971.141125384296,"y":30043.93219128299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"8aff2c3b-ecf9-4df8-84ea-ffd6ba9c9612"}}}],"announcements":[],"id":"58effb7e-0927-4c47-8745-58895dead2ea","savedPayload":{"position":{"x":30971.141125384296,"y":30043.93219128299},"targetPosition":{"x":31146.90148203014,"y":30438.426905457258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"49b3a850-8a9e-41c7-8b5f-e5f3a21ce83d","savedPayload":{"position":{"x":30452.45845106373,"y":29521.565879294885},"targetPosition":{"x":30826.360212497813,"y":29664.135819369385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"c6bc7845-b742-4bd0-a28e-f76bafd9ae16","savedPayload":{"position":{"x":29620.502448153133,"y":29009.482794068932},"targetPosition":{"x":30020.48723524759,"y":28999.95192930794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0dea846d-7054-4651-9c26-e34941dd4128","savedPayload":{"position":{"x":30020.48723524759,"y":28999.95192930794},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"9ef393ca-8c24-4089-a87e-8ce151f2b828","savedPayload":{"position":{"x":29673.23605654033,"y":28702.255596384566},"targetPosition":{"x":30046.812421762977,"y":28846.20864900197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6be2982e-d239-488c-aa26-68e9b2a7af09","savedPayload":{"position":{"x":30046.812421762977,"y":28846.20864900197},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"69018aba-59d9-4f07-a2d5-d93c75981c93","savedPayload":{"position":{"x":29839.877390688383,"y":28438.113330539305},"targetPosition":{"x":30130.17776697706,"y":28714.084841759402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6ce688b0-0234-4ad1-8afa-540325306d5c","savedPayload":{"position":{"x":30130.17776697706,"y":28714.084841759402},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"b882f3e8-28e5-49f8-90a1-c27ac4723c90","savedPayload":{"position":{"x":30094.91632821422,"y":28257.6976118685},"targetPosition":{"x":30257.805692474005,"y":28623.700232213934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d21fc9d4-bec7-4df6-9083-203e877f30de","savedPayload":{"position":{"x":30257.805692474005,"y":28623.700232213934},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"2d8c394e-6772-4d45-a052-a5c04202637c","savedPayload":{"position":{"x":30399.135146391483,"y":28188.951611978144},"targetPosition":{"x":30409.894262867972,"y":28589.425905596338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"577a9703-74fb-4ea1-9e6d-1a6083c6ac29","savedPayload":{"position":{"x":30409.894262867972,"y":28589.425905596338},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14 > chart.at01hs.base7EMA.previous.previous.ema21 - chart.at01hs.base7EMA.previous.previous.ema14","id":"af2fed7e-8530-49cb-8d8c-818c0dfd3865","savedPayload":{"position":{"x":30705.807101415852,"y":28242.043260085895},"targetPosition":{"x":30563.534489641403,"y":28615.829252344352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b902eb1-aaaf-41e5-abab-95f7673e1ff5","savedPayload":{"position":{"x":30563.534489641403,"y":28615.829252344352},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 previous ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","id":"2a5efff2-2a04-4585-813e-e3ac2ffb8b95","savedPayload":{"position":{"x":30970.307494097444,"y":28407.94708158223},"targetPosition":{"x":30695.559309238633,"y":28699.077640496787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"081cec88-c2c1-49f8-88c1-760fc50e7f91","savedPayload":{"position":{"x":30695.559309238633,"y":28699.077640496787},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7abbde01-e871-4b28-973e-51ca5f3f1c4d","savedPayload":{"position":{"x":30421.294627160216,"y":28990.627562965827},"targetPosition":{"x":30585.34029111149,"y":29357.81367658895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"276723b8-0d32-49d8-b9b3-bd29368160f7","savedPayload":{"position":{"x":30585.34029111149,"y":29357.81367658895},"targetPosition":{"x":30826.360212497813,"y":29664.135819369385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"8aff2c3b-ecf9-4df8-84ea-ffd6ba9c9612"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"16b5e57d-57f9-401a-9134-4dd112797d48","savedPayload":{"position":{"x":30789.66764429344,"y":28185.714818709304},"targetPosition":{"x":30951.533541835262,"y":28551.74444969474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f2bb1dbc-702a-413a-9421-9ac5309fe6f0","savedPayload":{"position":{"x":30951.533541835262,"y":28551.74444969474},"targetPosition":{"x":31113.728474558935,"y":28917.21393819002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"f73c271b-afa2-45ee-91d4-6aee3b3a8be9","savedPayload":{"position":{"x":31400.498422214296,"y":28170.05020162896},"targetPosition":{"x":31257.123145725003,"y":28543.607202208215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"feaca6ce-0573-401a-909a-4e25687ce708","savedPayload":{"position":{"x":31257.123145725003,"y":28543.607202208215},"targetPosition":{"x":31113.728474558935,"y":28917.21393819002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 prev.ema7 div 2 prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","id":"a9c93bde-d56d-42e9-a447-b29a02885149","savedPayload":{"position":{"x":31844.247105636758,"y":28591.21341930776},"targetPosition":{"x":31479.031034712203,"y":28754.272707956417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"72e2d105-feba-47a0-8eaf-6c83296a3863","savedPayload":{"position":{"x":31479.031034712203,"y":28754.272707956417},"targetPosition":{"x":31113.728474558935,"y":28917.21393819002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ab94fcaf-55b6-4be2-a44a-b399dda60644","savedPayload":{"position":{"x":31113.728474558935,"y":28917.21393819002},"targetPosition":{"x":30970.110994537692,"y":29290.905083627942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"07ca2734-a819-49f7-99f7-f19f58e5ffba","savedPayload":{"position":{"x":30970.110994537692,"y":29290.905083627942},"targetPosition":{"x":30826.360212497813,"y":29664.135819369385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"58effb7e-0927-4c47-8745-58895dead2ea"}}}],"announcements":[],"id":"e1d12230-902a-46bf-bb48-1fafbd162e1e","savedPayload":{"position":{"x":30826.360212497813,"y":29664.135819369385},"targetPosition":{"x":30971.141125384296,"y":30043.93219128299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"b53c2ea8-9341-416a-bef3-0b7fb86530d5","savedPayload":{"position":{"x":30285.58406428977,"y":29243.050178096328},"targetPosition":{"x":30683.146099147776,"y":29284.109186527035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"de39a349-8739-4e13-ba9d-91acedf7c835","savedPayload":{"position":{"x":33888.595369445764,"y":37801.62556418717},"targetPosition":{"x":33722.19827986528,"y":37427.67930882089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b8a44bb5-4965-4d76-8a55-6f0274d84b0c","savedPayload":{"position":{"x":33722.19827986528,"y":37427.67930882089},"targetPosition":{"x":33555.69633665479,"y":37053.5235719997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"4529e123-22d2-40a3-a751-9069e69fa624","savedPayload":{"position":{"x":33074.796850053746,"y":37716.09042113447},"targetPosition":{"x":33315.21727858583,"y":37384.885751050235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c94daca3-f53c-42b6-970c-586d9b605b04","savedPayload":{"position":{"x":33315.21727858583,"y":37384.885751050235},"targetPosition":{"x":33555.69633665479,"y":37053.5235719997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0a283745-7a51-45ab-b781-538c6e1f6a8a","savedPayload":{"position":{"x":33555.69633665479,"y":37053.5235719997},"targetPosition":{"x":33598.24181754929,"y":36645.99161286938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"be4359e1-bbfa-404c-b1ab-e073d8b4b173","savedPayload":{"position":{"x":30725.365031712365,"y":28886.42343824879},"targetPosition":{"x":30683.146099147776,"y":29284.109186527035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"58effb7e-0927-4c47-8745-58895dead2ea"}}}],"announcements":[],"id":"8aff2c3b-ecf9-4df8-84ea-ffd6ba9c9612","savedPayload":{"position":{"x":30683.146099147776,"y":29284.109186527035},"targetPosition":{"x":30826.360212497813,"y":29664.135819369385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c97bbced-498a-49dd-847a-a52170294ea9","savedPayload":{"position":{"x":30981.651480104963,"y":30564.710684840276},"targetPosition":{"x":31305.47719822368,"y":30800.44309590927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"06a4b038-f8fb-477e-9c1b-4c40ae6262ab","savedPayload":{"position":{"x":31174.04809078839,"y":31458.634409852893},"targetPosition":{"x":31111.5,"y":31060.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2b7c8ed1-9fc0-48ee-9fa1-1a0de54f71e3","savedPayload":{"position":{"x":31243.032461114977,"y":30404.860924837452},"targetPosition":{"x":31305.47719822368,"y":30800.44309590927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f9453ecf-918d-4816-a43e-216a4af33d75","savedPayload":{"position":{"x":31305.47719822368,"y":30800.44309590927},"targetPosition":{"x":31633.219625647092,"y":31038.6715717692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"a003e0e0-4a5c-4b36-a50b-98e69073a310","savedPayload":{"position":{"x":31675.554585333728,"y":30258.903145976074},"targetPosition":{"x":31758.97925625366,"y":30650.411333418004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"4b1b8e1d-da67-439f-8a1b-dd82581ec9c9","savedPayload":{"position":{"x":31742.39930563862,"y":31180.805189286868},"targetPosition":{"x":31961.651949358587,"y":30842.396421048194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b4633c27-f49c-42b5-be24-a2ea7d5ee8f7","savedPayload":{"position":{"x":31977.08325902516,"y":30314.67393304803},"targetPosition":{"x":31758.97925625366,"y":30650.411333418004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1b84ef5d-8088-401c-a38f-5d9222a01ec3","savedPayload":{"position":{"x":31758.97925625366,"y":30650.411333418004},"targetPosition":{"x":31633.219625647092,"y":31038.6715717692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f1ca0dbb-65e8-4c60-84f0-89596e22e9be","savedPayload":{"position":{"x":31633.219625647092,"y":31038.6715717692},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S7 - 3H Down","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"b7ef7546-2729-499d-88db-7c958392fb0e","savedPayload":{"position":{"x":32756.711113974747,"y":31607.61024363443},"targetPosition":{"x":32358.625604152276,"y":31594.206592670653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40201dbd-8fbe-41aa-acd3-c0cea3fff9de","savedPayload":{"position":{"x":32358.625604152276,"y":31594.206592670653},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"6dc11e45-63d6-4246-9a9a-294a45931b14","savedPayload":{"position":{"x":32699.286732443106,"y":31878.47863401902},"targetPosition":{"x":32329.570598085495,"y":31729.497664114646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2dbb8f61-68b4-4835-a6f7-6d7c0c2248ee","savedPayload":{"position":{"x":32329.570598085495,"y":31729.497664114646},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"391ae861-6932-4481-bc4f-15a284dafe80","savedPayload":{"position":{"x":32552.09531778457,"y":32114.04753440217},"targetPosition":{"x":32255.859915100125,"y":31847.386259193245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"52613d30-4103-4272-b871-e3785881dcd8","savedPayload":{"position":{"x":32255.859915100125,"y":31847.386259193245},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","id":"7bf0cb68-72c5-4df6-891e-ee3b08bdc439","savedPayload":{"position":{"x":32334.114842423976,"y":32284.565342679653},"targetPosition":{"x":32147.15431300346,"y":31932.905356218682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5bab5664-c7aa-4e60-aecd-30db721958b0","savedPayload":{"position":{"x":32147.15431300346,"y":31932.905356218682},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"3d771526-7fc9-4c67-b4b4-50e2df038870","savedPayload":{"position":{"x":32070.924868337093,"y":32370.08100269519},"targetPosition":{"x":32015.591548265118,"y":31975.736423733935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1298f042-2f23-4fc7-8359-5bdd3f7e7da1","savedPayload":{"position":{"x":32015.591548265118,"y":31975.736423733935},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Side or Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope === \"Side\" || chart.at06hs.bollingerSubChannel.slope === \"Gentle\"","id":"9e520195-93e0-4d66-b312-eb2c90921b3c","savedPayload":{"position":{"x":31794.650807013048,"y":32360.45078170795},"targetPosition":{"x":31877.416410439342,"y":31970.941978356223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"16707f87-40dc-44ae-a7f8-2df9dc07d53c","savedPayload":{"position":{"x":31877.416410439342,"y":31970.941978356223},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side","code":"chart.at02hs.bollingerSubChannel.slope > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","id":"8143bcc8-af0f-45ef-bbde-1f67fa30b819","savedPayload":{"position":{"x":31537.944515588584,"y":32256.803208422127},"targetPosition":{"x":31748.99837175806,"y":31919.0842921405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0f2efdf7-69dc-4d15-9bf4-6f714894d100","savedPayload":{"position":{"x":31748.99837175806,"y":31919.0842921405},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"10f38b80-2f33-4ad0-b849-019b27b36921","savedPayload":{"position":{"x":31332.159441515407,"y":32071.60292915926},"targetPosition":{"x":31646.02399287895,"y":31826.300241802153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"080177f0-9708-4e76-b021-f4857ee42930","savedPayload":{"position":{"x":31646.02399287895,"y":31826.300241802153},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5dd3ebf8-bbcd-4978-8d28-0f4ecfe80ba4","savedPayload":{"position":{"x":31960.09358765132,"y":31580.130968973965},"targetPosition":{"x":31811.375456622718,"y":31210.024612755467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b4791836-6c85-4279-b75c-ba308154012c","savedPayload":{"position":{"x":31811.375456622718,"y":31210.024612755467},"targetPosition":{"x":31687.76480518738,"y":30831.48557074782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"81a9ee22-bb7d-4a2b-b3ca-7df88b5cfcd1","savedPayload":{"position":{"x":30964.170002711508,"y":32252.191088803193},"targetPosition":{"x":31144.768944066076,"y":31897.42162298904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78d25152-3354-4e6c-8118-e621e2eab4e0","savedPayload":{"position":{"x":31144.768944066076,"y":31897.42162298904},"targetPosition":{"x":31325.724991307263,"y":31541.89217527304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1067e774-8e02-44c0-a86a-43c62a2e1a69","savedPayload":{"position":{"x":31325.724991307263,"y":31541.89217527304},"targetPosition":{"x":31506.68394076039,"y":31186.464463611115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"26a5deff-364b-4f52-b2f2-24eb39f8a9aa","savedPayload":{"position":{"x":31506.68394076039,"y":31186.464463611115},"targetPosition":{"x":31687.76480518738,"y":30831.48557074782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"7ca3641e-2701-4ae6-aebf-419045fa3ef7","savedPayload":{"position":{"x":31415.350855782843,"y":31953.662040186926},"targetPosition":{"x":31228.774127711946,"y":31601.810661783034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"50506cba-6ce7-47ee-a28f-50cae0a62f61","savedPayload":{"position":{"x":31228.774127711946,"y":31601.810661783034},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"b0bf87ab-9049-4c24-918b-b7bc805db2a8","savedPayload":{"position":{"x":31151.8983901484,"y":32039.378083013424},"targetPosition":{"x":31096.520470152915,"y":31644.940254589535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"56da2b2c-74c3-4328-b75c-4990aef44ca0","savedPayload":{"position":{"x":31096.520470152915,"y":31644.940254589535},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"0ed3b727-9493-4064-8404-d2d48e9213ad","savedPayload":{"position":{"x":30875.88748954805,"y":32029.398005509585},"targetPosition":{"x":30958.5310225033,"y":31640.03030162792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f6f8fad9-0588-4d7c-81a8-5738f0d6c7e6","savedPayload":{"position":{"x":30958.5310225033,"y":31640.03030162792},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","id":"5fe7a35e-a56c-4ad4-854d-5b13ca036669","savedPayload":{"position":{"x":30619.45917271261,"y":31925.61009127704},"targetPosition":{"x":30830.267658267254,"y":31588.123770907005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b64fa95-a27a-4e68-9ae1-fa8358e23f41","savedPayload":{"position":{"x":30830.267658267254,"y":31588.123770907005},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"23e2569a-2867-4ebe-aa2b-21254ab0c096","savedPayload":{"position":{"x":30413.92809880018,"y":31740.258282032806},"targetPosition":{"x":30727.44993708856,"y":31495.42966547764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f6a6ace-3508-4a78-953a-a9944f9b9077","savedPayload":{"position":{"x":30727.44993708856,"y":31495.42966547764},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Side or Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope === \"Side\" || chart.at06hs.bollingerSubChannel.slope === \"Gentle\"","id":"565a511b-5264-4cfd-ad94-c8b316f5e19c","savedPayload":{"position":{"x":30284.10436293634,"y":31495.651010108508},"targetPosition":{"x":30662.4945590601,"y":31373.11363325245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5e3a86fa-9e96-47ef-b87b-3324c9edf8a3","savedPayload":{"position":{"x":30662.4945590601,"y":31373.11363325245},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side","code":"chart.at02hs.bollingerSubChannel.slope > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","id":"ef7ba943-87cb-4149-8ab2-a562a34fa524","savedPayload":{"position":{"x":30245.599644538674,"y":31221.709525819122},"targetPosition":{"x":30643.252589579934,"y":31236.12546813472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e624d8a7-586a-4198-a528-b6ee474245dd","savedPayload":{"position":{"x":30643.252589579934,"y":31236.12546813472},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"9992327b-1059-4396-8766-514b6384a81b","savedPayload":{"position":{"x":30303.138677412127,"y":30950.697921181665},"targetPosition":{"x":30672.107581803288,"y":31100.54665498549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0701df03-b97b-4d03-89a7-a9fb764d1d21","savedPayload":{"position":{"x":30672.107581803288,"y":31100.54665498549},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b72964a4-f423-4930-a40d-ced67854d28e","savedPayload":{"position":{"x":31041.820593356788,"y":31249.659564954316},"targetPosition":{"x":31308.726111061416,"y":30953.636053954928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"0f375c4e-1181-48dc-a5c6-98808692de0b","savedPayload":{"position":{"x":31430.805525066622,"y":30518.836523760896},"targetPosition":{"x":31255.5,"y":30712.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2fa6c84-789c-4629-834d-05326002e6af","savedPayload":{"position":{"x":31109.176798356515,"y":30963.27212808858},"targetPosition":{"x":31308.726111061416,"y":30953.636053954928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51e2b55b-66ca-45c9-9cfd-ec82ac5ce3d6","savedPayload":{"position":{"x":31308.726111061416,"y":30953.636053954928},"targetPosition":{"x":31687.76480518738,"y":30831.48557074782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"adc2c73c-702f-46ce-90ad-dbbc7f75ad3d","savedPayload":{"position":{"x":31687.76480518738,"y":30831.48557074782},"targetPosition":{"x":31869.68557793254,"y":30474.935931910186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"35334cbd-d4ce-49aa-aaf6-dd76ad2fc0e2","savedPayload":{"position":{"x":29872.650486479462,"y":31845.644615987683},"targetPosition":{"x":29722.94521058858,"y":31586.628418935463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"09357e03-4041-4836-8d0b-ff241d96d998","savedPayload":{"position":{"x":32805.75142358775,"y":32943.72579653},"targetPosition":{"x":33016.594443523325,"y":32732.39288563737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a39a586f-7f44-4599-81c9-26989d479b34","savedPayload":{"position":{"x":33140.34468073813,"y":32827.35630227829},"targetPosition":{"x":33289.50677656069,"y":32568.28724312379},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fdd8bdf-bcd5-4318-9786-18d2e5e0cc65","savedPayload":{"position":{"x":33289.50677656069,"y":32568.28724312379},"targetPosition":{"x":33438.553943954204,"y":32309.40114138139},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"37c5e03a-b280-40d2-a2e8-e040f87303f8","savedPayload":{"position":{"x":33438.553943954204,"y":32309.40114138139},"targetPosition":{"x":29722.94521058858,"y":31586.628418935463},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"7f426eb4-a1d0-4bc1-90fc-a834c34b7c17","savedPayload":{"position":{"x":29722.94521058858,"y":31586.628418935463},"targetPosition":{"x":29722.725213705256,"y":31287.846173686503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7a4858da-e282-4158-bea4-53b72dbb1817","savedPayload":{"position":{"x":29722.725213705256,"y":31287.846173686503},"targetPosition":{"x":29722.457835209898,"y":30989.4429009283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"4d50fd19-7ed8-453e-82bc-532f4493a243","savedPayload":{"position":{"x":29343.437731382317,"y":31744.382995141423},"targetPosition":{"x":29371.152393632306,"y":31472.02590154781},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"af81c406-ab61-41fb-be2f-e442ffc2f8f0","savedPayload":{"position":{"x":28476.443476226017,"y":32218.25881730505},"targetPosition":{"x":28649.504473241068,"y":31955.95291544174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dde94435-60a3-4c47-94cf-3e8175ac1634","savedPayload":{"position":{"x":28649.504473241068,"y":31955.95291544174},"targetPosition":{"x":28825.08157382303,"y":31714.314372018624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"3d7be9e2-afe8-4d9c-be2c-09af6c358225","savedPayload":{"position":{"x":28236.8604574126,"y":31599.372993702822},"targetPosition":{"x":28528.02184771264,"y":31682.79587950174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fa5631d8-a1d0-4139-85ea-67590dd474cc","savedPayload":{"position":{"x":28528.02184771264,"y":31682.79587950174},"targetPosition":{"x":28825.08157382303,"y":31714.314372018624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1150cede-dcd1-49d1-84f7-ffe774dabf5b","savedPayload":{"position":{"x":28825.08157382303,"y":31714.314372018624},"targetPosition":{"x":29098.089018424576,"y":31593.125254821593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"23a3f497-117a-4975-a899-a4dbeb320a60","savedPayload":{"position":{"x":29098.089018424576,"y":31593.125254821593},"targetPosition":{"x":29371.152393632306,"y":31472.02590154781},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"73ab31c8-85c5-464a-8f79-1e368c01ae6a","savedPayload":{"position":{"x":29371.152393632306,"y":31472.02590154781},"targetPosition":{"x":29546.836137447066,"y":31230.632814358563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"427a98f5-f0bc-4f3e-bd3e-290a2a61a0d8","savedPayload":{"position":{"x":29546.836137447066,"y":31230.632814358563},"targetPosition":{"x":29722.457835209898,"y":30989.4429009283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"5476a8e6-a075-466a-9942-13ce4962b132","savedPayload":{"position":{"x":29153.71032089733,"y":31172.81373022447},"targetPosition":{"x":29438.096980804145,"y":31081.090618860526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7db9c851-0940-43fd-9366-641e540c24d8","savedPayload":{"position":{"x":29438.096980804145,"y":31081.090618860526},"targetPosition":{"x":29722.457835209898,"y":30989.4429009283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"065a3e90-45c2-45d6-846d-7dbbd61439db","savedPayload":{"position":{"x":29154.040974378873,"y":30803.964060964398},"targetPosition":{"x":29438.30180708951,"y":30896.630273574876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6e3ea9ca-8dfd-4706-8a44-bee210c3fa64","savedPayload":{"position":{"x":29438.30180708951,"y":30896.630273574876},"targetPosition":{"x":29722.457835209898,"y":30989.4429009283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"01200851-265b-4fd2-a819-e866a534dd69","savedPayload":{"position":{"x":29722.457835209898,"y":30989.4429009283},"targetPosition":{"x":30688.920593803676,"y":30287.74409384992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"cce2c890-b019-4232-804f-1a707f05bcb6","savedPayload":{"position":{"x":30393.584979815012,"y":30240.819745126442},"targetPosition":{"x":30688.920593803676,"y":30287.74409384992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"b23ca59f-d8bc-491c-9a8e-2b32a01b3106","savedPayload":{"position":{"x":31234.10084655184,"y":30186.12957454463},"targetPosition":{"x":30928.5,"y":30137.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a53e9a4d-005d-429d-8cea-80553c0eba26","savedPayload":{"position":{"x":30513.035580242144,"y":30045.471998217716},"targetPosition":{"x":30688.920593803676,"y":30287.74409384992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bdd02df9-2a77-4665-808e-7172a0006e9c","savedPayload":{"position":{"x":30688.920593803676,"y":30287.74409384992},"targetPosition":{"x":31869.68557793254,"y":30474.935931910186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"New Manage Stage","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"cf80ef88-969d-40f5-bc36-ccee6f8518bf","savedPayload":{"position":{"x":31007.622745239525,"y":29170.029822350145},"targetPosition":{"x":31258.45994551566,"y":29479.940552493328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"6fac6741-1d2a-4364-ba55-6d0082d4e33b","savedPayload":{"position":{"x":31258.45994551566,"y":29479.940552493328},"targetPosition":{"x":31530.039463965975,"y":29815.47282469586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"995255a7-571c-4219-bb24-a1dda890ba60","savedPayload":{"position":{"x":31484.467341186282,"y":29844.710284007848},"targetPosition":{"x":31807.16663599444,"y":30079.347663334862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"712dcccd-fca1-4d1b-bf00-497375a831ec","savedPayload":{"position":{"x":31732.539366836572,"y":29162.99263509157},"targetPosition":{"x":32104.571397491785,"y":29306.12811998022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"8facdd27-7830-4433-b373-c259545e9d3f","savedPayload":{"position":{"x":29882.867353640824,"y":35200.38777180643},"targetPosition":{"x":29736.627214226315,"y":34888.63764619818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7b658c8-0903-46b3-867a-c01eaca10bb1","savedPayload":{"position":{"x":29736.627214226315,"y":34888.63764619818},"targetPosition":{"x":29594.48297090207,"y":34569.77607217276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"97de140f-ae6e-435a-8be7-c4d87e38bd83","savedPayload":{"position":{"x":29594.48297090207,"y":34569.77607217276},"targetPosition":{"x":29451.6810588215,"y":34246.608330517716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c137f50a-c8a7-4275-8ae4-80fa7fedd38c","savedPayload":{"position":{"x":32166.756910341126,"y":28889.69689332528},"targetPosition":{"x":32104.571397491785,"y":29306.12811998022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"908a2ee2-d913-46d1-80f5-e7109c803e65","savedPayload":{"position":{"x":28516.71817962912,"y":35192.29086492423},"targetPosition":{"x":28557.156363557613,"y":34808.409636499855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a9ab42d-9b24-461f-95cd-39ab13a54bc3","savedPayload":{"position":{"x":28557.156363557613,"y":34808.409636499855},"targetPosition":{"x":28598.0289573759,"y":34417.78682031214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"d4179fb4-9949-4d82-ae45-8d8be2001ce8","savedPayload":{"position":{"x":28140.072131909215,"y":35047.30833994516},"targetPosition":{"x":28366.86690488685,"y":34735.352904831736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"efab2947-1540-4e8f-a1d9-50289a9b3c7f","savedPayload":{"position":{"x":28366.86690488685,"y":34735.352904831736},"targetPosition":{"x":28598.0289573759,"y":34417.78682031214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"8fbb58cd-53d0-4e19-8f50-590090df0f58","savedPayload":{"position":{"x":27878.964636068133,"y":34737.91437333604},"targetPosition":{"x":28231.258809765986,"y":34581.04278506479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"adec7d7c-258f-4222-a6d6-734f6962d5d9","savedPayload":{"position":{"x":28231.258809765986,"y":34581.04278506479},"targetPosition":{"x":28598.0289573759,"y":34417.78682031214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"b6a70772-8397-41ac-9268-5ad1cd9b0b80","savedPayload":{"position":{"x":27821.86029713508,"y":34336.88651844418},"targetPosition":{"x":28205.040932522745,"y":34376.814161692535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e1ffbeec-66bc-4d38-984b-2aff6740101f","savedPayload":{"position":{"x":28205.040932522745,"y":34376.814161692535},"targetPosition":{"x":28598.0289573759,"y":34417.78682031214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"ff907f99-713a-41f7-8b23-721699b74966","savedPayload":{"position":{"x":27964.313268952294,"y":33958.435928563435},"targetPosition":{"x":28276.53876559214,"y":34184.71313975834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65511340-ee54-484b-8cb6-f2d95dec9bdd","savedPayload":{"position":{"x":28276.53876559214,"y":34184.71313975834},"targetPosition":{"x":28598.0289573759,"y":34417.78682031214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"94b2fbbc-3d32-473c-8008-231664970f09","savedPayload":{"position":{"x":32849.28299676666,"y":29591.021162867517},"targetPosition":{"x":32476.86475119283,"y":29448.614791856868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"02434c11-1d6d-4f15-9577-237b5daba9ea","savedPayload":{"position":{"x":32476.86475119283,"y":29448.614791856868},"targetPosition":{"x":32104.571397491785,"y":29306.12811998022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"cac36b94-3568-446e-a2d2-9d860bd8ad0f"}}}],"announcements":[],"id":"74e77f0f-2945-48ac-ab1f-47a65feb84ec","savedPayload":{"position":{"x":32104.571397491785,"y":29306.12811998022},"targetPosition":{"x":31950.06586342185,"y":29709.082658113486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"db68ae8b-4414-43f9-b275-c97b3a6a80c6","savedPayload":{"position":{"x":32105.102125287416,"y":28580.59467680565},"targetPosition":{"x":32267.4143234272,"y":28944.957294860884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"2ccb9d00-d677-44b6-8b92-edbcaf349d29","savedPayload":{"position":{"x":33290.65093021714,"y":34555.75511226941},"targetPosition":{"x":33540.8213283894,"y":34865.279508582666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5649c96-59d6-4f0e-a259-063e7355eb48","savedPayload":{"position":{"x":33540.8213283894,"y":34865.279508582666},"targetPosition":{"x":33791.47346791017,"y":35173.62066748123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"2689f28d-6ca9-4e82-8327-eae9956a751a","savedPayload":{"position":{"x":33676.94695072527,"y":34395.80631745438},"targetPosition":{"x":33738.340953101884,"y":34789.24855876006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b19aacc4-d892-41dc-a487-870ca6e13ce2","savedPayload":{"position":{"x":33738.340953101884,"y":34789.24855876006},"targetPosition":{"x":33791.47346791017,"y":35173.62066748123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"9e40ebf6-fd42-43da-b390-30926b085b8f","savedPayload":{"position":{"x":34079.123783303585,"y":34430.169852666026},"targetPosition":{"x":33935.38002039342,"y":34801.925115799015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2b8766b-b4da-40c7-8d88-76f3969065aa","savedPayload":{"position":{"x":33935.38002039342,"y":34801.925115799015},"targetPosition":{"x":33791.47346791017,"y":35173.62066748123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"cae32279-d999-4c13-8eb6-cad3063c74d4","savedPayload":{"position":{"x":34412.44222154852,"y":34672.67036466439},"targetPosition":{"x":34102.0921039295,"y":34923.20814374665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"04ac8528-0696-413b-a739-7825670c0234","savedPayload":{"position":{"x":34102.0921039295,"y":34923.20814374665},"targetPosition":{"x":33791.47346791017,"y":35173.62066748123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"6a80e7f5-300b-417d-9f9d-49803b8f51f8","savedPayload":{"position":{"x":34579.99550348594,"y":35050.04227125973},"targetPosition":{"x":34185.89807327404,"y":35111.97251419154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e23fa3d-13f0-45fe-990f-d268e58ff1cf","savedPayload":{"position":{"x":34185.89807327404,"y":35111.97251419154},"targetPosition":{"x":33791.47346791017,"y":35173.62066748123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"38fc838f-01a5-4a33-a35f-e185f52c295e","savedPayload":{"position":{"x":33790.73756529026,"y":35173.32453395331},"targetPosition":{"x":33648.14450005887,"y":35545.010999298036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0c86ae11-a07f-4c31-a33c-05debf70c23c","savedPayload":{"position":{"x":33648.14450005887,"y":35545.010999298036},"targetPosition":{"x":32267.4143234272,"y":28944.957294860884},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"cac36b94-3568-446e-a2d2-9d860bd8ad0f"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"301720b6-e436-4134-be19-0bd0892f624d","savedPayload":{"position":{"x":32865.55424226058,"y":37100.53572793926},"targetPosition":{"x":32801.62373321796,"y":36696.25923472225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e8c0fcc-d597-40f7-b07f-16214f744b0e","savedPayload":{"position":{"x":32801.62373321796,"y":36696.25923472225},"targetPosition":{"x":32731.943750689665,"y":36255.54215215661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"b7683607-6589-414b-b6de-5aa132d6baef","savedPayload":{"position":{"x":32067.299039463076,"y":36794.11958615513},"targetPosition":{"x":32385.501351360777,"y":36536.28705492211},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e247b889-3abc-469b-b26d-fc11a08bf9c8","savedPayload":{"position":{"x":32385.501351360777,"y":36536.28705492211},"targetPosition":{"x":32731.943750689665,"y":36255.54215215661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"605adda8-a968-4819-af76-2ee257f07e66","savedPayload":{"position":{"x":32996.142903277054,"y":28620.519213581738},"targetPosition":{"x":32631.78472413752,"y":28782.773153677914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"cc9492df-3289-4d6a-b152-bad2fc656730","savedPayload":{"position":{"x":32631.78472413752,"y":28782.773153677914},"targetPosition":{"x":32267.4143234272,"y":28944.957294860884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"74e77f0f-2945-48ac-ab1f-47a65feb84ec"}}}],"announcements":[],"id":"7fc97392-92a0-48cc-a5d3-799b1c2b8c35","savedPayload":{"position":{"x":32267.4143234272,"y":28944.957294860884},"targetPosition":{"x":32104.571397491785,"y":29306.12811998022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"895b6803-0996-41a6-9a13-93f488d7aee4","savedPayload":{"position":{"x":32159.626044730376,"y":28262.42213582802},"targetPosition":{"x":32410.183160417215,"y":28572.417370269148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"df898928-7078-4e61-a616-169789552b36","savedPayload":{"position":{"x":33440.34343799904,"y":37429.106004094116},"targetPosition":{"x":33273.94634841856,"y":37055.159748727834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c02edb77-0d76-4656-8d2f-068eaddabff7","savedPayload":{"position":{"x":33273.94634841856,"y":37055.159748727834},"targetPosition":{"x":33107.44440520807,"y":36681.00401190665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"3bdea448-de7a-4188-b9ec-350dbf88470a","savedPayload":{"position":{"x":32626.544918607025,"y":37343.570861041415},"targetPosition":{"x":32866.96534713911,"y":37012.36619095718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fbc8a359-f853-44a6-831d-a2078edeebe6","savedPayload":{"position":{"x":32866.96534713911,"y":37012.36619095718},"targetPosition":{"x":33107.44440520807,"y":36681.00401190665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f4664806-47a1-41be-956e-079599c0df49","savedPayload":{"position":{"x":33107.44440520807,"y":36681.00401190665},"targetPosition":{"x":33149.98988610257,"y":36273.47205277633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b75aa4bc-9257-4444-98ca-afe6377b914a","savedPayload":{"position":{"x":32720.007440830715,"y":28321.18817261144},"targetPosition":{"x":32410.183160417215,"y":28572.417370269148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"74e77f0f-2945-48ac-ab1f-47a65feb84ec"}}}],"announcements":[],"id":"cac36b94-3568-446e-a2d2-9d860bd8ad0f","savedPayload":{"position":{"x":32410.183160417215,"y":28572.417370269148},"targetPosition":{"x":32267.4143234272,"y":28944.957294860884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7ce8f923-1393-45ac-97d6-742e2cff6627","savedPayload":{"position":{"x":31745.02301611295,"y":29685.056363586977},"targetPosition":{"x":31807.16663599444,"y":30079.347663334862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"cce97d86-51a4-421b-ab3f-0378a33d0563","savedPayload":{"position":{"x":32244.805525066622,"y":29775.836523760896},"targetPosition":{"x":32069.5,"y":29969.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f219f7a-b837-4ea3-a556-81bed47eae20","savedPayload":{"position":{"x":32041.585952575293,"y":29756.362553668645},"targetPosition":{"x":31807.16663599444,"y":30079.347663334862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0d03ff5b-3162-49a3-ae12-a0e5929de4dd","savedPayload":{"position":{"x":31807.16663599444,"y":30079.347663334862},"targetPosition":{"x":31869.68557793254,"y":30474.935931910186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"1c8d7c9c-e122-4839-a9df-db514ccfa466","savedPayload":{"position":{"x":32443.78411880295,"y":29957.94017527169},"targetPosition":{"x":32226.406850104606,"y":30292.86134791828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"eabb6fbc-81b2-4eba-b222-062d7e7b219e","savedPayload":{"position":{"x":32075.39930563862,"y":30303.805189286868},"targetPosition":{"x":32294.651949358587,"y":29965.396421048194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6935a06b-c142-4601-8637-79d3eba3015e","savedPayload":{"position":{"x":32617.38344944207,"y":30209.38594008121},"targetPosition":{"x":32226.406850104606,"y":30292.86134791828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"68777dc5-38aa-4508-8819-db12202b41c3","savedPayload":{"position":{"x":32226.406850104606,"y":30292.86134791828},"targetPosition":{"x":31869.68557793254,"y":30474.935931910186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fc6676b7-944d-459c-bc06-592b3ae2fd1b","savedPayload":{"position":{"x":31869.68557793254,"y":30474.935931910186},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S2 - 6H Down","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"301d8e64-bde8-4eee-a0cf-b9c57bcb3050","savedPayload":{"position":{"x":32234.440324534728,"y":31685.198935221037},"targetPosition":{"x":31982.173246407383,"y":31389.646556791922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a869bb21-75b5-4621-9760-840cf4896844","savedPayload":{"position":{"x":31982.173246407383,"y":31389.646556791922},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"b3c4a94f-4986-4e55-ba28-f6456a67bd64","savedPayload":{"position":{"x":31969.70451636865,"y":31833.31869527966},"targetPosition":{"x":31849.590605542755,"y":31463.18464013037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7b405bfe-294d-48a8-b1ff-d0c4f4b328d1","savedPayload":{"position":{"x":31849.590605542755,"y":31463.18464013037},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"f4b66e81-3e26-4a04-9687-140ab33bd887","savedPayload":{"position":{"x":31668.20974582201,"y":31869.43108197012},"targetPosition":{"x":31698.734967129512,"y":31481.652370020198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4d1c7a66-dd4a-45f9-956d-6cb68b64920b","savedPayload":{"position":{"x":31698.734967129512,"y":31481.652370020198},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"975153b0-b609-4975-b5d6-26f7bfe675e8","savedPayload":{"position":{"x":31376.60785778446,"y":31787.20304603462},"targetPosition":{"x":31552.95544610948,"y":31440.783608893744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ecc5139a-825f-4c91-8e92-f3719460c66b","savedPayload":{"position":{"x":31552.95544610948,"y":31440.783608893744},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Steep","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Steep\"","id":"a838971e-d8bd-4ded-a418-453b8981ff9e","savedPayload":{"position":{"x":31138.503489096856,"y":31599.473841373},"targetPosition":{"x":31433.865217987634,"y":31346.94829135217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3694b7de-4040-4f51-a025-3d482ad6c127","savedPayload":{"position":{"x":31433.865217987634,"y":31346.94829135217},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H NOT Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope != \"Side\"","id":"fc7ab7ee-a96c-4d9a-ae8e-618cd3ee0769","savedPayload":{"position":{"x":30990.256511828706,"y":31334.90783090023},"targetPosition":{"x":31359.7059535975,"y":31214.620571594114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f681b33-bfa1-46b5-9483-545d3f62791b","savedPayload":{"position":{"x":31359.7059535975,"y":31214.620571594114},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"d6572b86-2aaa-4223-9e6a-0206d8890778","savedPayload":{"position":{"x":30954.425687026902,"y":31034.227478934878},"targetPosition":{"x":31341.868486193758,"y":31064.086948863045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08da37fa-d3c5-49d9-8679-5b80bdff68dd","savedPayload":{"position":{"x":31341.868486193758,"y":31064.086948863045},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"680af7d1-9436-426c-b371-0c51ca813093","savedPayload":{"position":{"x":31729.810159666646,"y":31094.209708940154},"targetPosition":{"x":31876.728519165896,"y":30731.086536864696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"ab2764bc-e2c0-40d8-930f-bd3047f39596","savedPayload":{"position":{"x":31876.728519165896,"y":30731.086536864696},"targetPosition":{"x":32052.882822905718,"y":30384.748725123394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"29130ffe-4d84-411a-90d4-3ee5a6008c21","savedPayload":{"position":{"x":30573.967407399345,"y":30865.044767338284},"targetPosition":{"x":30943.50048121601,"y":30744.974402670025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e6a32c76-eda6-4982-8a3e-220c29218ba2","savedPayload":{"position":{"x":30943.50048121601,"y":30744.974402670025},"targetPosition":{"x":31313.21782034342,"y":30624.877802919116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b31b4647-b5e2-42e5-a1e9-fa0ffafeffc8","savedPayload":{"position":{"x":31313.21782034342,"y":30624.877802919116},"targetPosition":{"x":31682.6972231694,"y":30504.724136086927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"707c998d-da1c-45c1-84de-75ac9a0898b9","savedPayload":{"position":{"x":31682.6972231694,"y":30504.724136086927},"targetPosition":{"x":32052.882822905718,"y":30384.748725123394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"5840e471-a97e-4662-8938-5f1eb21091f0","savedPayload":{"position":{"x":31057.855020732903,"y":30959.629269467543},"targetPosition":{"x":31187.737955266624,"y":30593.52204463944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"447e0866-7372-4a42-b5b1-cd05e0efe728","savedPayload":{"position":{"x":31187.737955266624,"y":30593.52204463944},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"0a447725-e6ac-45ea-bb2c-5f3b968dfc06","savedPayload":{"position":{"x":30798.054534147086,"y":30804.816204348255},"targetPosition":{"x":31058.296133226202,"y":30516.178912692925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9540f515-0603-4cda-bbbd-84d7d104a8e1","savedPayload":{"position":{"x":31058.296133226202,"y":30516.178912692925},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"ad089114-2332-4b0b-b079-4070e1baa4c5","savedPayload":{"position":{"x":30616.980526490526,"y":30561.856583368746},"targetPosition":{"x":30967.726468712906,"y":30394.73857223334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f2c2ddf-c19f-4f32-bda3-b4a3b7e7fb90","savedPayload":{"position":{"x":30967.726468712906,"y":30394.73857223334},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"48b35276-b129-486a-a517-ca3656ff9a53","savedPayload":{"position":{"x":30542.568712081516,"y":30268.072961601036},"targetPosition":{"x":30930.501586083756,"y":30247.795826218786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"179fce4e-890b-4a07-9289-57620f55da9e","savedPayload":{"position":{"x":30930.501586083756,"y":30247.795826218786},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Steep","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Steep\"","id":"45c706e6-6a7c-4b5a-b713-2b87ac0b6550","savedPayload":{"position":{"x":30586.303004546757,"y":29968.42600372806},"targetPosition":{"x":30952.34803604804,"y":30097.916134063787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad485330-bf10-49e7-beaa-d57e0f8564b3","savedPayload":{"position":{"x":30952.34803604804,"y":30097.916134063787},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H NOT Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope != \"Side\"","id":"a360bbf1-b177-4298-80a8-06b6062dc779","savedPayload":{"position":{"x":30741.535335287797,"y":29707.74906833391},"targetPosition":{"x":31029.961639336052,"y":29967.557447555944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8134986-b19a-4715-bb59-dd6bc7c774a8","savedPayload":{"position":{"x":31029.961639336052,"y":29967.557447555944},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"685b785a-4196-4b0a-84c1-0c7ed54e6162","savedPayload":{"position":{"x":30984.63248820747,"y":29526.15155137087},"targetPosition":{"x":31151.60230691471,"y":29876.76561310542},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"747a6cc6-2122-4f62-ab40-bdcfbb8ae702","savedPayload":{"position":{"x":31151.60230691471,"y":29876.76561310542},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e9bc25c6-7eca-42cd-a2c2-dbc196d8929a","savedPayload":{"position":{"x":31318.795481358207,"y":30227.661807410743},"targetPosition":{"x":31706.775997487235,"y":30207.837568084273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"2968a063-b746-4430-944d-95d7db806279","savedPayload":{"position":{"x":32154.805525066622,"y":29905.836523760896},"targetPosition":{"x":31979.5,"y":30099.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5242fd04-b240-476a-89e2-c89ad6520c1b","savedPayload":{"position":{"x":31562.576354452234,"y":30077.0108733803},"targetPosition":{"x":31706.775997487235,"y":30207.837568084273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"88e734b7-e242-4b34-aeca-bb71905973ab","savedPayload":{"position":{"x":31706.775997487235,"y":30207.837568084273},"targetPosition":{"x":32052.882822905718,"y":30384.748725123394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"73a50844-7c64-4816-a04d-db5da604663b","savedPayload":{"position":{"x":32052.882822905718,"y":30384.748725123394},"targetPosition":{"x":32433.355355014213,"y":30261.473769260487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"64b77603-5226-4bb0-8b4f-30f6aeed68d9","savedPayload":{"position":{"x":30111.63955779835,"y":29829.545701782456},"targetPosition":{"x":30187.057117096716,"y":29547.845858548342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"c6c5ef8c-570d-4c27-80b3-521ff8c7dfd5","savedPayload":{"position":{"x":29060.669915290688,"y":29849.453861610516},"targetPosition":{"x":29342.200079118393,"y":29774.177461183208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"64166d63-e0f3-4271-b427-ea524d9d30a9","savedPayload":{"position":{"x":29342.200079118393,"y":29774.177461183208},"targetPosition":{"x":29623.921417779344,"y":29698.795938007857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9886efaf-3e04-48ed-8e2d-24efce78bcb1","savedPayload":{"position":{"x":29623.921417779344,"y":29698.795938007857},"targetPosition":{"x":29905.533851606528,"y":29623.3668189887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4787a1ba-b078-454d-9fa1-2742ae00ff26","savedPayload":{"position":{"x":29905.533851606528,"y":29623.3668189887},"targetPosition":{"x":30187.057117096716,"y":29547.845858548342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"d6880769-cf36-45b9-80ab-109068583690","savedPayload":{"position":{"x":30187.057117096716,"y":29547.845858548342},"targetPosition":{"x":30392.89365093651,"y":29341.779111862103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b2c096dd-56af-48cd-9013-3005c6dbb9c9","savedPayload":{"position":{"x":30392.89365093651,"y":29341.779111862103},"targetPosition":{"x":30598.40999046724,"y":29135.918860965496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"385a3d80-aaaa-429a-9635-20a5f56982bb","savedPayload":{"position":{"x":29796.35835555227,"y":29409.162670086862},"targetPosition":{"x":30023.09432844091,"y":29226.049390760072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"4a116f7c-9835-46f9-a487-f3314b07fc27","savedPayload":{"position":{"x":28902.861148437896,"y":29107.54072997879},"targetPosition":{"x":29190.768185411805,"y":29062.21639661277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31330f42-a7cd-4588-b037-0fb1f4012ebe","savedPayload":{"position":{"x":29190.768185411805,"y":29062.21639661277},"targetPosition":{"x":29478.85821017733,"y":29016.87886688429},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"e6f479d2-001f-4815-81fb-0104760a2131","savedPayload":{"position":{"x":29111.88702210781,"y":28563.579783555895},"targetPosition":{"x":29295.311079015475,"y":28790.15140430324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7da4d156-7295-46ca-84ef-b1b73b22ef68","savedPayload":{"position":{"x":29295.311079015475,"y":28790.15140430324},"targetPosition":{"x":29478.85821017733,"y":29016.87886688429},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8d74abf5-702e-4ff1-b555-1127ecdcc777","savedPayload":{"position":{"x":29478.85821017733,"y":29016.87886688429},"targetPosition":{"x":29750.977246609775,"y":29121.4307820616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8f143346-1514-49e9-af84-0198743e268b","savedPayload":{"position":{"x":29750.977246609775,"y":29121.4307820616},"targetPosition":{"x":30023.09432844091,"y":29226.049390760072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"c068b8fa-cf10-400c-8b35-40ee201f079d","savedPayload":{"position":{"x":30023.09432844091,"y":29226.049390760072},"targetPosition":{"x":30310.901554337408,"y":29180.93088235573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3f5fcc98-1fb5-4de2-8850-17dcc4decfd6","savedPayload":{"position":{"x":30310.901554337408,"y":29180.93088235573},"targetPosition":{"x":30598.40999046724,"y":29135.918860965496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"4fefaca7-9699-4d62-b9f2-e3f5edd1fbcf","savedPayload":{"position":{"x":30079.49724709394,"y":28870.270508476067},"targetPosition":{"x":30339.023460706743,"y":29003.074060938226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e5f14fd-5232-41bc-b038-e069f5410cdb","savedPayload":{"position":{"x":30339.023460706743,"y":29003.074060938226},"targetPosition":{"x":30598.40999046724,"y":29135.918860965496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"4662a32b-d9af-474f-8c91-51b290ac985d","savedPayload":{"position":{"x":30334.376337737165,"y":28615.96359780366},"targetPosition":{"x":30466.495623202332,"y":28875.921911960835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b20df87d-b9e0-4eef-86dc-1a12efdc4c68","savedPayload":{"position":{"x":30466.495623202332,"y":28875.921911960835},"targetPosition":{"x":30598.40999046724,"y":29135.918860965496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f8cd9672-6874-43aa-83fc-fe6431796152","savedPayload":{"position":{"x":30598.40999046724,"y":29135.918860965496},"targetPosition":{"x":31748.504152987472,"y":29318.386237653525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"3f1d66d7-b522-4dca-98a6-f876ee31f323","savedPayload":{"position":{"x":31577.296726741315,"y":29082.332722543688},"targetPosition":{"x":31748.504152987472,"y":29318.386237653525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"20468ec8-2523-47b4-b3b0-ac41bb89887a","savedPayload":{"position":{"x":32355.10084655184,"y":29226.12957454463},"targetPosition":{"x":32049.5,"y":29177.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d934edd3-f12a-4343-aef8-27f2531ec7e4","savedPayload":{"position":{"x":31794.09366947838,"y":29030.01992901516},"targetPosition":{"x":31748.504152987472,"y":29318.386237653525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cbae35a1-6426-4cde-a74e-6e3c8f1ef488","savedPayload":{"position":{"x":31748.504152987472,"y":29318.386237653525},"targetPosition":{"x":32433.355355014213,"y":30261.473769260487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Custom","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"e9425ea8-46fc-4bbd-96af-107b45fcde20","savedPayload":{"position":{"x":32787.40037538293,"y":28748.9879485708},"targetPosition":{"x":32746.82006427679,"y":29135.63873563346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"787093b5-b60f-4002-ae4e-7dcf26bc651c","savedPayload":{"position":{"x":32746.82006427679,"y":29135.63873563346},"targetPosition":{"x":32702.26410829101,"y":29560.101810710996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1a3ca90-96ad-4bc3-84f0-0ead961f4ab3","savedPayload":{"position":{"x":32608.85593964742,"y":29552.080114880126},"targetPosition":{"x":32669.459407712402,"y":29936.52520297799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"af90c747-4790-43c5-afe1-37a605571cae","savedPayload":{"position":{"x":33248.28983387989,"y":29259.76512258894},"targetPosition":{"x":33405.78863403118,"y":29615.251251332513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"64b16855-36d6-49b4-afde-9bc43b6bdd53","savedPayload":{"position":{"x":30958.49273226702,"y":35978.357887355276},"targetPosition":{"x":30812.25259285251,"y":35666.60776174702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a06e989b-e442-43e3-b915-7aa76348e064","savedPayload":{"position":{"x":30812.25259285251,"y":35666.60776174702},"targetPosition":{"x":30670.108349528266,"y":35347.746187721605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ac15c2d4-9d65-464a-b3e6-2d28edca7308","savedPayload":{"position":{"x":30670.108349528266,"y":35347.746187721605},"targetPosition":{"x":30527.306437447696,"y":35024.57844606656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c81de819-5717-459a-9b89-f046c6768803","savedPayload":{"position":{"x":33711.17883883612,"y":29379.644809738806},"targetPosition":{"x":33405.78863403118,"y":29615.251251332513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"bff4cb02-f3ad-4c61-9f94-cc3e2b43121c","savedPayload":{"position":{"x":34495.96331431318,"y":30406.151173773185},"targetPosition":{"x":34109.22405666117,"y":30365.45769696535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a9f77d3c-1868-4535-8117-e56d388ba5ad","savedPayload":{"position":{"x":34109.22405666117,"y":30365.45769696535},"targetPosition":{"x":33722.68793079328,"y":30324.700735716688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"42345fb4-0626-4b42-90c1-bb9f214e17d4","savedPayload":{"position":{"x":34352.02451001019,"y":30781.553036646546},"targetPosition":{"x":34037.23547026468,"y":30553.306359700626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a4bfbfb1-543e-4db0-9f39-dd6631e660eb","savedPayload":{"position":{"x":34037.23547026468,"y":30553.306359700626},"targetPosition":{"x":33722.68793079328,"y":30324.700735716688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"67342cd6-6678-401c-94e1-e0b0eda2263e","savedPayload":{"position":{"x":34039.73033660556,"y":31034.651369948344},"targetPosition":{"x":33881.030676784874,"y":30679.892072710652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6fcc3279-0e65-424f-81b5-0ed032a461ca","savedPayload":{"position":{"x":33881.030676784874,"y":30679.892072710652},"targetPosition":{"x":33722.68793079328,"y":30324.700735716688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"47ca70bc-782c-445f-834e-921f0840eb7e","savedPayload":{"position":{"x":33643.72639272173,"y":31097.640303634198},"targetPosition":{"x":33682.86854442032,"y":30711.32469247557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"13eaacfa-d129-401a-8648-93d7954f94ac","savedPayload":{"position":{"x":33682.86854442032,"y":30711.32469247557},"targetPosition":{"x":33722.68793079328,"y":30324.700735716688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"6674b07b-d9ed-4a96-88b2-6743cd6e0852","savedPayload":{"position":{"x":33276.322508362435,"y":30929.607895929035},"targetPosition":{"x":33495.33006605626,"y":30639.147260588717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9163a9de-74b0-42f7-8ee0-85b93dee00fc","savedPayload":{"position":{"x":33495.33006605626,"y":30639.147260588717},"targetPosition":{"x":33722.68793079328,"y":30324.700735716688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"46f92b3d-10dd-484d-895b-c0d547424c3a","savedPayload":{"position":{"x":33722.68793079328,"y":30324.700735716688},"targetPosition":{"x":33564.219043595695,"y":29969.898477587783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"571d2fea-5e0b-49f3-877a-5b9b41516bfe","savedPayload":{"position":{"x":33564.219043595695,"y":29969.898477587783},"targetPosition":{"x":33405.78863403118,"y":29615.251251332513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"5639cfff-e0f1-417b-8034-adb661ded0cd"}}}],"announcements":[],"id":"75e54a0b-1af9-49d2-ab9b-461d72a731fe","savedPayload":{"position":{"x":33405.78863403118,"y":29615.251251332513},"targetPosition":{"x":33016.39430671254,"y":29788.88391817735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"3f9df9ef-2267-4a33-b2b8-fddce1f7f4d7","savedPayload":{"position":{"x":33911.744860763334,"y":29112.95246822761},"targetPosition":{"x":33773.051073781535,"y":29476.27272549899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"bb9431b0-04e2-49ad-8a1e-8336a5a90ba6","savedPayload":{"position":{"x":34416.95322326507,"y":28296.16406245135},"targetPosition":{"x":34426.305881153865,"y":28684.915659615526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fff74a7d-6205-4d97-b32a-c31c2879e228","savedPayload":{"position":{"x":34426.305881153865,"y":28684.915659615526},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"c2308750-4fa3-45bc-8ce3-b834db3e5a75","savedPayload":{"position":{"x":34715.444342528746,"y":28347.499556006016},"targetPosition":{"x":34575.68890177326,"y":28710.585139863535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"37f1894e-e911-46df-b97d-92ad8716bbb7","savedPayload":{"position":{"x":34575.68890177326,"y":28710.585139863535},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"c815953e-7501-4c0f-bf44-b2054f27204b","savedPayload":{"position":{"x":34972.058349418905,"y":28509.362884350343},"targetPosition":{"x":34704.06500386377,"y":28791.562960245974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0abbc8b9-69b3-4051-a077-8cae2eb456e5","savedPayload":{"position":{"x":34704.06500386377,"y":28791.562960245974},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"b1db73ae-ddb7-452c-bc67-aebce55c0071","savedPayload":{"position":{"x":35147.141150108626,"y":28756.980442477477},"targetPosition":{"x":34791.679182237465,"y":28915.415108629633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1c0d7a06-b7f3-443d-9088-177134b13b83","savedPayload":{"position":{"x":34791.679182237465,"y":28915.415108629633},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"12d82500-383b-445d-995d-7b589c84635a","savedPayload":{"position":{"x":35214.19946698019,"y":29052.728441879615},"targetPosition":{"x":34825.204368153114,"y":29063.356815214163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ea51ecbf-d848-46a7-a88d-82ec88f8480a","savedPayload":{"position":{"x":34825.204368153114,"y":29063.356815214163},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14 > chart.at01hs.base7EMA.previous.previous.ema21 - chart.at01hs.base7EMA.previous.previous.ema14","id":"c48ea949-7b3e-4c17-bff5-19d6e459d626","savedPayload":{"position":{"x":35162.832804467325,"y":29350.654711690964},"targetPosition":{"x":34799.55776558362,"y":29212.503217535977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7d987b62-66de-4d68-be64-91c124266174","savedPayload":{"position":{"x":34799.55776558362,"y":29212.503217535977},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 previous ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","id":"6e81b8d8-148d-4a5a-8307-40c1dbccabb2","savedPayload":{"position":{"x":35001.572988601365,"y":29607.454418412428},"targetPosition":{"x":34718.71420293217,"y":29340.778111080235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"229f0b94-9e9a-45b5-87fe-8bf1427c1cb6","savedPayload":{"position":{"x":34718.71420293217,"y":29340.778111080235},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0e734dca-7ea8-4eaf-9379-48ccf8dff51e","savedPayload":{"position":{"x":34435.516882385054,"y":29074.048555754413},"targetPosition":{"x":34080.098739883826,"y":29232.794420662998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"43f6f964-e44c-4b9e-9c6e-f5f10afb891d","savedPayload":{"position":{"x":34080.098739883826,"y":29232.794420662998},"targetPosition":{"x":33773.051073781535,"y":29476.27272549899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"5639cfff-e0f1-417b-8034-adb661ded0cd"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"427ca47c-7233-4e51-8070-0dd82e493d47","savedPayload":{"position":{"x":35209.14142961346,"y":29440.444294230565},"targetPosition":{"x":34854.12791187051,"y":29597.78782464058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b99cc7a-c8fd-4e57-9f24-c2576f6bab18","savedPayload":{"position":{"x":34854.12791187051,"y":29597.78782464058},"targetPosition":{"x":34498.6289280011,"y":29755.41052699473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"2217cfc4-1cdd-43b0-86ef-9957ff84c8f1","savedPayload":{"position":{"x":35224.438994290365,"y":30033.767832692964},"targetPosition":{"x":34861.984945374395,"y":29894.603901010996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6918bca4-9fcd-44a4-9ad5-d4718158d064","savedPayload":{"position":{"x":34861.984945374395,"y":29894.603901010996},"targetPosition":{"x":34498.6289280011,"y":29755.41052699473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 prev.ema7 div 2 prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","id":"9afbcaee-9dcd-4b18-89a9-9124eea8c900","savedPayload":{"position":{"x":34815.39456925559,"y":30464.907508235723},"targetPosition":{"x":34657.375468352,"y":30110.167880558845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"91b01ae0-97af-48c7-adf3-1bb767e27f36","savedPayload":{"position":{"x":34657.375468352,"y":30110.167880558845},"targetPosition":{"x":34498.6289280011,"y":29755.41052699473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8f15adc5-8719-4f96-8560-127f7eaa0a97","savedPayload":{"position":{"x":34498.6289280011,"y":29755.41052699473},"targetPosition":{"x":34135.87591926167,"y":29615.995190587262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b15ba6fb-7ae0-4c8f-b8ac-b76c5945dcb5","savedPayload":{"position":{"x":34135.87591926167,"y":29615.995190587262},"targetPosition":{"x":33773.051073781535,"y":29476.27272549899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"75e54a0b-1af9-49d2-ab9b-461d72a731fe"}}}],"announcements":[],"id":"eb74a012-ed21-4ce6-8f2e-8f2ebaea9188","savedPayload":{"position":{"x":33773.051073781535,"y":29476.27272549899},"targetPosition":{"x":33405.78863403118,"y":29615.251251332513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"25d46d39-ae12-4dd8-a136-48f75b7236c1","savedPayload":{"position":{"x":34179.5922378825,"y":28952.68449982191},"targetPosition":{"x":34139.99028944556,"y":29339.458559691633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"f4da55cf-3df3-40ed-8d05-a914a6697fae","savedPayload":{"position":{"x":34515.96881662524,"y":38207.07611964296},"targetPosition":{"x":34349.57172704476,"y":37833.12986427668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c64d2c0-288c-45ae-a359-5d3f44bb4c5e","savedPayload":{"position":{"x":34349.57172704476,"y":37833.12986427668},"targetPosition":{"x":34183.06978383427,"y":37458.97412745549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"b4571357-f64e-432a-8d80-37f1dfd89e82","savedPayload":{"position":{"x":33702.17029723322,"y":38121.54097659026},"targetPosition":{"x":33942.5907257653,"y":37790.336306506026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96c5c204-c93f-494c-8691-30566d39db06","savedPayload":{"position":{"x":33942.5907257653,"y":37790.336306506026},"targetPosition":{"x":34183.06978383427,"y":37458.97412745549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2849e6ed-91c0-4e63-a4a3-2ba4d4517008","savedPayload":{"position":{"x":34183.06978383427,"y":37458.97412745549},"targetPosition":{"x":34225.61526472877,"y":37051.44216832517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9c2aa1f4-5ba6-4dc8-9f99-db133558f0e8","savedPayload":{"position":{"x":34526.32051478548,"y":29380.144072111412},"targetPosition":{"x":34139.99028944556,"y":29339.458559691633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"75e54a0b-1af9-49d2-ab9b-461d72a731fe"}}}],"announcements":[],"id":"5639cfff-e0f1-417b-8034-adb661ded0cd","savedPayload":{"position":{"x":34139.99028944556,"y":29339.458559691633},"targetPosition":{"x":33773.051073781535,"y":29476.27272549899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6cb50b3d-6bf3-422f-8d2a-d0103ea02607","savedPayload":{"position":{"x":32898.51510152386,"y":29621.695973589216},"targetPosition":{"x":32669.459407712402,"y":29936.52520297799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"bf593624-8f03-46b0-8bcd-377c7620f1a3","savedPayload":{"position":{"x":33049.04809078839,"y":30508.634409852893},"targetPosition":{"x":32986.5,"y":30110.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8debc3c5-6540-43c3-8fa3-a0ae97e288af","savedPayload":{"position":{"x":33053.853780132136,"y":29875.553003142984},"targetPosition":{"x":32669.459407712402,"y":29936.52520297799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"42765ad5-284e-4966-a367-76593b53bcf7","savedPayload":{"position":{"x":32669.459407712402,"y":29936.52520297799},"targetPosition":{"x":32433.355355014213,"y":30261.473769260487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"6880a8b7-7259-4fb2-abd2-b9c37a735b0e","savedPayload":{"position":{"x":33195.15644454074,"y":30303.891451120202},"targetPosition":{"x":32814.28960967772,"y":30385.03530095667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"975fec0b-d0f0-40c1-baab-1efccd8ea879","savedPayload":{"position":{"x":33080.399305638624,"y":30985.805189286868},"targetPosition":{"x":33299.65194935859,"y":30647.396421048194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c3e1433-a8fe-4b1e-8b6a-e1b8fbbf88a3","savedPayload":{"position":{"x":33141.08859610247,"y":30597.192002896467},"targetPosition":{"x":32814.28960967772,"y":30385.03530095667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c64f618d-4336-4ff2-9dcd-3293acb4cd2a","savedPayload":{"position":{"x":32814.28960967772,"y":30385.03530095667},"targetPosition":{"x":32433.355355014213,"y":30261.473769260487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2faf1715-7b6a-4188-ac5e-c67502e18fcc","savedPayload":{"position":{"x":32433.355355014213,"y":30261.473769260487},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S5 - 4H Up","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"1bb17736-cc12-4b60-9807-632aeb2d3636","savedPayload":{"position":{"x":31803.637082753048,"y":31399.359971188216},"targetPosition":{"x":31818.655546656042,"y":30978.35806096688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2e2487a-d30a-4d70-9d70-f188409059a9","savedPayload":{"position":{"x":31818.655546656042,"y":30978.35806096688},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"21123f61-dc48-4915-b609-c3eab53b8fec","savedPayload":{"position":{"x":31525.850017503104,"y":31317.667269780963},"targetPosition":{"x":31684.17449023727,"y":30926.586714463938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"daefe7ea-f409-406c-891a-28c3001ab5c0","savedPayload":{"position":{"x":31684.17449023727,"y":30926.586714463938},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"6897670f-f952-4d83-8a95-bc82ad1d07fa","savedPayload":{"position":{"x":31267.086794496026,"y":31183.122939986682},"targetPosition":{"x":31549.575445554154,"y":30869.705854556367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b6890e81-16b4-4cd2-b1ed-0c02d51dae4b","savedPayload":{"position":{"x":31549.575445554154,"y":30869.705854556367},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","id":"c02c6beb-0de4-4a7c-a768-7332501d45b1","savedPayload":{"position":{"x":31087.19829214889,"y":30952.77737784711},"targetPosition":{"x":31459.640019499606,"y":30754.84508175051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3e59df4d-42a2-41e9-93ff-6d85b65d9bc2","savedPayload":{"position":{"x":31459.640019499606,"y":30754.84508175051},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","id":"3257e894-69d2-4f5f-93eb-13ba4d62c5e0","savedPayload":{"position":{"x":30996.834259943073,"y":30674.322016396036},"targetPosition":{"x":31414.44419194971,"y":30615.639370576555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bd3ee521-2846-411f-a740-de3480e90421","savedPayload":{"position":{"x":31414.44419194971,"y":30615.639370576555},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Gentle\"","id":"3cef9be4-e642-4af5-b845-d63592ea22e9","savedPayload":{"position":{"x":31007.075520478138,"y":30382.25756547327},"targetPosition":{"x":31419.584840032832,"y":30469.569394286285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a23ee119-f4f5-4fe6-9013-27055d634051","savedPayload":{"position":{"x":31419.584840032832,"y":30469.569394286285},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H NOT Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope != \"Side\"","id":"7fa69f52-edfe-42b6-bda3-40e9ad7af808","savedPayload":{"position":{"x":31116.712625722495,"y":30110.76594490264},"targetPosition":{"x":31474.4688041132,"y":30333.762234397087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"50495c21-1a7b-4c38-9c6c-4cec9fb5a0f1","savedPayload":{"position":{"x":31474.4688041132,"y":30333.762234397087},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"0770176a-5af8-479d-8a7e-7bafaf04cb05","savedPayload":{"position":{"x":31312.539242984873,"y":29893.174081317917},"targetPosition":{"x":31572.61684784771,"y":30224.87918255947},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0538f837-fbba-4e7c-b1db-8a574559d584","savedPayload":{"position":{"x":31572.61684784771,"y":30224.87918255947},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b2dd0458-53e0-4d8c-8f46-bb45946cdb65","savedPayload":{"position":{"x":31832.446754081677,"y":30557.303404222446},"targetPosition":{"x":32254.205048920863,"y":30381.34366988766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"642f8610-4b1d-4178-8bae-12abf00b7812","savedPayload":{"position":{"x":32254.205048920863,"y":30381.34366988766},"targetPosition":{"x":32655.355644345367,"y":30250.83828378207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"9d2e77ef-dc06-4357-8739-44065c83f8cb","savedPayload":{"position":{"x":31152.477915800475,"y":29485.148637629547},"targetPosition":{"x":31528.139844398356,"y":29676.425811184978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65d4f331-e81f-44d4-834b-9e786d9d2a36","savedPayload":{"position":{"x":31528.139844398356,"y":29676.425811184978},"targetPosition":{"x":31903.821467182715,"y":29867.826371430037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9753c7d0-7d95-4464-8331-a7d4bac71a9b","savedPayload":{"position":{"x":31903.821467182715,"y":29867.826371430037},"targetPosition":{"x":32279.619316977198,"y":30058.961696217935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"99db5a57-b7b5-44d2-b046-c5784a51bffc","savedPayload":{"position":{"x":32279.619316977198,"y":30058.961696217935},"targetPosition":{"x":32655.355644345367,"y":30250.83828378207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"190f6e85-1f6e-4088-a156-a82e3b0e72cb","savedPayload":{"position":{"x":31467.337122690104,"y":29960.14749786813},"targetPosition":{"x":31839.670467427597,"y":29762.856324091823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"07da9742-43f4-4bfb-8720-3272474740d1","savedPayload":{"position":{"x":31839.670467427597,"y":29762.856324091823},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"56b61beb-3df4-4577-b39e-90c3c3fc7075","savedPayload":{"position":{"x":31377.480759506314,"y":29682.883283317376},"targetPosition":{"x":31795.183056971782,"y":29624.795860058675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"34460859-dffb-4fba-93b2-fe143c3a25de","savedPayload":{"position":{"x":31795.183056971782,"y":29624.795860058675},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"16a3f794-7209-437c-a272-c1f945374af2","savedPayload":{"position":{"x":31388.098788101044,"y":29391.140811100908},"targetPosition":{"x":31800.391690375553,"y":29478.963861724398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"28a397a8-b5f1-44fd-afe2-3e366e7e938d","savedPayload":{"position":{"x":31800.391690375553,"y":29478.963861724398},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","id":"e6fa32e6-37a4-40ae-a68d-8d046eed13b6","savedPayload":{"position":{"x":31497.861935999175,"y":29119.985100224807},"targetPosition":{"x":31855.294923134716,"y":29343.32643845144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ba113199-ed6c-4b10-8312-4d938c7e8c39","savedPayload":{"position":{"x":31855.294923134716,"y":29343.32643845144},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","id":"b76599cd-7312-4aac-9dee-8e21dac4b1c6","savedPayload":{"position":{"x":31693.887694668956,"y":28902.656474209638},"targetPosition":{"x":31953.340689905217,"y":29234.595917062725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d274dddf-c518-4602-9e20-001b6b348fde","savedPayload":{"position":{"x":31953.340689905217,"y":29234.595917062725},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Gentle\"","id":"ef31d5cf-d980-494c-a6af-1970b0e5e172","savedPayload":{"position":{"x":31952.609151253357,"y":28765.393109525332},"targetPosition":{"x":32082.723348863343,"y":29165.905849972234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1e6adf92-f58a-4ebd-a125-f9b61d51ec59","savedPayload":{"position":{"x":32082.723348863343,"y":29165.905849972234},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H NOT Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope != \"Side\"","id":"d6005505-7c26-4f5c-b94e-3c2a9e812f5c","savedPayload":{"position":{"x":32242.21296721509,"y":28724.70054371358},"targetPosition":{"x":32227.550058824927,"y":29145.566309120117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dac090bd-5be4-4193-b40b-3ce250f62d91","savedPayload":{"position":{"x":32227.550058824927,"y":29145.566309120117},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"6198450f-adf9-4208-a125-e47b101f9b41","savedPayload":{"position":{"x":32528.89266902186,"y":28785.576656817986},"targetPosition":{"x":32370.9875785451,"y":29176.112998723962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b1f55195-9a70-49fa-8025-51cdf0acdbeb","savedPayload":{"position":{"x":32370.9875785451,"y":29176.112998723962},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"196d7981-9230-4a94-b8c2-39ff25a22bb9","savedPayload":{"position":{"x":32212.846706910997,"y":29567.026440768434},"targetPosition":{"x":32525.82609477754,"y":29849.549374255723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"1457056f-1f84-46e0-a144-f2113df411f7","savedPayload":{"position":{"x":32948.80552506662,"y":29504.836523760896},"targetPosition":{"x":32773.5,"y":29698.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4e4c322c-4604-431c-912c-6227d05d2e0b","savedPayload":{"position":{"x":32515.672915242736,"y":29638.436349027324},"targetPosition":{"x":32525.82609477754,"y":29849.549374255723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1c30f570-4f8e-47cf-95c1-dd1f4244a77a","savedPayload":{"position":{"x":32525.82609477754,"y":29849.549374255723},"targetPosition":{"x":32655.355644345367,"y":30250.83828378207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"999bf574-a88b-467f-a107-7e0770e6bd53","savedPayload":{"position":{"x":32655.355644345367,"y":30250.83828378207},"targetPosition":{"x":33029.75192573155,"y":30442.29103770232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"8b0471ee-2c41-4195-99fc-4025d65a390e","savedPayload":{"position":{"x":31579.929199715712,"y":28329.796759479224},"targetPosition":{"x":31853.910414355745,"y":28171.703838281486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"a4ad262a-5f92-497f-9411-56c338d9292b","savedPayload":{"position":{"x":30754.122545444774,"y":27540.973438886354},"targetPosition":{"x":31028.003443564146,"y":27698.876056028217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f953a499-ba93-476f-8af5-61e25f1f9657","savedPayload":{"position":{"x":31031.316375796425,"y":27697.923160732968},"targetPosition":{"x":31305.440043072456,"y":27855.852868035698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"abf13b1e-7ce1-41d1-87b8-c2e1f25c2a6d","savedPayload":{"position":{"x":31305.45786506844,"y":27855.824594382415},"targetPosition":{"x":31579.688155962634,"y":28013.767656946442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"2a270aac-6cd2-4b25-b1a4-ff18d1ccaa4b","savedPayload":{"position":{"x":31579.700107722136,"y":28013.74550246922},"targetPosition":{"x":31853.910414355745,"y":28171.703838281486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"72aea6dd-85da-4291-b993-17b6ab9827b1","savedPayload":{"position":{"x":31853.910414355745,"y":28171.703838281486},"targetPosition":{"x":32170.01608559407,"y":28171.536416079904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3a958f65-ab12-4404-8c2d-14a1b1d80c84","savedPayload":{"position":{"x":32170.01608559407,"y":28171.536416079904},"targetPosition":{"x":32485.715088985602,"y":28171.15713012959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"407b0f9f-573e-4def-b3d1-a9eeabde83f7","savedPayload":{"position":{"x":31659.81139987375,"y":27766.388292401327},"targetPosition":{"x":31974.524291845133,"y":27799.41763208544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"881fe7f0-1527-499a-80f5-89bcce726dac","savedPayload":{"position":{"x":31879.089046140864,"y":26402.837294233297},"targetPosition":{"x":32077.218214079843,"y":26647.230374764797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b18879da-9fa8-4926-aa76-ad8b401c37d1","savedPayload":{"position":{"x":31457.151266858393,"y":27035.4549659169},"targetPosition":{"x":31714.090630726034,"y":27222.201315049584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"c5713c55-47b3-42a8-ab19-08cf2d749396","savedPayload":{"position":{"x":32505.5752595207,"y":26300.82685022934},"targetPosition":{"x":32391.551298605093,"y":26598.486857980544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dba5f292-de5e-490c-ad0f-350ba7a79ba6","savedPayload":{"position":{"x":31747.847047714342,"y":26907.48381747061},"targetPosition":{"x":31714.090630726034,"y":27222.201315049584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6feb04a3-4e72-4cb3-8e80-d924677fd866","savedPayload":{"position":{"x":31712.19231193666,"y":27225.216897539707},"targetPosition":{"x":31841.69595034157,"y":27513.601035817344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"21268798-061f-4dbd-b3ae-62ed06497e7b","savedPayload":{"position":{"x":31846.13723379902,"y":27510.332013678686},"targetPosition":{"x":31974.524291845133,"y":27799.41763208544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"331d8a1e-2395-419d-b119-6f81a8b29085","savedPayload":{"position":{"x":31974.551736945174,"y":27799.396454380087},"targetPosition":{"x":32229.944270623495,"y":27985.490598327917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"74cbbf23-af31-4a53-9e2d-1d2be04f1f00","savedPayload":{"position":{"x":32229.970512281805,"y":27985.475088728974},"targetPosition":{"x":32485.715088985602,"y":28171.15713012959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"532a9467-6b89-4ac8-b4e0-d5015bf2dd36","savedPayload":{"position":{"x":32291.8645065362,"y":27569.273658194026},"targetPosition":{"x":32388.85888378356,"y":27870.231835006754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"46530eb5-5bbf-4e1a-b635-ed22afe99dfb","savedPayload":{"position":{"x":32388.863816650617,"y":27870.223459811998},"targetPosition":{"x":32485.715088985602,"y":28171.15713012959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"9f1b0754-b1f7-4e2b-9962-5555b951e026","savedPayload":{"position":{"x":32681.756599468277,"y":27569.863267139586},"targetPosition":{"x":32583.851836528476,"y":27870.62263043729},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fc1eda7f-ae0a-46cb-89cf-8ec3bb01ad94","savedPayload":{"position":{"x":32583.85638300542,"y":27870.61332054747},"targetPosition":{"x":32485.715088985602,"y":28171.15713012959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6da69684-0123-401b-94e8-a3ca551665d1","savedPayload":{"position":{"x":32485.956593586066,"y":28171.143151808643},"targetPosition":{"x":33227.79337521052,"y":29193.269686449254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"599dc297-9684-46c2-a061-e5f0fe08b0cc","savedPayload":{"position":{"x":33277.42298551964,"y":28880.820143413617},"targetPosition":{"x":33227.79337521052,"y":29193.269686449254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"5de18ec0-2f00-4c77-92b9-955a5923d698","savedPayload":{"position":{"x":33909.10084655184,"y":29201.12957454463},"targetPosition":{"x":33603.5,"y":29152.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"82532147-3a82-4ae5-8758-8ac080add9c7","savedPayload":{"position":{"x":33483.99096742361,"y":29007.16578768379},"targetPosition":{"x":33227.79337521052,"y":29193.269686449254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2a5f2b55-f09e-4be9-92d8-3527a134dac3","savedPayload":{"position":{"x":33227.79337521052,"y":29193.269686449254},"targetPosition":{"x":33029.75192573155,"y":30442.29103770232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Controlled Run","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"928d3add-1690-4dfd-b2f8-455668fc742c","savedPayload":{"position":{"x":34446.54072965572,"y":29566.263118815612},"targetPosition":{"x":34118.74229678125,"y":29831.655797585274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"51924a8f-f6b0-41f0-9fb5-8cd97d8d6531","savedPayload":{"position":{"x":34118.74229678125,"y":29831.655797585274},"targetPosition":{"x":33774.18998850245,"y":30110.61435184037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6ba3063d-c882-44d2-a7c4-9915a220b17e","savedPayload":{"position":{"x":33694.781614397805,"y":30034.89501850924},"targetPosition":{"x":33446.54561839851,"y":30376.4041629772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"f0ba9068-9fd8-46c1-89c6-c51c2127fad3","savedPayload":{"position":{"x":34405.03823312209,"y":30291.840263281058},"targetPosition":{"x":34253.55735010361,"y":30685.388405891084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"3d7e602e-ca81-4d0f-808c-0b6987a224d4","savedPayload":{"position":{"x":35787.30615527667,"y":35398.810989911646},"targetPosition":{"x":35627.67545695055,"y":35040.81781656664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3cf490f8-fb04-4a14-aab8-1215009b40bd","savedPayload":{"position":{"x":35627.67545695055,"y":35040.81781656664},"targetPosition":{"x":35467.72999550737,"y":34682.783353016006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"399b9981-c283-4140-8600-904bd8fae636","savedPayload":{"position":{"x":35467.72999550737,"y":34682.783353016006},"targetPosition":{"x":35307.55009149936,"y":34324.66524598421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"19a0d710-315f-43b8-b1f0-8aca0f21d63e","savedPayload":{"position":{"x":35307.55009149936,"y":34324.66524598421},"targetPosition":{"x":34253.55735010361,"y":30685.388405891084},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"6407cb18-e862-47c7-8c3d-2ac857597595","savedPayload":{"position":{"x":34530.30464769007,"y":32086.76032216619},"targetPosition":{"x":34241.56519862483,"y":31779.736945370492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3218784f-7ac6-4f71-89ca-c13de6fb1e08","savedPayload":{"position":{"x":34241.56519862483,"y":31779.736945370492},"targetPosition":{"x":33952.40791518047,"y":31472.687567332738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"31096ee3-5cb2-437c-911c-b8dac600eeda","savedPayload":{"position":{"x":34206.86770563993,"y":32276.766339734662},"targetPosition":{"x":34079.78645287453,"y":31874.887902369603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4a59f893-ce98-40a8-a456-14758c0e3b72","savedPayload":{"position":{"x":34079.78645287453,"y":31874.887902369603},"targetPosition":{"x":33952.40791518047,"y":31472.687567332738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"39e213d0-6871-4fcc-8ba7-6485b15b8010","savedPayload":{"position":{"x":33833.90249584932,"y":32307.77576085133},"targetPosition":{"x":33893.183785079695,"y":31890.35694745995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a2c15f0e-3edb-4849-862a-dce24f143be6","savedPayload":{"position":{"x":33893.183785079695,"y":31890.35694745995},"targetPosition":{"x":33952.40791518047,"y":31472.687567332738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"5d4916ab-3a59-42cd-ad42-2c9be833bb36","savedPayload":{"position":{"x":33483.71175603528,"y":32173.510662283734},"targetPosition":{"x":33718.10598421068,"y":31823.189571328785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e90a9e18-c05e-4c34-8931-f934311d8be4","savedPayload":{"position":{"x":33718.10598421068,"y":31823.189571328785},"targetPosition":{"x":33952.40791518047,"y":31472.687567332738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"1578e195-a319-4748-8204-f90d816fc4ae","savedPayload":{"position":{"x":33226.90835172038,"y":31900.891944952567},"targetPosition":{"x":33589.60744328863,"y":31686.70649617647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b48541a5-46c2-4e7e-a072-07d94c1b2ac9","savedPayload":{"position":{"x":33589.60744328863,"y":31686.70649617647},"targetPosition":{"x":33952.40791518047,"y":31472.687567332738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\"","id":"fb1f280f-632e-4097-b5da-dfdbacd169c3","savedPayload":{"position":{"x":33113.8985015411,"y":31543.13031314437},"targetPosition":{"x":33533.18645691627,"y":31507.901950537547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0000df02-7c31-423f-a377-ee7a54e745b1","savedPayload":{"position":{"x":33533.18645691627,"y":31507.901950537547},"targetPosition":{"x":33952.40791518047,"y":31472.687567332738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a9ea4174-771b-4b50-8376-05494437d912","savedPayload":{"position":{"x":33952.40791518047,"y":31472.687567332738},"targetPosition":{"x":34103.02164774582,"y":31078.959490898098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"730610f1-2311-4486-8905-37c9c001d766","savedPayload":{"position":{"x":34103.02164774582,"y":31078.959490898098},"targetPosition":{"x":34253.55735010361,"y":30685.388405891084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"1a7c350c-eb3a-4d8a-af57-68aabda6fea7"}}}],"announcements":[],"id":"f631120e-4f0f-41f4-85b3-74778c8060c0","savedPayload":{"position":{"x":34253.55735010361,"y":30685.388405891084},"targetPosition":{"x":33839.85571089323,"y":30526.991004243064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"e0cee676-0034-4512-9ed3-b4f61df739bf","savedPayload":{"position":{"x":35032.298511827415,"y":30664.025220907624},"targetPosition":{"x":34647.207041214446,"y":30836.09669131313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"2cd48b45-e3f4-4a76-8bf7-19470c990e1e","savedPayload":{"position":{"x":36107.40410258614,"y":30517.225318510787},"targetPosition":{"x":35780.230573333596,"y":30782.31136999146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"17193755-5b37-4ee7-82ca-a14db05dbd30","savedPayload":{"position":{"x":35780.230573333596,"y":30782.31136999146},"targetPosition":{"x":35452.761665177284,"y":31047.66467334929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"b8cb24ca-a2ce-4ae6-b5d9-63471af0095f","savedPayload":{"position":{"x":36284.90515124963,"y":30915.913862933052},"targetPosition":{"x":35869.021951828036,"y":30981.751761376323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4facbae1-8244-47d9-bf81-2ebf58477c34","savedPayload":{"position":{"x":35869.021951828036,"y":30981.751761376323},"targetPosition":{"x":35452.761665177284,"y":31047.66467334929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"4e3f128a-a12a-444d-b706-c54a910da68b","savedPayload":{"position":{"x":36239.371881971114,"y":31349.282569362353},"targetPosition":{"x":35846.26069286043,"y":31198.494132839478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2460f9b-c5ab-4502-9b39-38159b55534b","savedPayload":{"position":{"x":35846.26069286043,"y":31198.494132839478},"targetPosition":{"x":35452.761665177284,"y":31047.66467334929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"2a370595-33f8-4cf8-af80-e7871edcf8fa","savedPayload":{"position":{"x":35983.1325692914,"y":31702.277925781378},"targetPosition":{"x":35718.094088328195,"y":31375.038293037353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"133e251e-2ac5-4ebd-8f4c-73eb8c8ba7e1","savedPayload":{"position":{"x":35718.094088328195,"y":31375.038293037353},"targetPosition":{"x":35452.761665177284,"y":31047.66467334929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side or Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\"","id":"55435ac8-859e-4665-842c-f6603923589e","savedPayload":{"position":{"x":35584.73289655696,"y":31879.94420607729},"targetPosition":{"x":35518.86240709847,"y":31463.838891768813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ee4dad2e-77dd-4f45-9847-c3c2e563d015","savedPayload":{"position":{"x":35518.86240709847,"y":31463.838891768813},"targetPosition":{"x":35452.761665177284,"y":31047.66467334929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"42bd767a-7a9e-40dc-9973-ad6e2411e769","savedPayload":{"position":{"x":35452.761665177284,"y":31047.66467334929},"targetPosition":{"x":35058.85073610298,"y":30896.89534740672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f9f58805-ee92-40ac-be13-6d242a6a476f","savedPayload":{"position":{"x":35058.85073610298,"y":30896.89534740672},"targetPosition":{"x":34647.207041214446,"y":30836.09669131313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"1a7c350c-eb3a-4d8a-af57-68aabda6fea7"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"32c1fa99-99b6-4bdd-ad3d-fcb3858413fe","savedPayload":{"position":{"x":35776.79345269899,"y":31909.47813652903},"targetPosition":{"x":35383.44828063969,"y":31758.293786669023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8f146719-384b-4e16-a0b3-c7501eeca1dd","savedPayload":{"position":{"x":35383.44828063969,"y":31758.293786669023},"targetPosition":{"x":34989.99851802312,"y":31606.922286071378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"b1d2c06e-3c41-474c-b241-62639db26336","savedPayload":{"position":{"x":35332.887818885174,"y":32377.069703162415},"targetPosition":{"x":35161.53533828581,"y":31992.11486723846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"655cd860-35be-4db4-8786-758133ade2f8","savedPayload":{"position":{"x":35161.53533828581,"y":31992.11486723846},"targetPosition":{"x":34989.99851802312,"y":31606.922286071378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"7b14d5ba-d792-4d0e-9c33-aae6abc015dd","savedPayload":{"position":{"x":34688.90853441315,"y":32393.902044815673},"targetPosition":{"x":34839.54017120311,"y":32000.460775300373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"41486047-0d08-4227-8d03-3e844c75a3ea","savedPayload":{"position":{"x":34839.54017120311,"y":32000.460775300373},"targetPosition":{"x":34989.99851802312,"y":31606.922286071378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"78031caf-041a-4f69-aea1-f9666aef959d","savedPayload":{"position":{"x":34989.99851802312,"y":31606.922286071378},"targetPosition":{"x":34818.416667519436,"y":31221.49527777832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"ad7504d5-49ec-4fed-bc74-44f5f398def7","savedPayload":{"position":{"x":34818.416667519436,"y":31221.49527777832},"targetPosition":{"x":34647.207041214446,"y":30836.09669131313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"f631120e-4f0f-41f4-85b3-74778c8060c0"}}}],"announcements":[],"id":"bee5a88b-489f-48ce-be58-4531f815462a","savedPayload":{"position":{"x":34647.207041214446,"y":30836.09669131313},"targetPosition":{"x":34253.55735010361,"y":30685.388405891084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.23 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.23} else {takeProfit}","id":"6e3648cc-0d59-428a-acc2-afcf2a6e86c4","savedPayload":{"position":{"x":35364.36754637443,"y":30743.79677885484},"targetPosition":{"x":35036.48540989503,"y":31009.357437908086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"d68720e4-049f-46b9-b412-f0378573a413","savedPayload":{"position":{"x":35025.93602050318,"y":36418.753466704875},"targetPosition":{"x":34780.354363777864,"y":36112.85268730106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"609ce0eb-a9ec-495a-9f99-cd5adeaa5824","savedPayload":{"position":{"x":34780.354363777864,"y":36112.85268730106},"targetPosition":{"x":34538.157968652435,"y":35811.39270619528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"49efa579-e07f-432e-ab03-458909afe80a","savedPayload":{"position":{"x":34453.75516050035,"y":36592.785713769365},"targetPosition":{"x":34495.98103573446,"y":36202.207555966874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"70e024f2-8dc4-443b-b7d0-8d979bd7879a","savedPayload":{"position":{"x":34495.98103573446,"y":36202.207555966874},"targetPosition":{"x":34538.157968652435,"y":35811.39270619528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Up || Side, Gentle or Medium","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Up\" || chart.at01hs.bollingerSubChannel.slope === \"Side\" || chart.at01hs.bollingerSubChannel.slope === \"Gentle\" || chart.at01hs.bollingerSubChannel.slope === \"Medium\"","id":"199cc33c-0e13-4de9-910a-c9d356e9d0d6","savedPayload":{"position":{"x":33926.32049835032,"y":36306.55289460314},"targetPosition":{"x":34232.21759903413,"y":36059.063968740695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3621eed7-d3f5-4350-8e53-6eb76377b10a","savedPayload":{"position":{"x":34232.21759903413,"y":36059.063968740695},"targetPosition":{"x":34538.157968652435,"y":35811.39270619528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dede1ba7-70c6-417a-a54a-14177afbd413","savedPayload":{"position":{"x":34538.157968652435,"y":35811.39270619528},"targetPosition":{"x":34588.210715482724,"y":35403.96530795689},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"76a5126e-7d21-4160-b25a-08631b6d519a","savedPayload":{"position":{"x":35302.17787738192,"y":31337.322692776477},"targetPosition":{"x":35036.48540989503,"y":31009.357437908086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"f631120e-4f0f-41f4-85b3-74778c8060c0"}}}],"announcements":[],"id":"1a7c350c-eb3a-4d8a-af57-68aabda6fea7","savedPayload":{"position":{"x":35036.48540989503,"y":31009.357437908086},"targetPosition":{"x":34647.207041214446,"y":30836.09669131313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a3dd2636-1b11-4d0a-8a32-945e790a97e5","savedPayload":{"position":{"x":33863.77572993962,"y":30310.715804922856},"targetPosition":{"x":33446.54561839851,"y":30376.4041629772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"0204092d-3d12-43b7-95e3-f2146a2a0324","savedPayload":{"position":{"x":33695.04809078839,"y":31034.634409852893},"targetPosition":{"x":33632.5,"y":30636.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8096b40e-271b-407a-b75c-7de3136b04a5","savedPayload":{"position":{"x":33788.0138298563,"y":30624.219309845328},"targetPosition":{"x":33446.54561839851,"y":30376.4041629772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6af83cfb-a8f9-4313-8013-495ed37ee6f5","savedPayload":{"position":{"x":33446.54561839851,"y":30376.4041629772},"targetPosition":{"x":33029.75192573155,"y":30442.29103770232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"a0def27f-df31-4c8e-b5de-12cf8376aa64","savedPayload":{"position":{"x":33575.8445053462,"y":31047.439459383855},"targetPosition":{"x":33221.458597344295,"y":30817.50496330991},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"9a31cc2b-bfb0-43b9-8ad7-0d0135c2a593","savedPayload":{"position":{"x":33396.399305638624,"y":31144.805189286868},"targetPosition":{"x":33615.65194935859,"y":30806.396421048194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"952a1b99-cc01-414a-a583-69486a70cde8","savedPayload":{"position":{"x":33309.75440271151,"y":31230.662234131596},"targetPosition":{"x":33221.458597344295,"y":30817.50496330991},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e49340f8-ed08-46a6-b4f8-b1992e7780b4","savedPayload":{"position":{"x":33221.458597344295,"y":30817.50496330991},"targetPosition":{"x":33029.75192573155,"y":30442.29103770232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f1787887-41aa-41d4-80c5-34db452cd148","savedPayload":{"position":{"x":33029.75192573155,"y":30442.29103770232},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3313017d-fdce-481b-9679-fe8e4f67cd45","savedPayload":{"position":{"x":32433.356993272086,"y":31038.668778615298},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}]} \ No newline at end of file diff --git a/Includes/Workspaces/WHB-BBTB.json b/Includes/Workspaces/WHB-BBTB.json new file mode 100644 index 000000000..3a3ef2e7e --- /dev/null +++ b/Includes/Workspaces/WHB-BBTB.json @@ -0,0 +1 @@ +{"type":"Workspace","name":"Binance - WHB - BBTB","rootNodes":[{"type":"Network","name":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","code":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34247\", \n\"webSocketsPort\": \"8080\"\n}","dataStorage":{"type":"Data Storage","name":"New Data Storage","dataMinesData":{"type":"Data Mines Data","name":"New Data Mines Data","exchangeDataProducts":[{"type":"Exchange Data Products","name":"Binance","marketDataProducts":[{"type":"Market Data Products","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"dd7c8795-bb24-4438-9d77-b37a9000ad7f","savedPayload":{"position":{"x":39655.39345377463,"y":28084.121285348076},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"98e6c917-f4b7-4b71-9215-de3ccaf3dc0c","savedPayload":{"position":{"x":39619.08803001109,"y":27971.34006849996},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"1d7dd537-5f6f-4eb2-8e56-ddba0aef720f","savedPayload":{"position":{"x":39594.11393185164,"y":27855.840877332517},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"221c8d22-8a7f-4014-a7ed-0bafc886b123","savedPayload":{"position":{"x":39580.59887306321,"y":27738.507421368748},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"6929ebe7-6486-4299-add5-ed0282500d91","savedPayload":{"position":{"x":39578.655464896365,"y":27620.63069875915},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"4a3ed8eb-a73e-4fb4-835a-681cf47d7373","savedPayload":{"position":{"x":39588.297198778826,"y":27502.946480135615},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"5ffc6a67-e33b-422b-8e36-f9711f93c723","savedPayload":{"position":{"x":39609.428887621216,"y":27386.77785099828},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"48f7953c-f62d-4292-b042-d1ac05f8f80f","savedPayload":{"position":{"x":39641.84608404141,"y":27273.24280350331},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"3b9a3c93-6d41-440e-89a2-2fd1b2dde603","savedPayload":{"position":{"x":39685.2360649887,"y":27163.433854438405},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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","id":"70401ea0-3fed-4e40-8bba-a1e5adce9b8c","savedPayload":{"position":{"x":39739.18066448831,"y":27058.407968059906},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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","id":"06ac8eb7-8b14-42b1-9e2e-466280ade032","savedPayload":{"position":{"x":39803.16019594351,"y":26959.1762369918},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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":"Popular EMAs","id":"014bba70-64d4-4035-b06d-145ee9b4c54c","savedPayload":{"position":{"x":39876.55840037216,"y":26866.694054096202},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"768cc06c-6fdf-491a-a741-5e08f0e25e38","savedPayload":{"position":{"x":39958.66834477317,"y":26781.851861425766},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"40794460-b815-498f-a245-e677de0eed86","savedPayload":{"position":{"x":40048.69920292061,"y":26705.466552453436},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"7ccbd0c1-c804-47e3-9314-14cbb756c806","savedPayload":{"position":{"x":40145.78385240617,"y":26638.273605375165},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"728d6f08-086f-41ba-9126-30ec56a45ea5","savedPayload":{"position":{"x":40248.98721974834,"y":26580.920017944973},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"1510fd36-633e-40a7-adbe-680660d64bd0","savedPayload":{"position":{"x":40357.31529765827,"y":26533.95809992029},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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":"Base5 SMAs","id":"2404b1eb-c7c9-46e7-b22a-93cfcc3739f4","savedPayload":{"position":{"x":40469.72474382882,"y":26497.840166222424},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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":"Bollinger Channels","id":"d83476c3-2f0b-4d4a-abb2-0e47ed0a421d","savedPayload":{"position":{"x":40585.132955318084,"y":26472.914171771416},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"0428f20b-9620-480e-a531-dbb2e5f59ef4","savedPayload":{"position":{"x":40702.42850753783,"y":26459.42033593334},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"fcfec9fa-1a0d-4285-9fad-4a23409f88ed","savedPayload":{"position":{"x":40820.28557415008,"y":26457.488926076465},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"08f223a8-9707-4c45-b638-1fe0e4a2b053","savedPayload":{"position":{"x":40937.95845139182,"y":26467.13880986452},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"66f1a9be-fe96-48c3-91e4-500c6e246423","savedPayload":{"position":{"x":41054.120384899,"y":26488.277064496815},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"e432c706-cbcd-4af0-b23c-b18e5b29377a","savedPayload":{"position":{"x":41167.65178678811,"y":26520.700545782674},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"7f2dfd8e-de4a-4bd1-8d34-27581f1a3ed8","savedPayload":{"position":{"x":41277.4594798642,"y":26564.097566374792},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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","id":"595d148f-6cdf-48d3-ab8f-23fba0052631","savedPayload":{"position":{"x":41382.48641024106,"y":26618.051155654128},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"2045098a-e9b4-4409-9fd9-ee7285d9b7cf","savedPayload":{"position":{"x":41481.72199276818,"y":26682.043494609432},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"295bd09d-e868-4e8b-9944-39bf6e0d7951","savedPayload":{"position":{"x":41574.21247985582,"y":26755.461785010735},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"ba6f23d4-c2e7-41b4-88a0-e14ebb34e21c","savedPayload":{"position":{"x":41659.072595416554,"y":26837.602086697607},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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"}}},{"type":"Data Product","name":"Resistances","id":"0669d924-aace-46d1-b126-ccced8fd33cf","savedPayload":{"position":{"x":41734.78246123321,"y":26926.742016325188},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Resistances","id":"7a734501-a0fb-4305-803e-7e95d477c513"}}},{"type":"Data Product","name":"Supports","id":"5e7a0e50-e6ed-4106-8025-8b35ad6c597c","savedPayload":{"position":{"x":41803.59685318991,"y":27026.194745818015},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Supports","id":"bc3c43de-6312-47d4-ae3d-0c95c1b039e0"}}}],"id":"cbdd3605-b905-453f-9ecb-e986cb2729f9","savedPayload":{"position":{"x":24207.999751769254,"y":28942.4248575682},"targetPosition":{"x":25074.611669244932,"y":29722.715919865514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}}],"id":"7f87ecc6-8dd3-42e9-9217-1579b64aae75","savedPayload":{"position":{"x":25074.725705182926,"y":29722.361915324287},"targetPosition":{"x":25508.405506167062,"y":30112.915970947008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"bf04ccea-266d-4115-b50e-fefdf29b873a","savedPayload":{"position":{"x":25508.405506167062,"y":30112.915970947008},"targetPosition":{"x":25942.043094058594,"y":30503.50687445451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"i"}}},"tradingMinesData":{"type":"Trading Mines Data","name":"New Trading Mines Data","exchangeTradingProducts":[{"type":"Exchange Trading Products","name":"Binance","sessionReferences":[{"type":"Session Reference","name":"Back WHB ","marketDataProducts":{"type":"Market Data Products","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"573fb46f-78d2-4bf3-ad11-e42d2531d53e","savedPayload":{"position":{"x":40971.62547458223,"y":28704.67815778764},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"39d7a06d-5aad-4b03-8778-e4df8dacc825","savedPayload":{"position":{"x":40739.2805936536,"y":28612.68448755448},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"7af9d35c-7464-4ed5-9ee6-ccf7a9943894","savedPayload":{"position":{"x":40648.47472250254,"y":28380.33960662585},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"82b46974-7a93-4066-a3b7-378b42710364","savedPayload":{"position":{"x":40749.374350272024,"y":28158.088482315645},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"109e30d5-c839-4e20-8744-2e4dc002f3a8","savedPayload":{"position":{"x":40971.62547458223,"y":28380.33960662585},"targetPosition":{"x":41034.51136563778,"y":28696.544935681453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"3792a579-2f2c-4c29-9cb1-05e2683db5da","savedPayload":{"position":{"x":25442.41940134145,"y":28898.292141318674},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"f32f1cdc-425f-4193-a43b-be9312c74234"}}},{"type":"Session Reference","name":"Paper WHB ","marketDataProducts":{"type":"Market Data Products","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"63636068-307e-4cea-b31f-f47e106cea2c","savedPayload":{"position":{"x":41557.474267378886,"y":28704.538380895512},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"20848048-8efb-47b1-aaf0-789d2f6c5b1d","savedPayload":{"position":{"x":41328.36437304013,"y":28614.669001956987},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"87b74841-4f6a-4658-b01b-7feb254b5d2f","savedPayload":{"position":{"x":41238.701960314706,"y":28385.55910761823},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"5e28998c-b35f-4cc0-9fd6-8ee5f5714545","savedPayload":{"position":{"x":41328.657032916315,"y":28156.74187315566},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"12cd1cb4-f163-4d1b-8955-cae6904831c7","savedPayload":{"position":{"x":41557.474267378886,"y":28385.55910761823},"targetPosition":{"x":41536.37709492533,"y":28707.266395142844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"5f2e9d8a-f1df-4efd-8232-718818cab630","savedPayload":{"position":{"x":25645.811186643416,"y":28672.384434673422},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"2198ec50-3d31-43b7-a57d-e386bef38a93"}}},{"type":"Session Reference","name":"Live Trading WHB ","marketDataProducts":{"type":"Market Data Products","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"af19e56c-eaf1-4b0b-93f9-74b9ac1843c2","savedPayload":{"position":{"x":42124.2954678251,"y":28863.166820214137},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"30ac52a8-ee50-439c-83c8-df75ab49374a","savedPayload":{"position":{"x":41899.82203310804,"y":28765.34236295704},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"c35fa0be-6e51-4d14-9a52-6b0174cc1aab","savedPayload":{"position":{"x":41803.41381185934,"y":28540.86892823998},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"6a059555-2555-4c7f-a722-2ab4ca0440c5","savedPayload":{"position":{"x":41897.44019113757,"y":28314.01365155245},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"863885a8-2351-4b29-9f2e-ae3aeda223fc","savedPayload":{"position":{"x":42124.2954678251,"y":28540.86892823998},"targetPosition":{"x":42020.66210112073,"y":28846.1629818523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"ee314903-8ee9-4068-8a90-9452c460b910","savedPayload":{"position":{"x":25914.176401881115,"y":28529.692846346756},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"5335fd67-ebdc-4cfd-936d-b76af957713e"}}},{"type":"Session Reference","name":"Fwd WHB ","marketDataProducts":{"type":"Market Data Products","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"5919a710-a950-4049-9605-3f127b7fac6b","savedPayload":{"position":{"x":42492.63963403888,"y":28500.7397102676},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"c7030a88-152f-421c-8b32-66f3c222286a","savedPayload":{"position":{"x":42710.36396962775,"y":28492.07047492605},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"f4b18249-5044-4b34-83f7-3cedbbe939c5","savedPayload":{"position":{"x":42891.7169300037,"y":28613.377753949273},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"25db80e6-c4cf-4568-98d3-0cba83625ece","savedPayload":{"position":{"x":42967.139262708275,"y":28818.147267745622},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"9b6e94d5-442d-4882-beb6-6b616adb24a7","savedPayload":{"position":{"x":42636.198275976094,"y":28799.555013396635},"targetPosition":{"x":42436.14135357761,"y":29099.04809298164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"3892574a-ebe9-4d4d-8e79-02e6f0900c44","savedPayload":{"position":{"x":26214.957290034235,"y":28487.39268280673},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Forward Testing Session","name":"Fwd WHB","id":"0e7edb98-38ff-4516-89a1-188030989ddc"}}},{"type":"Session Reference","name":"Back BBTB Binance BTC/USDT","marketDataProducts":{"type":"Market Data Products","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"653622df-b35b-4c72-9b1d-cbbea2d45a93","savedPayload":{"position":{"x":26455.573591725715,"y":27743.761762864735},"targetPosition":{"x":26685.903141314688,"y":28119.50039190219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"bcd39fee-3584-4e3a-b524-05ecb62d4582","savedPayload":{"position":{"x":26718.02998233403,"y":27678.207255468882},"targetPosition":{"x":26685.903141314688,"y":28119.50039190219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"aa60feec-3e11-4509-ab4f-5eac17ea7d3b","savedPayload":{"position":{"x":26969.002379074984,"y":27779.578235462006},"targetPosition":{"x":26685.903141314688,"y":28119.50039190219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"d6a48300-ab24-4b7b-8fb1-b431e389c7d1","savedPayload":{"position":{"x":27112.390627347257,"y":28009.145745126465},"targetPosition":{"x":26685.903141314688,"y":28119.50039190219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"1a28b5a4-fd4e-4911-a195-3a27cac67cd9","savedPayload":{"position":{"x":26685.903141314688,"y":28119.50039190219},"targetPosition":{"x":26511.90768779935,"y":28550.735424728384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"894fe28c-55f0-4ce7-a61f-31b7a58036b0","savedPayload":{"position":{"x":26512.25277222365,"y":28550.5818725418},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"Back BBTB","id":"5d72321e-97e7-404f-8272-809dbbf4db35"}}},{"type":"Session Reference","name":"Paper BBTB Binance BTC/USDT","marketDataProducts":{"type":"Market Data Products","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"2004d488-ba55-478c-afa4-c00a555bf34c","savedPayload":{"position":{"x":26971.216338450067,"y":27957.810135682634},"targetPosition":{"x":27062.315598951875,"y":28386.268950715483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"7859d024-817a-4059-8a17-86690194f9de","savedPayload":{"position":{"x":27240.2554163473,"y":27986.018658800323},"targetPosition":{"x":27062.315598951875,"y":28386.268950715483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"11af0867-3396-48d4-b794-9d133d2d2416","savedPayload":{"position":{"x":27441.353895746524,"y":28167.02459841552},"targetPosition":{"x":27062.315598951875,"y":28386.268950715483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"dd541e63-8071-4b0f-8eb8-5fd50ef3eb82","savedPayload":{"position":{"x":27497.330846318662,"y":28431.383320855293},"targetPosition":{"x":27062.315598951875,"y":28386.268950715483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"778e7f94-7cf1-43a2-8843-2faca50fd6b2","savedPayload":{"position":{"x":27062.315598951875,"y":28386.268950715483},"targetPosition":{"x":26769.67959034035,"y":28711.749779677113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"fdfa0714-e7cc-4833-8623-2366fc36e275","savedPayload":{"position":{"x":26770.006560596325,"y":28711.63882050236},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Paper Trading Session","name":"Paper BBTB","id":"a70b66f2-4d79-4ab0-8a84-cb47fd872b79"}}},{"type":"Session Reference","name":"Live Trading BBTB Binance BTC/USDT","marketDataProducts":{"type":"Market Data Products","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"84c5619b-c379-4bed-bd1c-3dccfc840fa7","savedPayload":{"position":{"x":27403.685124941287,"y":28311.811214135712},"targetPosition":{"x":27342.982549435495,"y":28745.594465055852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"9cd0c0da-e0df-4b83-a7f5-7e503f050020","savedPayload":{"position":{"x":27646.983850070956,"y":28430.393602867665},"targetPosition":{"x":27342.982549435495,"y":28745.594465055852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"8681f8d9-c6fa-4966-aa76-e627000962cb","savedPayload":{"position":{"x":27773.915926630965,"y":28669.291142164537},"targetPosition":{"x":27342.982549435495,"y":28745.594465055852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"05aa1029-fde5-4240-b5ef-31636ed817ee","savedPayload":{"position":{"x":27735.959746783006,"y":28937.181489181425},"targetPosition":{"x":27342.982549435495,"y":28745.594465055852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"c966a877-9552-4b7c-9b12-f6cbf5e631d6","savedPayload":{"position":{"x":27342.982549435495,"y":28745.594465055852},"targetPosition":{"x":26956.711147228187,"y":28951.208113208817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"9576879e-2a52-4224-b082-6d8f0a25424f","savedPayload":{"position":{"x":26957.130045686332,"y":28951.141808070486},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Live Trading Session","name":"Live Trading BBTB","id":"ef82a64d-7c70-48d5-868a-09acf97e5289"}}},{"type":"Session Reference","name":"Fwd BBTB Binance BTC/USDT","marketDataProducts":{"type":"Market Data Products","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"3713af17-7ed8-4d32-abbb-66be7ba3d95b","savedPayload":{"position":{"x":27689.20756476676,"y":28792.01762932115},"targetPosition":{"x":27483.76587740709,"y":29178.885493436097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"8206a3c4-7a92-4f52-aa29-d0b912511e94","savedPayload":{"position":{"x":27877.30263666776,"y":28986.652324934446},"targetPosition":{"x":27483.76587740709,"y":29178.885493436097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"35c51f59-d967-4fb9-bf3d-ebef155fe90a","savedPayload":{"position":{"x":27914.92862485214,"y":29254.298693059718},"targetPosition":{"x":27483.76587740709,"y":29178.885493436097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"82cb4b63-c7ed-4e1c-b558-5caf08e7840e","savedPayload":{"position":{"x":27787.524400010894,"y":29492.93889701325},"targetPosition":{"x":27483.76587740709,"y":29178.885493436097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"b07b8215-91b7-4cdf-b0c9-f6de319d98af","savedPayload":{"position":{"x":27483.76587740709,"y":29178.885493436097},"targetPosition":{"x":27050.43363927934,"y":29240.015942621932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"f28418b1-30c9-4f12-9162-b483ed79adf9","savedPayload":{"position":{"x":27051.047858882026,"y":29240.240033953312},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Forward Testing Session","name":"Fwd BBTB","id":"7b91c25c-ac96-4c3c-9e79-17c262f17180"}}}],"id":"5b3343c9-3fab-46ec-92e3-9c074759a112","savedPayload":{"position":{"x":26184.524152752183,"y":29361.71743417283},"targetPosition":{"x":26063.272886633127,"y":29932.60782590063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"29ca14e5-dabe-470a-be64-ed7996bd1e55","savedPayload":{"position":{"x":26063.272886633127,"y":29932.60782590063},"targetPosition":{"x":25942.043094058594,"y":30503.50687445451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0726a9e4-23b6-4d27-a8de-e91a9665a8ba","savedPayload":{"position":{"x":25941.91963837964,"y":30503.45190785726},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"d"}}},"dataMining":{"type":"Data Mining","name":"New Data Mining","exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Masters BTC/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"b1a110d4-ac93-402d-8465-a35a835d0c22","savedPayload":{"position":{"x":26295.776593937757,"y":28781.36401676669},"targetPosition":{"x":26497.181368080222,"y":28993.314045627245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"fa3aae08-61b3-4a35-af20-c1242b9954c8","savedPayload":{"position":{"x":26497.181368080222,"y":28993.314045627245},"targetPosition":{"x":26698.745648170545,"y":29205.196033081145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"e61db3ab-b80d-4575-8da1-5598e0b1b525","savedPayload":{"position":{"x":26698.745648170545,"y":29205.196033081145},"targetPosition":{"x":26900.64484115142,"y":29417.1103410173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"160f8edd-29cf-40c2-bb21-5f569d97f9d1","savedPayload":{"position":{"x":26900.64484115142,"y":29417.1103410173},"targetPosition":{"x":27303.642788619873,"y":29839.997018774087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"22df3948-2a73-4ca6-a927-4b722dbb27dc","savedPayload":{"position":{"x":26644.79038090263,"y":28548.29577551908},"targetPosition":{"x":26816.76829379165,"y":28784.96123948801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"5324b18d-e2b0-495e-94a0-cfc3f3473766","savedPayload":{"position":{"x":26816.76829379165,"y":28784.96123948801},"targetPosition":{"x":26988.793025211893,"y":29021.546670103362},"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","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"d7e0c235-4024-4888-86ba-32cf5c73b852","savedPayload":{"position":{"x":26896.951155637144,"y":28149.592406858952},"targetPosition":{"x":26942.81353308944,"y":28585.46723817298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"02adb2d3-1740-4f42-975e-e0365e308b97","savedPayload":{"position":{"x":26942.81353308944,"y":28585.46723817298},"targetPosition":{"x":26988.793025211893,"y":29021.546670103362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"ccf1813f-31d2-4359-88ce-8c8e6132f222","savedPayload":{"position":{"x":26988.793025211893,"y":29021.546670103362},"targetPosition":{"x":27093.923115202073,"y":29294.80421308715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b55a2f7e-354e-47ce-8986-a4a0079efe2b","savedPayload":{"position":{"x":27093.923115202073,"y":29294.80421308715},"targetPosition":{"x":27303.642788619873,"y":29839.997018774087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"89bf947b-a245-4aad-a2fa-472ad6f8fd2e","savedPayload":{"position":{"x":27189.754505576493,"y":28394.19710240186},"targetPosition":{"x":27257.861597975232,"y":28678.7864774289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"df74508f-a106-4190-83ae-8c43455cd889","savedPayload":{"position":{"x":27257.861597975232,"y":28678.7864774289},"targetPosition":{"x":27326.013193344465,"y":28963.273945892004},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"441d958c-4ebf-4cc5-b49e-cdaf3802efc3","savedPayload":{"position":{"x":27574.559572441973,"y":28122.40215659922},"targetPosition":{"x":27450.305086678956,"y":28542.72094770502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"daf27799-58cb-480a-832b-4e3404882961","savedPayload":{"position":{"x":27450.305086678956,"y":28542.72094770502},"targetPosition":{"x":27326.013193344465,"y":28963.273945892004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"b1b31e7e-12f8-45fd-9508-cb82030d7507","savedPayload":{"position":{"x":27326.013193344465,"y":28963.273945892004},"targetPosition":{"x":27318.591273474813,"y":29256.0297430117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"52b4b8db-0336-423c-9343-5353225b4bfb","savedPayload":{"position":{"x":27318.591273474813,"y":29256.0297430117},"targetPosition":{"x":27303.642788619873,"y":29839.997018774087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f7457cf6-bcdc-48e1-b6e2-b45de382bc37","savedPayload":{"position":{"x":27751.8331614713,"y":28460.835841190503},"targetPosition":{"x":27706.012054908566,"y":28749.870177439392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"5a6b7843-090c-4b3b-9be4-ed8c8d1f6935","savedPayload":{"position":{"x":27706.012054908566,"y":28749.870177439392},"targetPosition":{"x":27660.23614278188,"y":29038.812455756783},"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":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"e78c5425-7d77-47c5-bb63-db88cad6e060","savedPayload":{"position":{"x":28211.83015890913,"y":28357.252260215242},"targetPosition":{"x":27936.11776415758,"y":28697.938136515048},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"4c5ed30f-d600-44e2-ac14-33ce0528178e","savedPayload":{"position":{"x":27936.11776415758,"y":28697.938136515048},"targetPosition":{"x":27660.23614278188,"y":29038.812455756783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"b4fb4df9-2d6e-4c0a-8eb5-d1bd78232d0d","savedPayload":{"position":{"x":27660.23614278188,"y":29038.812455756783},"targetPosition":{"x":27541.161002138204,"y":29306.33835211767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"aacffa8c-5a19-423f-b551-0f9a5c46a628","savedPayload":{"position":{"x":27541.161002138204,"y":29306.33835211767},"targetPosition":{"x":27303.642788619873,"y":29839.997018774087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"7af918d3-d9a4-4553-9b3d-12224b4ad938","savedPayload":{"position":{"x":28246.09248316529,"y":28737.939326780328},"targetPosition":{"x":28093.06415879192,"y":28987.2949110211},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"0d8ca3f1-31af-40e4-8f43-4dacc8950dff","savedPayload":{"position":{"x":28093.06415879192,"y":28987.2949110211},"targetPosition":{"x":27940.057991958874,"y":29236.559755396884},"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":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f11fe52f-ba3f-486d-93f2-a6b82fa67c2d","savedPayload":{"position":{"x":28710.63353519865,"y":28818.37666235774},"targetPosition":{"x":28325.531920669902,"y":29027.44452475342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"ba74160c-2b59-497a-b895-4ddade53f72e","savedPayload":{"position":{"x":28325.531920669902,"y":29027.44452475342},"targetPosition":{"x":27940.057991958874,"y":29236.559755396884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"3a93a6a1-0d2e-475b-874e-8784dc4b6c78","savedPayload":{"position":{"x":27940.057991958874,"y":29236.559755396884},"targetPosition":{"x":27727.493045084848,"y":29438.01514560189},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"9843b9dd-ff8e-4cef-b063-730b0317420d","savedPayload":{"position":{"x":27727.493045084848,"y":29438.01514560189},"targetPosition":{"x":27303.642788619873,"y":29839.997018774087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"da37aa9d-a68c-49eb-be66-5fcc1a13ab69","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"abae0d8d-c44c-4825-b6ad-aabad604ba2d","savedPayload":{"position":{"x":28396.037566708925,"y":29421.614584380517},"targetPosition":{"x":28122.746782236274,"y":29526.34159600593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"f33858b9-8561-4f70-ba70-d8d168786321","savedPayload":{"position":{"x":28122.746782236274,"y":29526.34159600593},"targetPosition":{"x":27849.20316575137,"y":29631.049785901763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"64e8f70e-829c-47cd-b933-f4e4dd0c90fc","savedPayload":{"position":{"x":27849.20316575137,"y":29631.049785901763},"targetPosition":{"x":27303.642788619873,"y":29839.997018774087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Resistances & Supports","bot":{"type":"Indicator Bot Instance","name":"Resistances & Supports","code":" {\n \"repo\": \"\"\n }","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"5e0f86e6-2a43-49c2-a347-7203f0867c2d","savedPayload":{"position":{"x":29032.650008520504,"y":29659.7209500006},"targetPosition":{"x":28606.58515022879,"y":29761.864642359356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"f9f341a9-ba04-4c03-8f3b-249e72681562","savedPayload":{"position":{"x":28606.58515022879,"y":29761.864642359356},"targetPosition":{"x":28180.254520845563,"y":29864.051049529597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"5d9b2729-43fb-4e7e-aa4f-b8477c424e51"}}},{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"9974d57e-33ac-4fcf-ad75-35a8c4dc549e","savedPayload":{"position":{"x":28740.96463022337,"y":30030.055359108075},"targetPosition":{"x":28460.59045635442,"y":29947.10439692041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"9c93e98f-e166-4c8d-a9d7-08ada9c68eeb","savedPayload":{"position":{"x":28460.59045635442,"y":29947.10439692041},"targetPosition":{"x":28180.254520845563,"y":29864.051049529597},"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":"be19d91b-9337-4f84-96b3-f4e54ea12df5"}}}],"id":"88a4c3b6-e148-47e8-91b2-bf72bb167dc5","savedPayload":{"position":{"x":28180.254520845563,"y":29864.051049529597},"targetPosition":{"x":27887.623437774728,"y":29856.170560424096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c9dc449-6a37-4f34-8984-13aafed439fc","savedPayload":{"position":{"x":27887.623437774728,"y":29856.170560424096},"targetPosition":{"x":27303.642788619873,"y":29839.997018774087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ea242bf3-f7e6-431a-ab41-e022cb3ac6df","savedPayload":{"position":{"x":27304.010447981243,"y":29838.838311026542},"targetPosition":{"x":27066.688812058077,"y":30372.37934047862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta BTC/USDT","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"08b275d2-c921-49d0-a88d-5669df5c17e0","savedPayload":{"position":{"x":28228.72521288214,"y":28715.602115489775},"targetPosition":{"x":28228.861792805477,"y":29007.980855807735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"a5449b25-a98e-4fa4-87eb-5f60b967770a","savedPayload":{"position":{"x":28228.861792805477,"y":29007.980855807735},"targetPosition":{"x":28228.923628084704,"y":29300.06686932012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"287d4ba4-1404-4256-bdbb-cf2c970e5269","savedPayload":{"position":{"x":29238.98710680755,"y":28716.3520201579},"targetPosition":{"x":28734.144403315004,"y":29007.919913068403},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"05fb2b7e-6704-4f05-b12b-b590101e5ca9","savedPayload":{"position":{"x":28734.144403315004,"y":29007.919913068403},"targetPosition":{"x":28228.923628084704,"y":29300.06686932012},"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":"f6dc278d-5a5c-4cba-b513-f0660a9f492d","savedPayload":{"position":{"x":28228.923628084704,"y":29300.06686932012},"targetPosition":{"x":27937.314391482443,"y":29805.71391222206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a15b5f86-52c2-4a22-9dd9-311d981601ba","savedPayload":{"position":{"x":27937.314391482443,"y":29805.71391222206},"targetPosition":{"x":27645.47604026171,"y":30311.719439667875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f8ea11d8-7b32-4ed0-968d-a20df0b49d7f","savedPayload":{"position":{"x":29055.03074232478,"y":29364.155049541812},"targetPosition":{"x":28883.181776512578,"y":29600.02418722641},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"e32509df-e962-4760-991e-6533a398c58e","savedPayload":{"position":{"x":28883.181776512578,"y":29600.02418722641},"targetPosition":{"x":28711.92860225306,"y":29835.824880290023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"0d4140a1-5e1f-4e2e-b540-582474e41889","savedPayload":{"position":{"x":29873.1235953913,"y":29957.84157849362},"targetPosition":{"x":29292.744441948304,"y":29896.70128328085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"96466f5a-6dd9-4db9-b30c-1c4622076d8a","savedPayload":{"position":{"x":29292.744441948304,"y":29896.70128328085},"targetPosition":{"x":28711.92860225306,"y":29835.824880290023},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"fffaf3df-a88c-4d45-bb52-d02b818502b5","savedPayload":{"position":{"x":28711.92860225306,"y":29835.824880290023},"targetPosition":{"x":28178.856365881307,"y":30073.59601068226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"53fd5de3-7d70-4eb7-8dd6-976d1e188d12","savedPayload":{"position":{"x":28178.856365881307,"y":30073.59601068226},"targetPosition":{"x":27645.47604026171,"y":30311.719439667875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"78a80ff6-f4f2-4680-9a7b-65225144dd94","savedPayload":{"position":{"x":29343.123990290904,"y":30372.959616137443},"targetPosition":{"x":29064.777283488427,"y":30463.487094555752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"301a8d2c-f659-4d4b-9906-40177bdc1256","savedPayload":{"position":{"x":29064.777283488427,"y":30463.487094555752},"targetPosition":{"x":28787.38048108401,"y":30553.17433174999},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"a9291a08-1ba1-436b-b491-e759cc8fb7d1","savedPayload":{"position":{"x":29655.246962702226,"y":31333.244849074097},"targetPosition":{"x":29221.491214867103,"y":30943.007309836925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"19fff031-07c3-4836-9bca-1570eb69a931","savedPayload":{"position":{"x":29221.491214867103,"y":30943.007309836925},"targetPosition":{"x":28787.38048108401,"y":30553.17433174999},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"a81bcaf4-6c99-4b6a-8291-5fa657ae2c17","savedPayload":{"position":{"x":28787.38048108401,"y":30553.17433174999},"targetPosition":{"x":28216.87537107575,"y":30432.41340723835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e2997a2-13ae-464c-b980-9ec46584db3b","savedPayload":{"position":{"x":28216.87537107575,"y":30432.41340723835},"targetPosition":{"x":27645.47604026171,"y":30311.719439667875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f6802028-335d-4e31-90a7-9d608199aafb","savedPayload":{"position":{"x":28980.915039741532,"y":31358.998224580246},"targetPosition":{"x":28703.237872801612,"y":31269.241992275245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"8540fa7a-f4b2-4e97-923c-e8acd00bbb9f","savedPayload":{"position":{"x":28703.237872801612,"y":31269.241992275245},"targetPosition":{"x":28425.94036742731,"y":31179.220069122053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"51d58c12-ad1f-450e-94fd-ea0f8ad08769","savedPayload":{"position":{"x":28668.892311218562,"y":32320.886124995297},"targetPosition":{"x":28548.162305811125,"y":31749.536588300653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"c655562c-3839-42e0-9ea6-982629405d33","savedPayload":{"position":{"x":28548.162305811125,"y":31749.536588300653},"targetPosition":{"x":28425.94036742731,"y":31179.220069122053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"f84cf5d6-034c-42db-b197-e95c0228efc9","savedPayload":{"position":{"x":28425.94036742731,"y":31179.220069122053},"targetPosition":{"x":28035.898569423418,"y":30746.03018721756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"385443d2-f17f-459c-b603-58f42e5c366f","savedPayload":{"position":{"x":28035.898569423418,"y":30746.03018721756},"targetPosition":{"x":27645.47604026171,"y":30311.719439667875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"2a5cc26f-cb88-4743-b412-c33acb6aa0fb","savedPayload":{"position":{"x":27647.34057579785,"y":30311.28771626068},"targetPosition":{"x":27066.688812058077,"y":30372.37934047862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}}],"id":"b1c93d10-5dd9-4b3f-9662-b9bf7850b81a","savedPayload":{"position":{"x":27066.688812058077,"y":30372.37934047862},"targetPosition":{"x":26594.619820380485,"y":30715.592352403844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"7449a608-32ca-4285-94d1-c96791e2817f","savedPayload":{"position":{"x":26594.619820380485,"y":30715.592352403844},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"testingEnvironment":{"type":"Testing Environment","name":"New Testing Environment","exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Paper & Backtesting Sessions WHB","tasks":[{"type":"Task","name":"Paper Trading WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Paper Trading Session","name":"Paper WHB","code":"{\n\"folderName\": \"Paper-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"34d3f232-9fb1-47e1-97be-9233ef34db93","savedPayload":{"position":{"x":29052.627701630136,"y":31135.06382724232},"targetPosition":{"x":29337.807252974846,"y":31198.220154739254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"969cd1c0-1d6d-4667-a810-d18369410d94","savedPayload":{"position":{"x":29209.24392819175,"y":30935.757548585058},"targetPosition":{"x":29337.807252974846,"y":31198.220154739254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"4af996da-6714-41ac-ad51-5706f41b40f0","savedPayload":{"position":{"x":29462.62850797251,"y":30933.918764789316},"targetPosition":{"x":29337.807252974846,"y":31198.220154739254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"963db77e-0405-4fc4-8780-1b7fa93f41a6","savedPayload":{"position":{"x":29622.24848898748,"y":31131.02036026933},"targetPosition":{"x":29337.807252974846,"y":31198.220154739254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"cd125f30-93e7-4786-b1e1-33274bd2877c","savedPayload":{"position":{"x":29567.738956875506,"y":31378.46391868767},"targetPosition":{"x":29337.807252974846,"y":31198.220154739254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"f8fcac2e-2a52-4189-a95d-77e83b5a6f98","savedPayload":{"position":{"x":29340.25169858352,"y":31490.1584281112},"targetPosition":{"x":29337.807252974846,"y":31198.220154739254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b5ba0c98-c052-4195-92c2-119652d91c32","savedPayload":{"position":{"x":29337.807252974846,"y":31198.220154739254},"targetPosition":{"x":29110.755902875182,"y":31381.988173338526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2198ec50-3d31-43b7-a57d-e386bef38a93","savedPayload":{"position":{"x":29110.755902875182,"y":31381.988173338526},"targetPosition":{"x":28884.215438579347,"y":31565.56109200868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"06c8bcea-4122-4a35-8db3-a1ddc7657e4b","savedPayload":{"position":{"x":29156.64234709289,"y":31670.346274690583},"targetPosition":{"x":28884.215438579347,"y":31565.56109200868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"731abb89-b672-41b1-b403-2932226d3df7","savedPayload":{"position":{"x":28884.215438579347,"y":31565.56109200868},"targetPosition":{"x":28596.020425087678,"y":31611.102134635385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"4f784203-664a-4791-9e3a-7565f0a11e79","savedPayload":{"position":{"x":28596.020425087678,"y":31611.102134635385},"targetPosition":{"x":28228.409970971898,"y":31669.380724593575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"e04e8948-849d-4161-af18-4644990d0b49","savedPayload":{"position":{"x":28224.19607449802,"y":31713.88183371696},"targetPosition":{"x":27647.422736912766,"y":31805.536210975744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Backtesting WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Backtesting Session","name":"Back WHB","code":"{\n\"folderName\": \"Back-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.01\n}","id":"48e2c5e0-8f9e-40f0-8ab6-2ecc57aa3039","savedPayload":{"position":{"x":29098.920684638124,"y":31935.578436856456},"targetPosition":{"x":29314.165894324222,"y":32132.818618550857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{}","id":"e8703a6e-e6c0-485f-a27d-a9e60a57a0a6","savedPayload":{"position":{"x":29333.996681918772,"y":31841.270777412603},"targetPosition":{"x":29314.165894324222,"y":32132.818618550857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"initialDatetime\": \"2020-01-01\",\n\"finalDatetime\": \"2020-12-31\"\n}","id":"08815e4e-c066-4914-85b7-a4f7ce4748a5","savedPayload":{"position":{"x":29554.515259575393,"y":31966.470524199463},"targetPosition":{"x":29314.165894324222,"y":32132.818618550857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"805c356b-4a05-424e-ba29-260e35c11943","savedPayload":{"position":{"x":29594.18829545019,"y":32216.776765839957},"targetPosition":{"x":29314.165894324222,"y":32132.818618550857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"bcccd1fd-188c-43e4-abfc-4bc89d6adecc","savedPayload":{"position":{"x":29423.14885926479,"y":32404.00013374877},"targetPosition":{"x":29314.165894324222,"y":32132.818618550857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"ae594b88-e40b-408b-8082-3ba92ffc2c8c","savedPayload":{"position":{"x":29170.49213662585,"y":32387.013069451525},"targetPosition":{"x":29314.165894324222,"y":32132.818618550857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c220646b-827b-43c8-ab7e-5ecd53b4070a","savedPayload":{"position":{"x":29314.165894324222,"y":32132.818618550857},"targetPosition":{"x":29025.65018120069,"y":32178.408356658765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f32f1cdc-425f-4193-a43b-be9312c74234","savedPayload":{"position":{"x":29025.65018120069,"y":32178.408356658765},"targetPosition":{"x":28737.522281443027,"y":32223.956854586642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"02fe6309-40c0-4e31-9aed-fbf8f434bfa9","savedPayload":{"position":{"x":28921.09178706593,"y":32451.099870736933},"targetPosition":{"x":28737.522281443027,"y":32223.956854586642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"dd22d90b-5a91-4723-9f65-17eb94fb4d9d","savedPayload":{"position":{"x":28737.522281443027,"y":32223.956854586642},"targetPosition":{"x":28465.174733106793,"y":32119.396663156193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"0942010b-12f0-4be9-979d-c3e1bbc4eb74","savedPayload":{"position":{"x":28465.174733106793,"y":32119.396663156193},"targetPosition":{"x":28192.49784197477,"y":32014.807646221823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a8ff6583-b710-44b1-8768-d8a70bdf22c9","savedPayload":{"position":{"x":28192.49784197477,"y":32014.807646221823},"targetPosition":{"x":27647.422736912766,"y":31805.536210975744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"caed4703-e134-4a48-9062-fe5277b7d95f","savedPayload":{"position":{"x":27647.422736912766,"y":31805.536210975744},"targetPosition":{"x":27066.792293943563,"y":31744.7588601507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task Manager","name":"Paper & Backtesting Sessions BBBT","tasks":[{"type":"Task","name":"Paper Trading BBTB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Paper Trading Session","name":"Paper BBTB","code":"{\n\"folderName\": \"Paper-BBTB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"413c658b-ecb1-412a-ad17-dd21a6cf9edf","savedPayload":{"position":{"x":28577.218048119335,"y":33214.61443768653},"targetPosition":{"x":28664.621916946347,"y":33492.7824101105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"937d18df-32f8-4619-93a0-df66d785f502","savedPayload":{"position":{"x":28827.924173155072,"y":33250.64446694912},"targetPosition":{"x":28664.621916946347,"y":33492.7824101105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"8d7017e0-2478-4f6f-9a06-97e02f485e0d","savedPayload":{"position":{"x":28956.38557439978,"y":33469.35274323227},"targetPosition":{"x":28664.621916946347,"y":33492.7824101105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"fbd66c8d-fb89-41ef-a7d8-ddc1892ea0b7","savedPayload":{"position":{"x":28865.514880797462,"y":33705.92010145626},"targetPosition":{"x":28664.621916946347,"y":33492.7824101105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"71601678-f7fe-4093-81a7-2e7c4f15b36c","savedPayload":{"position":{"x":28624.08595142196,"y":33782.534352456336},"targetPosition":{"x":28664.621916946347,"y":33492.7824101105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"77080ae1-9bce-474f-b5b6-31c227d35298","savedPayload":{"position":{"x":28413.669360442556,"y":33641.26741331801},"targetPosition":{"x":28664.621916946347,"y":33492.7824101105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6681be32-37aa-4703-8cbe-3766844aba04","savedPayload":{"position":{"x":28664.621916946347,"y":33492.7824101105},"targetPosition":{"x":28392.16644759752,"y":33388.533157515434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a70b66f2-4d79-4ab0-8a84-cb47fd872b79","savedPayload":{"position":{"x":28392.16644759752,"y":33388.533157515434},"targetPosition":{"x":28119.251580442222,"y":33283.55066717411},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"BB Top Bounce","id":"3313017d-fdce-481b-9679-fe8e4f67cd45"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"53fd90cb-3efc-47b2-90f5-0f8010fc6ef9","savedPayload":{"position":{"x":28165.35010691224,"y":33572.358526019954},"targetPosition":{"x":28119.251580442222,"y":33283.55066717411},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"b3dec672-be14-4dca-8be4-5b495373b662","savedPayload":{"position":{"x":28119.251580442222,"y":33283.55066717411},"targetPosition":{"x":27936.28432847417,"y":33057.697894745914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"4315bf06-ef80-490e-af6f-d00b72bfa20d","savedPayload":{"position":{"x":27936.28432847417,"y":33057.697894745914},"targetPosition":{"x":27671.52384061621,"y":32731.00626930576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"b55596f0-998c-4efa-ae49-4645b999dc38","savedPayload":{"position":{"x":27671.85700080378,"y":32731.681235873046},"targetPosition":{"x":27304.15951551628,"y":32278.029862814696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Backtesting BBTB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Backtesting Session","name":"Back BBTB","code":"{\n\"folderName\": \"Back-BBTB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.01\n}","id":"11c310f7-a52f-467f-afbc-57c04639a979","savedPayload":{"position":{"x":27916.795420742106,"y":33600.00436517344},"targetPosition":{"x":27853.65754832969,"y":33885.04791890786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{}","id":"208693a0-838b-4992-9344-4b798acce6c2","savedPayload":{"position":{"x":28116.11268334511,"y":33756.61311225912},"targetPosition":{"x":27853.65754832969,"y":33885.04791890786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"initialDatetime\": \"2020-01-01\",\n\"finalDatetime\": \"2020-12-31\"\n}","id":"48fa15e9-aff6-4521-b5e3-a45e1a01d9b1","savedPayload":{"position":{"x":28117.991964072844,"y":34009.651469203156},"targetPosition":{"x":27853.701490435982,"y":33884.74875041444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"d3a5cba8-3272-43c9-89d7-a40de0f49045","savedPayload":{"position":{"x":27920.89482825893,"y":34169.2557125692},"targetPosition":{"x":27853.701490435982,"y":33884.74875041444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"b764240b-aec9-4ddc-bac7-99bb34bc2163","savedPayload":{"position":{"x":27673.4448022947,"y":34114.733404021514},"targetPosition":{"x":27853.701490435982,"y":33884.74875041444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"e233bb2d-080c-4f2e-9188-edba85ae74d9","savedPayload":{"position":{"x":27561.72368870078,"y":33887.24808410665},"targetPosition":{"x":27853.701490435982,"y":33884.74875041444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e3473182-57b9-41f8-8d5a-1bb13c8b5441","savedPayload":{"position":{"x":27853.65754832969,"y":33885.04791890786},"targetPosition":{"x":27669.897099976068,"y":33657.98390960074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5d72321e-97e7-404f-8272-809dbbf4db35","savedPayload":{"position":{"x":27669.897099976068,"y":33657.98390960074},"targetPosition":{"x":27486.332477868265,"y":33431.30375709976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"BB Top Bounce","id":"3313017d-fdce-481b-9679-fe8e4f67cd45"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"eb149e85-7202-4f3f-832f-0b25c4d97b0b","savedPayload":{"position":{"x":27381.507069524552,"y":33703.86148817666},"targetPosition":{"x":27486.332477868265,"y":33431.30375709976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"919e2ba3-4089-4729-add5-0be715c27ceb","savedPayload":{"position":{"x":27486.332477868265,"y":33431.30375709976},"targetPosition":{"x":27440.84692165274,"y":33143.162574701586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"a1d698ca-cc6f-4ba2-8a19-c72a1fda3547","savedPayload":{"position":{"x":27440.84692165274,"y":33143.162574701586},"targetPosition":{"x":27395.265695962695,"y":32854.72302350608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"648b9d39-4e74-4c95-8ad6-8fd048e86a51","savedPayload":{"position":{"x":27395.265695962695,"y":32854.72302350608},"targetPosition":{"x":27304.15951551628,"y":32278.029862814696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"e5b805c8-a056-4356-894f-2dbc5af0e663","savedPayload":{"position":{"x":27304.15951551628,"y":32278.029862814696},"targetPosition":{"x":27066.792293943563,"y":31744.7588601507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"f69b2c23-ccc5-47fb-9945-9b7badcea636","savedPayload":{"position":{"x":27066.792293943563,"y":31744.7588601507},"targetPosition":{"x":26594.621065894262,"y":31401.865452889477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"2ae685a1-25c6-4bd5-b559-d83e373e8d45","savedPayload":{"position":{"x":26594.621065894262,"y":31401.865452889477},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"productionEnvironment":{"type":"Production Environment","name":"New Production Environment","exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Fwd & Live Sessions WHB","tasks":[{"type":"Task","name":"Fwd Testing WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Forward Testing Session","name":"Fwd WHB","code":"{\n\"folderName\": \"Fwd-WHB\",\n\"balancePercentage\": 10\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"079cdfaf-2d41-4fa3-a68d-9e2620de0cdd","savedPayload":{"position":{"x":26910.021545551564,"y":33878.20538019948},"targetPosition":{"x":26938.460095448998,"y":34169.41187072626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"5f5ec9f1-c4e2-4ca7-94c4-bad619511e5c","savedPayload":{"position":{"x":27148.01063503007,"y":33966.01103908403},"targetPosition":{"x":26938.460095448998,"y":34169.41187072626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"d5fda5e7-7571-41e7-b19a-a721d73fd8f5","savedPayload":{"position":{"x":27228.223941558408,"y":34206.05209392076},"targetPosition":{"x":26938.460095448998,"y":34169.41187072626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"f6ed8468-7fd1-4aac-848b-647973e41b04","savedPayload":{"position":{"x":27090.039351877273,"y":34419.33692857233},"targetPosition":{"x":26938.460095448998,"y":34169.41187072626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"da2d51df-7c40-4bf0-80ec-63a38992fcfe","savedPayload":{"position":{"x":26838.05746723943,"y":34444.00375753654},"targetPosition":{"x":26938.460095448998,"y":34169.41187072626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"4e1b48a9-df71-402e-9159-66c49cdc08b3","savedPayload":{"position":{"x":26661.978984189693,"y":34261.43705453156},"targetPosition":{"x":26938.460095448998,"y":34169.41187072626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b9e7a071-26dd-4796-8704-2314f6c2c603","savedPayload":{"position":{"x":26938.460095448998,"y":34169.41187072626},"targetPosition":{"x":26693.307245106695,"y":34009.68815888209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0e7edb98-38ff-4516-89a1-188030989ddc","savedPayload":{"position":{"x":26693.307245106695,"y":34009.68815888209},"targetPosition":{"x":26449.279251038242,"y":33851.13016897596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"WHB","id":"8d9b39d4-b764-486d-a2f6-e84391bbd818","savedPayload":{"position":{"x":26419.029585690965,"y":34434.89440876462},"targetPosition":{"x":26433.64744618784,"y":34142.481013707016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"WHB","id":"88eab4e5-3be4-4982-93fa-e95bcb1ab559"}}},"id":"f122bd16-0c85-43d1-932a-57a710db8013","savedPayload":{"position":{"x":26433.64744618784,"y":34142.481013707016},"targetPosition":{"x":26449.279251038242,"y":33851.13016897596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"a034c52a-8924-4e60-9653-f6da1ea6f8b5","savedPayload":{"position":{"x":26449.279251038242,"y":33851.13016897596},"targetPosition":{"x":26316.92939841393,"y":33591.09577845997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"74f70f20-305b-4e90-aad6-1bcd2ff8ee1c","savedPayload":{"position":{"x":26316.92939841393,"y":33591.09577845997},"targetPosition":{"x":26148.05085911208,"y":33259.678571238874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"749d6eaf-1548-47ca-901d-1cfc1a21b0a5","savedPayload":{"position":{"x":26148.185391939474,"y":33260.11678777981},"targetPosition":{"x":25882.89596847656,"y":32739.931714913597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Live Trading WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Live Trading Session","name":"Live Trading WHB","code":"{\n\"folderName\": \"Live-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"166cdb09-90e0-49a1-9c38-b57364287620","savedPayload":{"position":{"x":26207.35698388794,"y":34160.59310055196},"targetPosition":{"x":26086.395085254208,"y":34426.258327115596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"5bf43efd-3dd2-44f2-b25e-f6c7a5fda17e","savedPayload":{"position":{"x":26369.75442684439,"y":34355.228249739725},"targetPosition":{"x":26086.395085254208,"y":34426.258327115596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"88d7104b-7925-408a-b490-bbbaaafd7a5f","savedPayload":{"position":{"x":26318.845062496304,"y":34603.25568669417},"targetPosition":{"x":26086.413368756203,"y":34426.08355791297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"1c158006-c3c1-4157-8ad6-f08ee2b769d6","savedPayload":{"position":{"x":26092.874200360213,"y":34718.38625397416},"targetPosition":{"x":26086.413368756203,"y":34426.08355791297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"01064db9-f153-4d30-a26c-d9d339e7a856","savedPayload":{"position":{"x":25862.167511619704,"y":34613.56876576114},"targetPosition":{"x":26086.413368756203,"y":34426.08355791297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"06f7cc4e-6112-4ac8-9f20-610b357a58d2","savedPayload":{"position":{"x":25800.197082576826,"y":34368.03388719381},"targetPosition":{"x":26086.413368756203,"y":34426.08355791297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b86ce81f-5084-48d1-8a45-8f45fbe97891","savedPayload":{"position":{"x":26086.395085254208,"y":34426.258327115596},"targetPosition":{"x":25953.92192633552,"y":34165.91590660676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5335fd67-ebdc-4cfd-936d-b76af957713e","savedPayload":{"position":{"x":25953.92192633552,"y":34165.91590660676},"targetPosition":{"x":25821.59695197759,"y":33905.994769795616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"WHB","id":"a0061ba6-2359-4c5c-822d-1e17aaf7c2fd","savedPayload":{"position":{"x":25503.085530263997,"y":34395.63059680166},"targetPosition":{"x":25662.278338953274,"y":34150.77458860244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"WHB","id":"88eab4e5-3be4-4982-93fa-e95bcb1ab559"}}},"id":"954b1896-121c-41e2-9608-5b46a70082fb","savedPayload":{"position":{"x":25662.278338953274,"y":34150.77458860244},"targetPosition":{"x":25821.59695197759,"y":33905.994769795616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"8cb4d9af-0f53-4b33-9174-330da87b166c","savedPayload":{"position":{"x":25821.59695197759,"y":33905.994769795616},"targetPosition":{"x":25836.93152920813,"y":33614.66299269097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"8b30643a-eb54-4d6f-958d-8393f9a1e5f4","savedPayload":{"position":{"x":25836.93152920813,"y":33614.66299269097},"targetPosition":{"x":25852.21849648567,"y":33323.002646616835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"52ec5181-d057-42e3-a6e8-407d20d4e641","savedPayload":{"position":{"x":25852.21849648567,"y":33323.002646616835},"targetPosition":{"x":25882.89596847656,"y":32739.931714913597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1bbb36fe-edbf-49d8-9827-85a1345c0289","savedPayload":{"position":{"x":25882.89596847656,"y":32739.931714913597},"targetPosition":{"x":25761.56531839709,"y":32168.94660795601},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"l"}}},{"type":"Task Manager","name":"Fwd & Live Sessions BBTB","tasks":[{"type":"Task","name":"Fwd Testing BBTB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Forward Testing Session","name":"Fwd BBTB","code":"{\n\"folderName\": \"Fwd-BBTB\",\n\"balancePercentage\": 10\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"3a75a6ee-f188-4bd1-81ff-8018094d1eb0","savedPayload":{"position":{"x":24857.094321966553,"y":34017.30375601778},"targetPosition":{"x":24619.145851955524,"y":34187.288899821026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"b0d3da2f-f67f-473e-9f61-1296a9bfd952","savedPayload":{"position":{"x":24900.379262240484,"y":34266.88105509463},"targetPosition":{"x":24619.145851955524,"y":34187.288899821026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"6b4f8416-a9ec-47f5-ac7b-3c5005733328","savedPayload":{"position":{"x":24732.106855452465,"y":34456.57555177858},"targetPosition":{"x":24619.145851955524,"y":34187.288899821026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"ab1e8a12-e834-4062-b411-dbf174dcee6d","savedPayload":{"position":{"x":24479.061255754154,"y":34443.320476277215},"targetPosition":{"x":24619.145851955524,"y":34187.288899821026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"97669707-03fd-488c-bb1d-1ee4cafcf93a","savedPayload":{"position":{"x":24331.540268704146,"y":34237.15844285456},"targetPosition":{"x":24619.145851955524,"y":34187.288899821026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"e92c18cc-6c10-4231-bd61-ec3561875ff6","savedPayload":{"position":{"x":24400.852816728264,"y":33993.59591676479},"targetPosition":{"x":24619.145851955524,"y":34187.288899821026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"231917f8-cc46-4f5b-834c-0b0ff89dd932","savedPayload":{"position":{"x":24619.145851955524,"y":34187.288899821026},"targetPosition":{"x":24634.678502791634,"y":33895.04800320409},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7b91c25c-ac96-4c3c-9e79-17c262f17180","savedPayload":{"position":{"x":24634.678502791634,"y":33895.04800320409},"targetPosition":{"x":24649.52986998621,"y":33604.070042960644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading System","name":"BB Top Bounce","id":"3313017d-fdce-481b-9679-fe8e4f67cd45"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"BBTB","id":"98b73dbc-52e7-4292-9051-d0cb41db5f72","savedPayload":{"position":{"x":24129.27847262082,"y":33869.54908085728},"targetPosition":{"x":24389.757289928526,"y":33736.110358887185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"BBTB","id":"bfea6ed0-673c-4245-9b5e-7837785a63c9"}}},"id":"ea2bb934-5c1f-4006-87af-865cf23f968c","savedPayload":{"position":{"x":24389.757289928526,"y":33736.110358887185},"targetPosition":{"x":24649.52986998621,"y":33604.070042960644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"c639e264-5ac1-41d3-8b56-c4c4cd46af16","savedPayload":{"position":{"x":24649.52986998621,"y":33604.070042960644},"targetPosition":{"x":24808.52711960168,"y":33359.15206815564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"e6d0e073-c898-41ec-9f84-611faf9732fa","savedPayload":{"position":{"x":24808.52711960168,"y":33359.15206815564},"targetPosition":{"x":25009.92952810802,"y":33048.84834292683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"29dd451d-55ac-4d0c-9b16-7e0da9bcd453","savedPayload":{"position":{"x":25009.75646234641,"y":33049.28408775498},"targetPosition":{"x":25327.634223354067,"y":32559.44137188344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Live Trading BBTB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Live Trading Session","name":"Live Trading BBTB","code":"{\n\"folderName\": \"Live-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"d5a1b4b6-2bfc-4772-9c60-0c55f2abb0b1","savedPayload":{"position":{"x":24259.618474998526,"y":33550.38997018714},"targetPosition":{"x":23969.0203188401,"y":33578.33861522536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"7354aa3e-f4a4-47b2-a709-50cc86d27d9d","savedPayload":{"position":{"x":24172.273320977674,"y":33788.15697242058},"targetPosition":{"x":23969.0203188401,"y":33578.33861522536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"de6e1749-8ecd-4cae-8a14-c2e51040ee7c","savedPayload":{"position":{"x":23931.879926717836,"y":33868.123351707094},"targetPosition":{"x":23969.00251741101,"y":33578.19064801833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"a9e15ef3-5525-4394-b2df-27ca00c3d946","savedPayload":{"position":{"x":23719.184485084857,"y":33729.9822391363},"targetPosition":{"x":23969.00251741101,"y":33578.19064801833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"d4e3d01f-dd4f-4e1d-a19f-309b3e06b627","savedPayload":{"position":{"x":23694.586833148824,"y":33477.71470146798},"targetPosition":{"x":23969.11089015984,"y":33578.12266400162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"9f20c206-6968-406a-b3ea-fe7279839093","savedPayload":{"position":{"x":23876.33579466623,"y":33301.39303329165},"targetPosition":{"x":23969.0203188401,"y":33578.33861522536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c1085d75-2c80-4b85-937c-fd9d0bda0569","savedPayload":{"position":{"x":23969.0203188401,"y":33578.33861522536},"targetPosition":{"x":24128.10352373198,"y":33333.40041182395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ef82a64d-7c70-48d5-868a-09acf97e5289","savedPayload":{"position":{"x":24128.10352373198,"y":33333.40041182395},"targetPosition":{"x":24286.96301172984,"y":33088.829925425365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"BB Top Bounce","id":"3313017d-fdce-481b-9679-fe8e4f67cd45"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"BBTB","id":"93b6328f-bf96-4ee9-95de-ef6dcc2f0d16","savedPayload":{"position":{"x":23703.633646531925,"y":33057.8396326685},"targetPosition":{"x":23995.297705823767,"y":33073.261894847776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"BBTB","id":"bfea6ed0-673c-4245-9b5e-7837785a63c9"}}},"id":"e5be2d9b-1d10-4752-8dda-3bd86a1d2e87","savedPayload":{"position":{"x":23995.297705823767,"y":33073.261894847776},"targetPosition":{"x":24286.96301172984,"y":33088.829925425365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"51e40ee6-299f-4916-b55b-2d5bb47f9c9d","savedPayload":{"position":{"x":24286.96301172984,"y":33088.829925425365},"targetPosition":{"x":24546.963182989177,"y":32956.62106530579},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"d5320e1e-a4eb-4900-a6fc-8de4467e4363","savedPayload":{"position":{"x":24546.963182989177,"y":32956.62106530579},"targetPosition":{"x":24807.252562921705,"y":32824.228407700946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e3796688-b650-45cd-a0c0-24fe3a2e0d74","savedPayload":{"position":{"x":24807.252562921705,"y":32824.228407700946},"targetPosition":{"x":25327.634223354067,"y":32559.44137188344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0357b28b-fc1c-47aa-9b37-1106936ea9b2","savedPayload":{"position":{"x":25327.634223354067,"y":32559.44137188344},"targetPosition":{"x":25761.56531839709,"y":32168.94660795601},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"l"}}}],"id":"fa859e89-960f-4fe1-8e68-1e41b0ea80ec","savedPayload":{"position":{"x":25761.56531839709,"y":32168.94660795601},"targetPosition":{"x":25941.939342791604,"y":31613.968640403935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"32656457-f603-416a-b805-546642094dc4","savedPayload":{"position":{"x":25941.939342791604,"y":31613.968640403935},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"u"}}},"id":"ce601334-52c5-4ffb-ab61-49ca1943a15a","savedPayload":{"position":{"x":26122.378344035824,"y":31058.919069244217},"targetPosition":{"x":24954.356993272086,"y":31057.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"r"}}}],"id":"efbbc81b-93c8-4ce0-873e-675f39d333e8","savedPayload":{"position":{"x":24954.356993272086,"y":31057.918778615294},"targetPosition":{"x":24954.356993272086,"y":31057.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"n"}}},{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","cryptoExchanges":[{"type":"Crypto Exchanges","name":"Tested","exchanges":[{"type":"Crypto Exchange","name":"Binance","code":"{\n \"codeName\": \"binance\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"EUR\"} \n}","assets":[{"type":"Asset","name":"Bitcoin","code":"{ \n\"codeName\": \"BTC\"\n}","id":"b2814a75-fd57-45c4-a3cb-af276793e573","savedPayload":{"position":{"x":14195.09373519908,"y":30498.57953967648},"targetPosition":{"x":14305.025652484152,"y":30812.79046466984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","code":"{ \n\"codeName\": \"USDT\"\n}","id":"04c5f172-6976-4557-b95f-38004b5201a6","savedPayload":{"position":{"x":14342.003487956641,"y":30482.411278035917},"targetPosition":{"x":14305.025652484152,"y":30812.79046466984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Ether","code":"{ \n\"codeName\": \"ETH\"\n}","id":"4175d47c-e12c-4902-b026-f4999a6d07a4","savedPayload":{"position":{"x":14481.605152989256,"y":30531.154856472},"targetPosition":{"x":14305.025652484152,"y":30812.79046466984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Monero","code":"{ \n\"codeName\": \"XMR\"\n}","id":"e3b61070-77b9-4dcf-9862-7f05ffa237f3","savedPayload":{"position":{"x":14586.128143352431,"y":30635.66020347477},"targetPosition":{"x":14305.025652484152,"y":30812.79046466984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Stellar","code":"{ \n\"codeName\": \"XLM\"\n}","id":"6dee1e7e-80f3-4597-a28a-881af206ec14","savedPayload":{"position":{"x":14635.380023465843,"y":30775.418809131024},"targetPosition":{"x":14305.025652484152,"y":30812.79046466984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Ethereum Classic","code":"{ \n\"codeName\": \"ETC\"\n}","id":"59378d33-4833-495a-89bb-f739710be7d9","savedPayload":{"position":{"x":14618.714156215316,"y":30922.740363095792},"targetPosition":{"x":14305.025652484152,"y":30812.79046466984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"f4451bbc-50ea-4558-9b3c-abd3e757a76e","savedPayload":{"position":{"x":14305.17360826227,"y":30812.68986934228},"targetPosition":{"x":14079.894884165275,"y":31038.166461562458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"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}","markets":[{"type":"Market","name":"BTC/USDT","code":"{ \n\"codeName\": \"BTC/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","id":"07b514a4-3ea2-4ab7-aeb0-07b48acb6f8d","savedPayload":{"position":{"x":15236.371832479537,"y":30780.053229243735},"targetPosition":{"x":15049.153562663865,"y":31038.131226693393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b2814a75-fd57-45c4-a3cb-af276793e573"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"61e7d2b5-1672-4e11-8380-345a4fe4a991","savedPayload":{"position":{"x":15352.419771068837,"y":30939.69858316036},"targetPosition":{"x":15049.153562663865,"y":31038.131226693393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"04c5f172-6976-4557-b95f-38004b5201a6"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"a174a91f-0818-4fdc-88cd-20dbdf45c548","savedPayload":{"position":{"x":15352.36057193139,"y":31136.524172911017},"targetPosition":{"x":15049.153562663865,"y":31038.131226693393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"11beab3d-d894-4d20-9940-f864ba957f91","savedPayload":{"position":{"x":15236.806192935961,"y":31295.59566491682},"targetPosition":{"x":15049.153562663865,"y":31038.131226693393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"5489751f-5ce4-40d0-9854-5bcfdc810269","savedPayload":{"position":{"x":15049.153562663865,"y":31038.131226693393},"targetPosition":{"x":14716.990761953079,"y":31038.17830230591},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0e1257c5-49b1-4b52-8942-9bdef72854d2","savedPayload":{"position":{"x":14716.843959091762,"y":31038.024738221364},"targetPosition":{"x":14079.894884165275,"y":31038.166461562458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b","savedPayload":{"position":{"x":15045.552221144293,"y":31329.003976386983},"targetPosition":{"x":14837.69016883917,"y":31570.65978539939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b2814a75-fd57-45c4-a3cb-af276793e573"}}},{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da","savedPayload":{"position":{"x":15129.925421763637,"y":31443.234588877498},"targetPosition":{"x":14837.69016883917,"y":31570.65978539939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"04c5f172-6976-4557-b95f-38004b5201a6"}}},{"type":"Exchange Account Asset","name":"Ether","id":"b3d0800f-f430-4549-86e9-68001c43fa1f","savedPayload":{"position":{"x":15156.324673396291,"y":31582.493916797535},"targetPosition":{"x":14837.69016883917,"y":31570.65978539939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4175d47c-e12c-4902-b026-f4999a6d07a4"}}},{"type":"Exchange Account Asset","name":"Monero","id":"ee25ff6a-8b3d-4f30-8acf-71ca4b186195","savedPayload":{"position":{"x":15119.60270103622,"y":31719.58562930427},"targetPosition":{"x":14837.69016883917,"y":31570.65978539939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Monero","id":"e3b61070-77b9-4dcf-9862-7f05ffa237f3"}}},{"type":"Exchange Account Asset","name":"Stellar","id":"5716ea79-1392-4f6d-a46e-dba38ab9b39e","savedPayload":{"position":{"x":15027.042577031634,"y":31827.16324834079},"targetPosition":{"x":14837.69016883917,"y":31570.65978539939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Stellar","id":"6dee1e7e-80f3-4597-a28a-881af206ec14"}}},{"type":"Exchange Account Asset","name":"Ethereum Classic","id":"d9d0d41c-67a9-42ea-8c64-067647ee53a4","savedPayload":{"position":{"x":14896.892806780692,"y":31883.891480137856},"targetPosition":{"x":14837.69016883917,"y":31570.65978539939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ethereum Classic","id":"59378d33-4833-495a-89bb-f739710be7d9"}}}],"id":"f7bbfcc0-2359-4de1-8ddc-5e117bde0c52","savedPayload":{"position":{"x":14837.69016883917,"y":31570.65978539939},"targetPosition":{"x":14529.97816888475,"y":31488.389186969194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"WHB","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"88eab4e5-3be4-4982-93fa-e95bcb1ab559","savedPayload":{"position":{"x":14771.379005546727,"y":32072.350747523094},"targetPosition":{"x":14612.113800977872,"y":31796.265546651335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Exchange Account Key","name":"BBTB","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"bfea6ed0-673c-4245-9b5e-7837785a63c9","savedPayload":{"position":{"x":14612.064462876144,"y":32115.0038323965},"targetPosition":{"x":14612.113800977872,"y":31796.265546651335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"cf3895fd-4f0c-4bd8-8afb-886a718cc891","savedPayload":{"position":{"x":14612.113800977872,"y":31796.265546651335},"targetPosition":{"x":14529.97816888475,"y":31488.389186969194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a718949a-e315-4bda-8523-b0b03e3ca507","savedPayload":{"position":{"x":14529.97816888475,"y":31488.389186969194},"targetPosition":{"x":14305.012345932206,"y":31263.313648257546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a913b30b-17d3-4b2b-9c39-9c7dc67f0000","savedPayload":{"position":{"x":14305.012345932206,"y":31263.313648257546},"targetPosition":{"x":14079.894884165275,"y":31038.166461562458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"22d2b36e-7a77-40a6-8948-b7d0fb744923","savedPayload":{"position":{"x":14079.894884165275,"y":31038.166461562458},"targetPosition":{"x":13442.879291220586,"y":31038.17362849701},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"c16f8dd4-05f5-45db-8a47-713eb1116f72","savedPayload":{"position":{"x":13442.879291220586,"y":31038.17362849701},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"signalsProviders":[],"superActions":{"type":"Super Actions","name":"New Super Actions","superActions":[{"type":"Super Action","name":"Install Market","id":"2cd8e9dd-02a8-40b5-8979-108491309697","savedPayload":{"position":{"x":13596.796537982185,"y":29900.600915146206},"targetPosition":{"x":13238.769838624787,"y":30494.890822183912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"d103d8f7-8b21-436a-a0cf-8244b3dcb756","savedPayload":{"position":{"x":13738.553946135695,"y":30013.646249280533},"targetPosition":{"x":13238.769838624787,"y":30494.890822183912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"c934df8f-d942-4723-ad44-f187e5df4351","savedPayload":{"position":{"x":12166.581869182457,"y":31038.25465749285},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9f4e7bfb-ea29-47cd-92bd-11f31d177ff8","savedPayload":{"position":{"x":12805.301618063546,"y":31038.2348844148},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"e"}}},{"type":"Charting Space","name":"New Charting Space","viewport":{"type":"Viewport","name":"New Viewport","code":"{\"zoom\":\"0.00\"}","id":"c3db9bcf-39ee-47d1-ab4f-14bd5de815da","savedPayload":{"position":{"x":13421.60994808922,"y":24983.353401471086},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"frame":{"position":{"x":-105.87179487179515,"y":64.6875}}}},"dashboards":[{"type":"Dashboard","name":"Super Action Generated","timeMachines":[{"type":"Time Machine","name":"WHB Binance BTC/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-05-18T06:17:05.470Z\",\n \"toDate\": \"2020-05-27T22:57:28.511Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"9368d644-21cd-4be9-bb36-df83b66c67d1","savedPayload":{"position":{"x":11611.720379074248,"y":26036.808408556513},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 8468.468050704952,\n \"maxValue\": 10604.90816010915,\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"7242faad-e2a0-4dd2-8016-bd4448a3b61c","savedPayload":{"position":{"x":11472.84821627644,"y":26143.60061063287},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"cddfbb92-c310-477a-9c66-b2a38ff8309f","savedPayload":{"position":{"x":11311.376506720255,"y":26210.551198106474},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"09e91fb3-cdff-4c0c-b320-417aeb4f2538","savedPayload":{"position":{"x":45798.08358329995,"y":30783.47112133315},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"dd7c8795-bb24-4438-9d77-b37a9000ad7f"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"2b8f6dec-a712-4716-88d8-a33c01398956","savedPayload":{"position":{"x":45898.37673360377,"y":30788.25119234455},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"6929ebe7-6486-4299-add5-ed0282500d91"}}},{"type":"Layer","name":"Resistances","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"57d807c2-eeac-46a5-bd07-6f630a578562","savedPayload":{"position":{"x":45996.05938571397,"y":30809.588522972816},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Resistances","id":"0669d924-aace-46d1-b126-ccced8fd33cf"}}},{"type":"Layer","name":"Supports","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9a035c82-60cb-4ab4-b4f8-e40b0dde7c2c","savedPayload":{"position":{"x":46088.671022938994,"y":30846.72421469604},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Supports","id":"5e7a0e50-e6ed-4106-8025-8b35ad6c597c"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"25363a67-bcaf-4392-9ed8-2b6c99fb31c8","savedPayload":{"position":{"x":46173.797322491286,"y":30898.58369972401},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"1d7dd537-5f6f-4eb2-8e56-ddba0aef720f"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"63dbae3f-cebc-4587-9b9c-60ffe83e4143","savedPayload":{"position":{"x":46249.17664768098,"y":30963.730987652525},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"221c8d22-8a7f-4014-a7ed-0bafc886b123"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"2203bc66-a385-438b-8050-0b812b655d0a","savedPayload":{"position":{"x":46312.78393052083,"y":31040.384533238812},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"d83476c3-2f0b-4d4a-abb2-0e47ed0a421d"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ea4ce55e-855e-4a61-ad12-222a0077e51e","savedPayload":{"position":{"x":46362.900460538505,"y":31126.454059169817},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"5ffc6a67-e33b-422b-8e36-f9711f93c723"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"e9272caf-38f8-44de-a698-13f8b19b50c3","savedPayload":{"position":{"x":46398.167326095994,"y":31219.59432824167},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"0428f20b-9620-480e-a531-dbb2e5f59ef4"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"a9fcfaea-cd50-464e-aa65-1f2a3e98633d","savedPayload":{"position":{"x":46417.62588351845,"y":31317.267577006704},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"48f7953c-f62d-4292-b042-d1ac05f8f80f"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\"\n}","id":"8c1e005a-c340-4850-9de2-900a4cfc44bb","savedPayload":{"position":{"x":46420.70567572493,"y":31416.809466474464},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"3b9a3c93-6d41-440e-89a2-2fd1b2dde603"}}},{"type":"Layer","name":"Base5 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"6223f2d7-bdb4-474a-9e60-b54dc00680ea","savedPayload":{"position":{"x":46407.31337137963,"y":31515.483822428057},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"2404b1eb-c7c9-46e7-b22a-93cfcc3739f4"}}},{"type":"Layer","name":"Base6 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"a71c4fa6-d034-499c-9b30-7a46378cadc0","savedPayload":{"position":{"x":46377.87367543775,"y":31610.607629023725},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"1510fd36-633e-40a7-adbe-680660d64bd0"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"53c4ff8b-f3c5-4329-8fe4-6209c0ffb9f1","savedPayload":{"position":{"x":46333.185880681754,"y":31699.591341637817},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"70401ea0-3fed-4e40-8bba-a1e5adce9b8c"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"09cbb1f5-edad-4f9f-ab1c-7f9b0a0d8f7c","savedPayload":{"position":{"x":46274.467312818415,"y":31780.011584392756},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"06ac8eb7-8b14-42b1-9e2e-466280ade032"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"88466a0a-b385-417f-9efa-8c0139e05a5e","savedPayload":{"position":{"x":46203.31676678368,"y":31849.67669835976},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"014bba70-64d4-4035-b06d-145ee9b4c54c"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6564d574-c6fd-4ee0-96ab-0e7c62e1cd7c","savedPayload":{"position":{"x":46121.67361107911,"y":31906.68977984249},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"768cc06c-6fdf-491a-a741-5e08f0e25e38"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"941fef87-83dd-457f-818c-71745fa1692a","savedPayload":{"position":{"x":46028.33674024209,"y":31950.48529383432},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"40794460-b815-498f-a245-e677de0eed86"}}}],"id":"1c96281c-523a-4597-b9b2-2db3d880ff49","savedPayload":{"position":{"x":45819.36840869368,"y":31385.419815840156},"targetPosition":{"x":45228.931388073186,"y":31502.74417203152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"ff535c6b-411f-4790-ab2b-c755c74de1b9","savedPayload":{"position":{"x":11138.25130732125,"y":26233.38907834376},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 2109149.343784579,\n \"maxValue\": 2118053.365048354,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"9ee722c6-095f-4f4a-b8b2-9cb9bca115aa","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c4041768-1a6e-4f5b-8d7b-b681a175f27a","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"98e6c917-f4b7-4b71-9215-de3ccaf3dc0c"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"e9404a3f-2768-4b17-ac7a-8b11e1a1957c","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"858fd2be-abef-4173-abef-dedf17f00d47","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"8411d061-e010-4d33-b35c-e71d743fd403","savedPayload":{"position":{"x":10965.194408624708,"y":26210.60036281255},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 25826.74987533423,\n \"maxValue\": 25961.190304401338,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"60aaeaeb-2247-4536-a1a2-cf7d731b6fc5","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"c230772e-ca08-45df-bad6-4b72be44d9a5","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"4a3ed8eb-a73e-4fb4-835a-681cf47d7373"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"f9435119-1d3f-4106-9c78-531f6ef4714f","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"728d6f08-086f-41ba-9126-30ec56a45ea5"}}}],"id":"acbd2ecb-2f75-44b8-8659-26482cb6fb0b","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"a7f9fef6-c3f9-4e17-b894-9a5e154ccbbe","savedPayload":{"position":{"x":10803.78018262477,"y":26143.752131657493},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 943.9334763368367,\n \"maxValue\": 947.9334763368367,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"1415a288-9d79-45c9-a55c-9991e8b6953b","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"33e885d3-27f0-4ff7-8715-bc2f945e698e","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"7ccbd0c1-c804-47e3-9314-14cbb756c806"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f3cd6f15-98f5-4165-b6c3-04b8796fb43d","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"08f223a8-9707-4c45-b638-1fe0e4a2b053"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"66440f58-8741-4b22-8146-00f772837545","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"66f1a9be-fe96-48c3-91e4-500c6e246423"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"3ba14173-bac8-4013-9a5c-b8aecd05e0ae","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"e432c706-cbcd-4af0-b23c-b18e5b29377a"}}}],"id":"ab7c3367-a36e-4a78-b43b-bfeea5fc5201","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"156b9564-14a5-4148-8ca6-1e7b98d4189d","savedPayload":{"position":{"x":10665.17152728171,"y":26037.402405028162},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"4978dec9-1374-421a-865e-9e0d30682f65","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"93d62cc0-6914-411e-bf9f-008271cd2965","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"573fb46f-78d2-4bf3-ad11-e42d2531d53e"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"on\"\n}","id":"cbb41381-e76d-44f5-8dd3-f9a8c0c0379f","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"39d7a06d-5aad-4b03-8778-e4df8dacc825"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"88471305-9c12-4caf-856b-675fb2db2db3","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"82b46974-7a93-4066-a3b7-378b42710364"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"8cb92f6b-8ede-44ef-928a-36f4ec022af8","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"7af9d35c-7464-4ed5-9ee6-ccf7a9943894"}}}],"id":"3ec4f352-fb06-4ade-8393-7a5a83765773","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1770,"y":80},"width":150,"height":330,"radius":0}}},"id":"ac6929d9-238c-4689-b2ee-3cc001be578b","savedPayload":{"position":{"x":10558.81501585983,"y":25898.797450091883},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"d7c6c5e8-82d8-4f2a-a07e-66c3498d1fe5","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"b978b005-7bc2-4246-b4d9-5fcfc463eacf","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"63636068-307e-4cea-b31f-f47e106cea2c"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"1ca55ee3-231b-41ad-9acd-24f043e8aa01","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"20848048-8efb-47b1-aaf0-789d2f6c5b1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"52850e27-6287-4005-ba6e-66f5b193e3ad","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"5e28998c-b35f-4cc0-9fd6-8ee5f5714545"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"46bd81b8-5b9f-4c5f-89bb-149e19bd0267","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"87b74841-4f6a-4658-b01b-7feb254b5d2f"}}}],"id":"0cf47550-1612-4cd7-8fdd-a68014bd52cc","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1620,"y":80},"width":150,"height":40,"radius":0}}},"id":"c285480b-3a39-4dd0-be1d-6470a97d22a7","savedPayload":{"position":{"x":10491.96325073248,"y":25737.373898896472},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"b10a1160-3d9b-44a5-97e9-dbfdc9f103b6","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"b4fb2c12-42e4-496d-aea2-ccf8c90c2e6a","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"5919a710-a950-4049-9605-3f127b7fac6b"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"fc3d15bc-ac9c-4150-9a26-4c8baef90266","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"c7030a88-152f-421c-8b32-66f3c222286a"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"c749facc-4350-43c1-b881-72c781475f56","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"25db80e6-c4cf-4568-98d3-0cba83625ece"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"30fa6c26-bdbb-4a70-a917-f42d99583938","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"f4b18249-5044-4b34-83f7-3cedbbe939c5"}}}],"id":"c689ea14-8d8b-4482-9cf3-c652904ebd27","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1470,"y":80},"width":150,"height":40,"radius":0}}},"id":"fabbc9b6-b752-4ba6-80a4-835eaa856948","savedPayload":{"position":{"x":10469.194131114753,"y":25564.28586691085},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"eb70203f-383c-4227-8b82-64458c8ceb62","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"3a82f6d9-2063-4fd7-aa79-dedc4222c58c","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"af19e56c-eaf1-4b0b-93f9-74b9ac1843c2"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"605b9ea8-5ed1-4750-8921-88bc481ffbc4","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"30ac52a8-ee50-439c-83c8-df75ab49374a"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"3e97cb0b-80dd-4d12-8205-852c759a3f55","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"6a059555-2555-4c7f-a722-2ab4ca0440c5"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"76a918d5-1242-4b97-a252-550200546f5c","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"c35fa0be-6e51-4d14-9a52-6b0174cc1aab"}}}],"id":"8658198e-ea8a-45ef-b05f-b2810aa3e015","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1320,"y":80},"width":150,"height":40,"radius":0}}},"id":"6616907b-5ec0-4c2d-b47b-885343226b81","savedPayload":{"position":{"x":10492.226838547804,"y":25390.75587290283},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a9786387-316d-4b02-a53a-60187e2e17ed","savedPayload":{"position":{"x":11138.236958169193,"y":25564.296880103568},"targetPosition":{"x":11472.267056451483,"y":24985.351675411093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":1135,"y":395},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"BBTB Binance BTC/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-05-20T06:57:25.096Z\",\n \"toDate\": \"2020-05-28T23:36:50.667Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"28d6f2c6-d921-4bc6-a262-f9d432e43a75","savedPayload":{"position":{"x":10492.140742264783,"y":24579.9362145769},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 8539.15569832808,\n \"maxValue\": 10398.820427646755,\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"305a3f31-2554-45f4-9a5a-063087eade65","savedPayload":{"position":{"x":10469.108817024662,"y":24406.41410216667},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"af0e57b5-269b-4d97-ac21-76195ede4cd6","savedPayload":{"position":{"x":10491.878304594275,"y":24233.318318413578},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"8b7edeec-2998-4877-95d6-4bc85a91f199","savedPayload":{"position":{"x":46248.05137575185,"y":30539.981477083165},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"dd7c8795-bb24-4438-9d77-b37a9000ad7f"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"2360e8bf-a667-40b9-ad6e-84bca97a4c90","savedPayload":{"position":{"x":46348.34452605566,"y":30544.761548094564},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"6929ebe7-6486-4299-add5-ed0282500d91"}}},{"type":"Layer","name":"Resistances","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f2d657ea-cfc5-47d7-9a00-b1c1ebc61e3f","savedPayload":{"position":{"x":46446.02717816587,"y":30566.09887872283},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Resistances","id":"0669d924-aace-46d1-b126-ccced8fd33cf"}}},{"type":"Layer","name":"Supports","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5f830182-98fa-4e85-b66b-f1e240d821c9","savedPayload":{"position":{"x":46538.63881539089,"y":30603.234570446057},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Supports","id":"5e7a0e50-e6ed-4106-8025-8b35ad6c597c"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ae39c816-1963-4071-af1d-22d6cf94041e","savedPayload":{"position":{"x":46623.76511494318,"y":30655.094055474026},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"1d7dd537-5f6f-4eb2-8e56-ddba0aef720f"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"84a553d0-1d85-4164-8a7e-f583326a807d","savedPayload":{"position":{"x":46699.14444013288,"y":30720.24134340254},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"221c8d22-8a7f-4014-a7ed-0bafc886b123"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"c2fde932-5320-4d26-a998-4a4f5bf4d847","savedPayload":{"position":{"x":46762.751722972724,"y":30796.894888988827},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"d83476c3-2f0b-4d4a-abb2-0e47ed0a421d"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"986d6828-d93c-4eba-9ac2-c2c94d90582e","savedPayload":{"position":{"x":46812.8682529904,"y":30882.964414919832},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"5ffc6a67-e33b-422b-8e36-f9711f93c723"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"90090b4c-f6bb-465f-8240-1ff1b829503d","savedPayload":{"position":{"x":46848.135118547885,"y":30976.104683991685},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"0428f20b-9620-480e-a531-dbb2e5f59ef4"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"3100c7a8-46ce-4713-bb6c-4a90bf09dcbc","savedPayload":{"position":{"x":46867.59367597035,"y":31073.77793275672},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"48f7953c-f62d-4292-b042-d1ac05f8f80f"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\"\n}","id":"534a2350-9486-4c2b-8e42-0988e56d4a6e","savedPayload":{"position":{"x":46870.67346817683,"y":31173.31982222448},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"3b9a3c93-6d41-440e-89a2-2fd1b2dde603"}}},{"type":"Layer","name":"Base5 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"948561ae-efea-46e1-9667-5c4817118eca","savedPayload":{"position":{"x":46857.28116383152,"y":31271.994178178073},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"2404b1eb-c7c9-46e7-b22a-93cfcc3739f4"}}},{"type":"Layer","name":"Base6 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"49e73773-8345-4e59-9fed-0cf16c82be08","savedPayload":{"position":{"x":46827.84146788965,"y":31367.11798477374},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"1510fd36-633e-40a7-adbe-680660d64bd0"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"0f88f124-bb93-4bac-918e-fd11496d1a76","savedPayload":{"position":{"x":46783.15367313365,"y":31456.101697387832},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"70401ea0-3fed-4e40-8bba-a1e5adce9b8c"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"5fcb4df6-3903-4e0a-b29d-4ca52ca10f40","savedPayload":{"position":{"x":46724.43510527031,"y":31536.52194014277},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"06ac8eb7-8b14-42b1-9e2e-466280ade032"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"b9c8e51c-82eb-4dc5-9b12-01a5c660e27d","savedPayload":{"position":{"x":46653.28455923557,"y":31606.187054109774},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"014bba70-64d4-4035-b06d-145ee9b4c54c"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e101b9b9-54f7-4450-b658-41d428fe98b3","savedPayload":{"position":{"x":46571.641403531,"y":31663.200135592506},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"768cc06c-6fdf-491a-a741-5e08f0e25e38"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"7f4a8c67-cfb0-4370-a7d1-3dbb51a4200a","savedPayload":{"position":{"x":46478.30453269399,"y":31706.995649584336},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"40794460-b815-498f-a245-e677de0eed86"}}}],"id":"4ecd5f52-f81e-456c-9497-9c1d2fe4c659","savedPayload":{"position":{"x":46269.336201145576,"y":31141.93017159017},"targetPosition":{"x":45678.899180525084,"y":31259.254527781533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"6916ddb0-8156-49b5-a37b-16818ad780fd","savedPayload":{"position":{"x":10558.729861137988,"y":24071.895181337284},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 2042396.836815424,\n \"maxValue\": 2051300.858079199,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"fea71c82-c589-4e2b-9a23-a9f90a980a5c","savedPayload":{"position":{"x":44405.55033743636,"y":31261.51022477371},"targetPosition":{"x":44080.414675039254,"y":31287.13850027945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0358d7fb-73e1-4099-bbad-672d80f35e8e","savedPayload":{"position":{"x":44612.89390157048,"y":31479.949969919875},"targetPosition":{"x":44401.28500610063,"y":31441.688531642707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"98e6c917-f4b7-4b71-9215-de3ccaf3dc0c"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"1647ec62-daa0-4985-ae3d-9ad7b3222397","savedPayload":{"position":{"x":44564.361174041755,"y":31581.712327942194},"targetPosition":{"x":44401.28500610063,"y":31441.688531642707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"111f471b-a72c-4330-97b0-3f2b310f3c55","savedPayload":{"position":{"x":44401.28500610063,"y":31441.688531642707},"targetPosition":{"x":44080.414675039254,"y":31287.13850027945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"237e33ff-32f9-4f45-bb51-b42e93d4f2e3","savedPayload":{"position":{"x":10665.086276963259,"y":23933.289816556313},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 24818.86417825609,\n \"maxValue\": 24953.3046073232,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"9294ac73-b348-4f8c-aa4b-a98e72b643ce","savedPayload":{"position":{"x":44361.21664273736,"y":31366.73167335227},"targetPosition":{"x":44060.4423815896,"y":31347.32101223103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"e8cef08c-fcbb-4430-8a2f-825d101f44e3","savedPayload":{"position":{"x":44529.19471727387,"y":31592.619948516272},"targetPosition":{"x":44324.99063603653,"y":31523.731134007154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"4a3ed8eb-a73e-4fb4-835a-681cf47d7373"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"ce432b11-fd42-4bbb-be67-be70436e1935","savedPayload":{"position":{"x":44467.06932232549,"y":31685.848244771263},"targetPosition":{"x":44324.99063603653,"y":31523.731134007154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"728d6f08-086f-41ba-9126-30ec56a45ea5"}}}],"id":"40c545c9-8f6e-4777-a5b7-6386c382d0ef","savedPayload":{"position":{"x":44324.99063603653,"y":31523.731134007154},"targetPosition":{"x":44060.4423815896,"y":31347.32101223103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"3b7bd98c-c062-412b-8efc-b6943b0c57c4","savedPayload":{"position":{"x":10803.694986500428,"y":23826.93951465946},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 913.9458988180226,\n \"maxValue\": 917.9458988180226,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"33fca6f7-ae02-4d47-987b-6d4cdd54d7dc","savedPayload":{"position":{"x":44290.58808276839,"y":31546.332726046596},"targetPosition":{"x":44008.67786449814,"y":31450.627230444796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3f2dd6ab-cbb0-47d4-bcc0-4c65a6a26bbf","savedPayload":{"position":{"x":44413.860692334245,"y":31705.270868973323},"targetPosition":{"x":44217.224018592766,"y":31688.7983598539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"7ccbd0c1-c804-47e3-9314-14cbb756c806"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6970ee87-56eb-42e1-a7f5-e8496ae7c14e","savedPayload":{"position":{"x":44370.6894603055,"y":31786.435037256044},"targetPosition":{"x":44217.224018592766,"y":31688.7983598539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"08f223a8-9707-4c45-b638-1fe0e4a2b053"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"8467da0c-25b2-4471-8a51-d10e22c09575","savedPayload":{"position":{"x":44303.94190533702,"y":31846.937174734503},"targetPosition":{"x":44217.224018592766,"y":31688.7983598539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"66f1a9be-fe96-48c3-91e4-500c6e246423"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"538dc51b-9d04-4064-8997-7c2cfd01def4","savedPayload":{"position":{"x":44207.172795775405,"y":31883.5736299024},"targetPosition":{"x":44217.224018592766,"y":31688.7983598539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"e432c706-cbcd-4af0-b23c-b18e5b29377a"}}}],"id":"413ae363-1475-4fb5-918f-607c5ee50198","savedPayload":{"position":{"x":44217.224018592766,"y":31688.7983598539},"targetPosition":{"x":44008.67786449814,"y":31450.627230444796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"6fbb972a-6cb6-479d-bbd8-20d96f997ec7","savedPayload":{"position":{"x":10965.11030574667,"y":23760.090535827057},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"c0059d35-5a9a-4569-9384-72e2e15f134d","savedPayload":{"position":{"x":27557.63582153647,"y":27912.736751977856},"targetPosition":{"x":27650.227157061017,"y":28257.50773383182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"1ab2b96f-e3d5-46a0-9be0-2f2b76209ea2","savedPayload":{"position":{"x":27665.65594917696,"y":27585.32604165042},"targetPosition":{"x":27743.053578769875,"y":27912.28127902672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"653622df-b35b-4c72-9b1d-cbbea2d45a93"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"3d8a3ad2-2047-4906-b695-5336d5d7c98a","savedPayload":{"position":{"x":27773.681834722982,"y":27575.417965010536},"targetPosition":{"x":27743.053578769875,"y":27912.28127902672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"bcd39fee-3584-4e3a-b524-05ecb62d4582"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"75f4bc8d-ba22-4a6e-a8c2-2c384ef2b98c","savedPayload":{"position":{"x":27879.136658694806,"y":27601.456940514337},"targetPosition":{"x":27743.053578769875,"y":27912.28127902672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"d6a48300-ab24-4b7b-8fb1-b431e389c7d1"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"db1b234c-5cba-4b03-8572-755e2af13f73","savedPayload":{"position":{"x":27979.473145949694,"y":27672.59337035246},"targetPosition":{"x":27743.053578769875,"y":27912.28127902672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"aa60feec-3e11-4509-ab4f-5eac17ea7d3b"}}}],"id":"ce11bc60-a642-46e6-ab04-99b6835f22d3","savedPayload":{"position":{"x":27743.053578769875,"y":27912.28127902672},"targetPosition":{"x":27650.227157061017,"y":28257.50773383182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1770,"y":80},"width":150,"height":330,"radius":0}}},"id":"d3f769da-9958-4549-b2d9-7eb8582f94c2","savedPayload":{"position":{"x":11138.157252601008,"y":23737.30184414623},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"4c7c5182-d380-459d-aaf3-27cf75fff424","savedPayload":{"position":{"x":28262.385658877018,"y":28130.53416813641},"targetPosition":{"x":28262.41822833366,"y":28486.384792584635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"8c3a6cb3-9c1c-4a56-8e45-34da3b7211a5","savedPayload":{"position":{"x":28447.69443236196,"y":27841.456778292883},"targetPosition":{"x":28440.385696197893,"y":28177.98107529941},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"2004d488-ba55-478c-afa4-c00a555bf34c"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"f6941192-1842-4fa5-9963-3d82963ccf8f","savedPayload":{"position":{"x":28557.462280733387,"y":27859.50803963232},"targetPosition":{"x":28440.385696197893,"y":28177.98107529941},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"7859d024-817a-4059-8a17-86690194f9de"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"dbc9d245-aa65-4b6e-bed2-43a76dd4c5f6","savedPayload":{"position":{"x":28655.050318792713,"y":27915.11964276374},"targetPosition":{"x":28440.385696197893,"y":28177.98107529941},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"dd541e63-8071-4b0f-8eb8-5fd50ef3eb82"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"d4c540d0-ef98-40c5-8b3b-401a36d97a35","savedPayload":{"position":{"x":28729.501541674534,"y":28006.267495681434},"targetPosition":{"x":28440.385696197893,"y":28177.98107529941},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"11af0867-3396-48d4-b794-9d133d2d2416"}}}],"id":"848138ac-75f4-4f45-9d75-5f3efd1b1851","savedPayload":{"position":{"x":28440.385696197893,"y":28177.98107529941},"targetPosition":{"x":28262.41822833366,"y":28486.384792584635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1620,"y":80},"width":150,"height":40,"radius":0}}},"id":"7e78029b-0e92-4aca-b46e-b0abd6a9efc1","savedPayload":{"position":{"x":11311.290953212665,"y":23760.139397561445},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"30f19a00-1682-4e5b-bbf1-038de1e095a0","savedPayload":{"position":{"x":28472.766660410845,"y":29349.031832198143},"targetPosition":{"x":28472.716345933826,"y":29707.546693237375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"55f431d8-2f2b-4a23-8918-c7e648f501f4","savedPayload":{"position":{"x":28819.954200077675,"y":29131.835390461678},"targetPosition":{"x":28725.76222074944,"y":29454.779651892102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"3713af17-7ed8-4d32-abbb-66be7ba3d95b"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"352896a0-4682-4e04-b63a-8c449e290e3c","savedPayload":{"position":{"x":28923.00109202421,"y":29179.54612793986},"targetPosition":{"x":28725.76222074944,"y":29454.779651892102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"8206a3c4-7a92-4f52-aa29-d0b912511e94"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"ad636a90-0f4f-4851-8ac4-f1d8f62db35f","savedPayload":{"position":{"x":28999.37401037677,"y":29254.845401658935},"targetPosition":{"x":28725.76222074944,"y":29454.779651892102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"82cb4b63-c7ed-4e1c-b558-5caf08e7840e"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"46e22bd5-7a0a-4cf4-a07a-ffb56e480b13","savedPayload":{"position":{"x":29049.875305170575,"y":29364.278029383444},"targetPosition":{"x":28725.76222074944,"y":29454.779651892102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"35c51f59-d967-4fb9-bf3d-ebef155fe90a"}}}],"id":"b3fbff56-9599-4434-b850-ecde29200a93","savedPayload":{"position":{"x":28725.76222074944,"y":29454.779651892102},"targetPosition":{"x":28472.716345933826,"y":29707.546693237375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1470,"y":80},"width":150,"height":40,"radius":0}}},"id":"6a6e8794-41f5-43a6-afd2-7e46272b49f6","savedPayload":{"position":{"x":11472.759865802207,"y":23827.087856289705},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-min\"}","id":"0e5d370a-9170-44e8-870a-20dcc784a793","savedPayload":{"position":{"x":28317.561321721798,"y":28460.143313868284},"targetPosition":{"x":28139.557768239833,"y":28769.97071387159},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"d4b2f167-9859-46d5-a98f-18ce9b8c2c37","savedPayload":{"position":{"x":28624.627247902066,"y":28305.973052222267},"targetPosition":{"x":28447.39063058376,"y":28591.244910585203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"84c5619b-c379-4bed-bd1c-3dccfc840fa7"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"303943c9-fa32-4510-abdb-59c743008a7a","savedPayload":{"position":{"x":28705.758217764087,"y":28373.020535680873},"targetPosition":{"x":28447.39063058376,"y":28591.244910585203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"9cd0c0da-e0df-4b83-a7f5-7e503f050020"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"09bd756c-955e-40c3-b093-f5bd16a47d94","savedPayload":{"position":{"x":28763.500035918594,"y":28466.28104399784},"targetPosition":{"x":28447.39063058376,"y":28591.244910585203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"05aa1029-fde5-4240-b5ef-31636ed817ee"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"7baed766-dcbe-4ca9-a45c-f09d5e1f0c0c","savedPayload":{"position":{"x":28784.40971720822,"y":28589.492110455},"targetPosition":{"x":28447.39063058376,"y":28591.244910585203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"8681f8d9-c6fa-4966-aa76-e627000962cb"}}}],"id":"73aed3a7-3c46-4847-85a8-1da38a836b75","savedPayload":{"position":{"x":28447.39063058376,"y":28591.244910585203},"targetPosition":{"x":28139.557768239833,"y":28769.97071387159},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1320,"y":80},"width":150,"height":40,"radius":0}}},"id":"0440d6cc-9623-40ab-b3fd-b6fc234d2550","savedPayload":{"position":{"x":11611.635854119537,"y":23933.882953163084},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f2065c00-1afb-40e3-937c-fa4046f388a2","savedPayload":{"position":{"x":11138.15835124918,"y":24406.41899509399},"targetPosition":{"x":11472.267056451483,"y":24985.351675411093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":725,"y":395},"width":240,"height":113.625,"radius":0}}}],"id":"64fa2a31-21ea-4b56-a625-dc4082876a89","savedPayload":{"position":{"x":11472.267056451483,"y":24985.351675411093},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":0,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"t"}}}],"id":"c53a4385-3fb3-49d5-b506-99bcaef2c141","savedPayload":{"position":{"x":12809.806237131383,"y":24985.35640053908},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":0,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"c"}}},{"type":"Trading System","name":"BB Top Bounce","code":"{ \n\"codeName\": \"\"\n}","strategies":[{"type":"Strategy","name":"S1 - 3H Down","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"99948a6e-e866-4339-86ba-eac367226312","savedPayload":{"position":{"x":31745.87792199155,"y":30844.340258645996},"targetPosition":{"x":32052.38122416619,"y":30583.023145060495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f0534c68-ab47-4370-b1fd-b3be4c1c262f","savedPayload":{"position":{"x":32052.38122416619,"y":30583.023145060495},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"d3bd1690-1f94-484b-ac3c-7be2c7be85ed","savedPayload":{"position":{"x":31605.618112221746,"y":30565.806770971594},"targetPosition":{"x":31989.318028702757,"y":30441.460815337527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2d7334d-cf52-44d9-a20e-5be201ca6799","savedPayload":{"position":{"x":31989.318028702757,"y":30441.460815337527},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"d1fa707f-eb75-4b1c-8117-688b9b94e539","savedPayload":{"position":{"x":31554.61755893405,"y":30257.172197674274},"targetPosition":{"x":31956.687749228324,"y":30288.882416651897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fb71bcfb-2a40-4e8a-b8e8-b492128350a0","savedPayload":{"position":{"x":31956.687749228324,"y":30288.882416651897},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","id":"8c8c5128-b88b-44a5-8e36-d5c61127404f","savedPayload":{"position":{"x":31639.94576021355,"y":29954.803831254892},"targetPosition":{"x":31999.203547395213,"y":30137.794869043297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22246178-a8f9-4ec8-b55b-36cf7a24fbff","savedPayload":{"position":{"x":31999.203547395213,"y":30137.794869043297},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Medium, Steep or Extreme","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Medium\" || chart.at03hs.bollingerSubChannel.slope === \"Steep\" || chart.at03hs.bollingerSubChannel.slope === \"Extreme\" ","id":"bf8df41c-c62f-4cd6-840e-1dd538359c3b","savedPayload":{"position":{"x":31834.655620259655,"y":29707.873760246843},"targetPosition":{"x":32096.553555740164,"y":30014.31400704127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9dba774d-1afa-40dd-b5ec-8f4029824473","savedPayload":{"position":{"x":32096.553555740164,"y":30014.31400704127},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope === \"Gentle\"","id":"c4428437-7308-46f3-884e-22d2aac8d1a0","savedPayload":{"position":{"x":32109.03084733644,"y":29554.180048988066},"targetPosition":{"x":32233.790964800362,"y":29937.452098557496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7766453d-73ca-46f7-a39c-00f4f11af05e","savedPayload":{"position":{"x":32233.790964800362,"y":29937.452098557496},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"eac9b2d4-4364-4116-9d99-e92b8bbce5e7","savedPayload":{"position":{"x":32420.849012406088,"y":29517.112042973775},"targetPosition":{"x":32389.86788822145,"y":29918.98295933012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40cb1853-f93e-4023-8d45-708376281bde","savedPayload":{"position":{"x":32389.86788822145,"y":29918.98295933012},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8d558598-60b5-4104-9a84-1773b125c509","savedPayload":{"position":{"x":32358.475513276375,"y":30321.19625417135},"targetPosition":{"x":32756.369395728692,"y":30473.2782041962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3afd4ef5-2175-48fa-844f-e4e4ed775b26","savedPayload":{"position":{"x":32756.369395728692,"y":30473.2782041962},"targetPosition":{"x":33115.49575849726,"y":30655.993268223905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"0fb11814-5ba2-4c23-86b0-e6f8c01363e6","savedPayload":{"position":{"x":32617.29250092579,"y":29121.850815516915},"targetPosition":{"x":32741.838475650537,"y":29505.18938868129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32415e55-51cb-44cf-a0d9-9de73b946da8","savedPayload":{"position":{"x":32741.838475650537,"y":29505.18938868129},"targetPosition":{"x":32866.375295950726,"y":29888.60205395678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"317dd29a-db32-4f10-bee0-325b7a7c816c","savedPayload":{"position":{"x":32866.375295950726,"y":29888.60205395678},"targetPosition":{"x":32991.015860687716,"y":30271.979726021065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"547d578f-4568-4b1f-965d-1d598b7b67bb","savedPayload":{"position":{"x":32991.015860687716,"y":30271.979726021065},"targetPosition":{"x":33115.49575849726,"y":30655.993268223905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"903651ac-50d3-44ea-aae2-0b6bbe43b989","savedPayload":{"position":{"x":32519.153930150867,"y":29623.888173680094},"targetPosition":{"x":32898.8713319454,"y":29758.68564157265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4c4c6084-bebe-46ce-a12f-68924568c81d","savedPayload":{"position":{"x":32898.8713319454,"y":29758.68564157265},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"b16e3f56-5a3f-4af9-a9d1-ff3bbf9ca0b8","savedPayload":{"position":{"x":32679.72474976604,"y":29354.39087414772},"targetPosition":{"x":32979.10492621333,"y":29624.347968493967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c4e1f247-db57-4488-81e9-c7602562b8f3","savedPayload":{"position":{"x":32979.10492621333,"y":29624.347968493967},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"34452811-c161-4b33-8335-bc996a8638ad","savedPayload":{"position":{"x":32931.691553348195,"y":29166.564159994483},"targetPosition":{"x":33105.053842370166,"y":29530.40381131325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"db35b110-1991-4e3d-a1bd-04b0d1bad669","savedPayload":{"position":{"x":33105.053842370166,"y":29530.40381131325},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","id":"8fcf0aed-cd6b-4df9-8ec4-4511fcde66d8","savedPayload":{"position":{"x":33236.37478842459,"y":29089.384601838196},"targetPosition":{"x":33257.444177016405,"y":29491.79286529503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48bd56ea-0d5a-404d-a887-061493bebbcf","savedPayload":{"position":{"x":33257.444177016405,"y":29491.79286529503},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Medium, Steep or Extreme","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Medium\" || chart.at03hs.bollingerSubChannel.slope === \"Steep\" || chart.at03hs.bollingerSubChannel.slope === \"Extreme\" ","id":"40b36ec9-ebf1-43fe-8003-f0d130b7cb36","savedPayload":{"position":{"x":33547.15819738872,"y":29134.731069626498},"targetPosition":{"x":33412.887765036874,"y":29514.443714403056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c90a754-52bd-47cf-a3b5-95ad037bbb62","savedPayload":{"position":{"x":33412.887765036874,"y":29514.443714403056},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope === \"Gentle\"","id":"3f28257c-cc33-4c59-b40b-85bc88821f96","savedPayload":{"position":{"x":33817.50271555692,"y":29295.712530312267},"targetPosition":{"x":33548.076869473945,"y":29594.931818674166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fc2fb509-2854-4359-aa1e-b32a2174bd35","savedPayload":{"position":{"x":33548.076869473945,"y":29594.931818674166},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"5226a3d7-c8f8-41bd-9b45-f6238576628f","savedPayload":{"position":{"x":34005.82672873455,"y":29547.817722630363},"targetPosition":{"x":33642.2312063245,"y":29721.07059078792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b38876e-bcad-4cec-90e2-c2e358723d29","savedPayload":{"position":{"x":33642.2312063245,"y":29721.07059078792},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"46e2ecf6-82ae-435d-a3a0-d5e2903404fd","savedPayload":{"position":{"x":33278.333917070595,"y":29894.451567060434},"targetPosition":{"x":33299.00147256256,"y":30297.01571488586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"c296b2ce-4039-48ec-b8bb-99c9d96853eb","savedPayload":{"position":{"x":33609.682057130776,"y":29953.38300829202},"targetPosition":{"x":33434.376532064154,"y":30147.396378822883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d0dbc486-d195-4db3-b895-385088b800ba","savedPayload":{"position":{"x":33434.475794635255,"y":30147.282072860846},"targetPosition":{"x":33299.00147256256,"y":30297.01571488586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"93418d2a-3047-4f80-aa59-0c6fdb35ad43","savedPayload":{"position":{"x":33299.00147256256,"y":30297.01571488586},"targetPosition":{"x":33115.49575849726,"y":30655.993268223905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"1055a2cc-e93a-4dd8-a992-f56553527ddd","savedPayload":{"position":{"x":33115.49575849726,"y":30655.993268223905},"targetPosition":{"x":33239.48474341851,"y":31038.643250235426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"853852d1-d2fa-4e32-a891-e98ca52a556e","savedPayload":{"position":{"x":33687.32525899127,"y":28630.28850235298},"targetPosition":{"x":33979.54395432601,"y":28708.55040929766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"3bdebe73-3546-43f3-b644-73ec62086c66","savedPayload":{"position":{"x":33666.51804208801,"y":27539.983917204023},"targetPosition":{"x":33744.69548060642,"y":27832.06710596675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"36615e86-2c8e-4182-ab3e-5c263c44fcb1","savedPayload":{"position":{"x":33744.70691352631,"y":27832.134330548877},"targetPosition":{"x":33822.954696502624,"y":28124.404333447008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6aae47da-70b4-4fd3-b2da-65a1d645b915","savedPayload":{"position":{"x":33822.86695788699,"y":28124.39717183063},"targetPosition":{"x":33901.15598726982,"y":28416.52491269287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"18261801-3d1b-4dfe-872c-019fff59db4d","savedPayload":{"position":{"x":33901.15572942444,"y":28416.51381216433},"targetPosition":{"x":33979.54395432601,"y":28708.55040929766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"678cc7e5-c7cf-48e5-beee-37455617aa15","savedPayload":{"position":{"x":33979.616026972566,"y":28708.527885863212},"targetPosition":{"x":34193.31786858143,"y":28922.065415950765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a57d76af-2d34-41a0-b68b-a5dda59436b4","savedPayload":{"position":{"x":34193.31786858143,"y":28922.065415950765},"targetPosition":{"x":34406.84857131276,"y":29135.252280701574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"f191391f-f798-4819-b46b-8ae9538ff71f","savedPayload":{"position":{"x":34123.43694196574,"y":28303.266547138595},"targetPosition":{"x":34313.34298525399,"y":28538.488004355862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"65b73feb-09e0-491d-99fd-30f331acac97","savedPayload":{"position":{"x":34436.073537225195,"y":27376.24000730662},"targetPosition":{"x":34483.20864925244,"y":27674.87599559046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fa12e6f8-f9d6-4eb7-9e3b-1e0f17581548","savedPayload":{"position":{"x":34483.301676393894,"y":27675.108504545075},"targetPosition":{"x":34530.31165278271,"y":27973.96671756476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"2eff0ccd-bf54-4456-aff5-9f46cf1469ff","savedPayload":{"position":{"x":35000.38389861486,"y":27593.093039459363},"targetPosition":{"x":34765.46226665505,"y":27783.35172716299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a4af8e92-a505-48fd-8080-8a715cd856dc","savedPayload":{"position":{"x":34765.43852093076,"y":27783.562045970917},"targetPosition":{"x":34530.31165278271,"y":27973.96671756476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ef07d7e4-53c0-4746-a1a2-4b4856cba9df","savedPayload":{"position":{"x":34530.30099769694,"y":27973.974792996265},"targetPosition":{"x":34421.88845899308,"y":28256.249074095707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"2484f7be-38df-4139-94b4-d753e6d50eed","savedPayload":{"position":{"x":34421.82014227279,"y":28256.221955834993},"targetPosition":{"x":34313.34298525399,"y":28538.488004355862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"8ba924d4-3ac9-41de-ba03-02368b3bde5a","savedPayload":{"position":{"x":34313.4187637897,"y":28538.448023932728},"targetPosition":{"x":34360.1918698118,"y":28837.00124492984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8c2601bb-ff4c-4947-b514-96f43313e134","savedPayload":{"position":{"x":34360.1600707038,"y":28837.029615626387},"targetPosition":{"x":34406.84857131276,"y":29135.252280701574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"058068ed-ad77-4574-b61b-58e54f0db35b","savedPayload":{"position":{"x":34682.314020993916,"y":28597.031066228574},"targetPosition":{"x":34544.60399635092,"y":28866.212135868725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9ba67283-694d-42a9-995f-19e53d5519d0","savedPayload":{"position":{"x":34544.60399635092,"y":28866.212135868725},"targetPosition":{"x":34406.84857131276,"y":29135.252280701574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"bd3b401d-5b77-43ba-87e1-c4f9552bf56f","savedPayload":{"position":{"x":34946.04548109355,"y":28861.386648858126},"targetPosition":{"x":34676.46337129765,"y":28998.42894504949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4938fc97-68bf-490e-85a0-66254b98bbac","savedPayload":{"position":{"x":34676.46337129765,"y":28998.42894504949},"targetPosition":{"x":34406.84857131276,"y":29135.252280701574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3f9517c2-52d1-4922-a838-1aacf268bcc7","savedPayload":{"position":{"x":34406.84857131276,"y":29135.252280701574},"targetPosition":{"x":34217.642980461096,"y":30328.208176155946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"97162469-0f8d-4710-81e1-1a1f3070a5ac","savedPayload":{"position":{"x":34462.41262967484,"y":30150.616620789337},"targetPosition":{"x":34217.642980461096,"y":30328.208176155946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"b23bab61-270d-4e0e-bcdc-f57457942e30","savedPayload":{"position":{"x":34822.17690991721,"y":30423.728911300397},"targetPosition":{"x":34516.57606336537,"y":30375.449231047525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a92fd7c1-db55-485b-bb59-7894f339959d","savedPayload":{"position":{"x":34516.582487985164,"y":30375.451352699893},"targetPosition":{"x":34217.642980461096,"y":30328.208176155946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e35699bc-1fe9-4cdc-b029-6361f0ce8592","savedPayload":{"position":{"x":34217.642980461096,"y":30328.208176155946},"targetPosition":{"x":33239.48474341851,"y":31038.643250235426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Standard Run","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"0e9e87f6-4636-4f1f-8091-d1c3090ee345","savedPayload":{"position":{"x":34864.4258519058,"y":31073.451873580834},"targetPosition":{"x":34461.11172798981,"y":31137.136196285086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"4a44eb01-4bb2-4b85-bd64-cab1b6a4678f","savedPayload":{"position":{"x":34461.11172798981,"y":31137.136196285086},"targetPosition":{"x":33939.89373966002,"y":31219.42301087441},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a9042fd2-0f05-4208-91b7-81e00b6493fb","savedPayload":{"position":{"x":33964.17199362247,"y":31212.629100310176},"targetPosition":{"x":33565.701923404486,"y":31275.6154406843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"aadae3ad-5cf1-4417-baad-c6e8b0ab8f31","savedPayload":{"position":{"x":34479.54862907233,"y":31441.47133565945},"targetPosition":{"x":34242.223416518915,"y":31767.17190193582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"bfc7fa92-c54c-43e7-8a6d-f89572d1fee2","savedPayload":{"position":{"x":35534.17506364013,"y":32601.01834737772},"targetPosition":{"x":35227.57871058723,"y":32377.80094191258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5ea229bf-a68c-40f9-a6ac-8bae8171ecda","savedPayload":{"position":{"x":35227.57871058723,"y":32377.80094191258},"targetPosition":{"x":34900.77194830591,"y":32141.7292100267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"585c2f06-93d7-403f-ab70-0aab9c936f72","savedPayload":{"position":{"x":34900.77194830591,"y":32141.7292100267},"targetPosition":{"x":34573.63535245736,"y":31912.267182708572},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"cddeb772-d0f7-4ba8-b303-b623746f3f6e","savedPayload":{"position":{"x":34573.63535245736,"y":31912.267182708572},"targetPosition":{"x":34242.223416518915,"y":31767.17190193582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"4862beb3-990c-43ba-a21b-93ce1227d060","savedPayload":{"position":{"x":34095.983992917565,"y":33156.25692616599},"targetPosition":{"x":33932.40423152793,"y":32787.97422544229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dc6ade59-03df-4aa5-a892-5e225a38cb35","savedPayload":{"position":{"x":33932.40423152793,"y":32787.97422544229},"targetPosition":{"x":33768.76262490215,"y":32419.670081760734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"54428b89-eb5f-4844-9fec-b049f074b3c8","savedPayload":{"position":{"x":33684.54360513825,"y":33221.50127229437},"targetPosition":{"x":33726.58189119683,"y":32820.64500846274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"81b0626e-e4c7-40dc-ae8d-ec5603067461","savedPayload":{"position":{"x":33726.58189119683,"y":32820.64500846274},"targetPosition":{"x":33768.76262490215,"y":32419.670081760734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"05867691-257f-4795-b70f-180ef26713fd","savedPayload":{"position":{"x":33295.15009910802,"y":33072.03862949453},"targetPosition":{"x":33531.844828303714,"y":32745.9038412817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2d354bdf-7142-4921-aec4-60a295569584","savedPayload":{"position":{"x":33531.844828303714,"y":32745.9038412817},"targetPosition":{"x":33768.76262490215,"y":32419.670081760734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"74adc18a-fcb8-47ad-a447-1595f16cc7f6","savedPayload":{"position":{"x":33032.65657548499,"y":32747.964707298193},"targetPosition":{"x":33400.58073167286,"y":32583.817208006196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c760094-3830-48d3-a97c-a9dee27f3c7e","savedPayload":{"position":{"x":33400.58073167286,"y":32583.817208006196},"targetPosition":{"x":33768.76262490215,"y":32419.670081760734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"45a3f428-25a5-4cf2-a13f-08bf3bbc4972","savedPayload":{"position":{"x":32967.43396894057,"y":32336.52703312829},"targetPosition":{"x":33367.984332677246,"y":32377.98795861293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6106746d-8995-425e-8dd9-009894a5dd07","savedPayload":{"position":{"x":33367.984332677246,"y":32377.98795861293},"targetPosition":{"x":33768.76262490215,"y":32419.670081760734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"61a873ab-dc8f-4023-93cd-a861bd965858","savedPayload":{"position":{"x":33768.76262490215,"y":32419.670081760734},"targetPosition":{"x":34005.569456507634,"y":32093.444793007522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"aa98a93e-c928-4900-854a-97b3750182d2","savedPayload":{"position":{"x":34005.569456507634,"y":32093.444793007522},"targetPosition":{"x":34242.223416518915,"y":31767.17190193582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"83f85765-e13b-406a-bd56-7fd820eebc16"}}}],"announcements":[],"id":"e3b43a25-cbb0-4ebc-ac2f-148a56d7d934","savedPayload":{"position":{"x":34242.223416518915,"y":31767.17190193582},"targetPosition":{"x":33891.42358861794,"y":31512.39396500924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"e603a735-7a74-4654-b0bb-50bee2d1e307","savedPayload":{"position":{"x":34965.37684662937,"y":31962.859663977957},"targetPosition":{"x":34566.985205192934,"y":32026.856287734012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"12b3cadf-b8f9-4f43-8799-40c1509f8d07","savedPayload":{"position":{"x":35934.15152043711,"y":32273.569658836277},"targetPosition":{"x":35565.78497710967,"y":32437.163554507133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d45aa91c-a153-4311-8403-8e4492ffcc95","savedPayload":{"position":{"x":35565.78497710967,"y":32437.163554507133},"targetPosition":{"x":35196.94350553596,"y":32600.98818807042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"47191a8e-485b-4f11-be05-c1b6253da95e","savedPayload":{"position":{"x":36019.79323488345,"y":32698.898330709257},"targetPosition":{"x":35618.76476118394,"y":32656.59127038628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a6eff46-6a7b-4a29-81a4-93a751a056bf","savedPayload":{"position":{"x":35618.76476118394,"y":32656.59127038628},"targetPosition":{"x":35196.94350553596,"y":32600.98818807042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"e9cfe84c-e144-4e95-88ce-8bfdffd42f89","savedPayload":{"position":{"x":35850.04803078668,"y":33074.805375387914},"targetPosition":{"x":35523.743612251135,"y":32837.93392343165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9dfa9604-bc08-4df3-980d-2f8b06185031","savedPayload":{"position":{"x":35523.743612251135,"y":32837.93392343165},"targetPosition":{"x":35196.94350553596,"y":32600.98818807042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"8c332bfe-ab0c-4905-9440-86091b7040b1","savedPayload":{"position":{"x":35526.96283562273,"y":33337.71267605346},"targetPosition":{"x":35362.78202114205,"y":32969.172911299174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e358399e-001d-4d07-83e4-2bf9d65ed1bd","savedPayload":{"position":{"x":35362.78202114205,"y":32969.172911299174},"targetPosition":{"x":35196.94350553596,"y":32600.98818807042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"51ec782d-f54f-46b5-b45a-9db5cf7a380e","savedPayload":{"position":{"x":35078.386460330876,"y":33413.44311371471},"targetPosition":{"x":35120.761185118834,"y":33012.25356399207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c64c6aff-2525-4e58-9e27-ac7a8b3dc8cb","savedPayload":{"position":{"x":35120.761185118834,"y":33012.25356399207},"targetPosition":{"x":35196.94350553596,"y":32600.98818807042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08f82342-86ce-4222-b954-968397dd2d33","savedPayload":{"position":{"x":35196.94350553596,"y":32600.98818807042},"targetPosition":{"x":34870.15982787527,"y":32364.087714314013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"170cad22-eef5-48c3-b5d9-fae484dab493","savedPayload":{"position":{"x":34870.15982787527,"y":32364.087714314013},"targetPosition":{"x":34566.985205192934,"y":32026.856287734012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"83f85765-e13b-406a-bd56-7fd820eebc16"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"0320d330-7d8e-4577-8ea3-debcdf5c4971","savedPayload":{"position":{"x":35201.0639175972,"y":33465.70824658257},"targetPosition":{"x":34945.200145626884,"y":33137.04979310342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6611a627-dfaf-4248-8aaa-e27fb7ac7141","savedPayload":{"position":{"x":34945.200145626884,"y":33137.04979310342},"targetPosition":{"x":34692.15922488175,"y":32823.47675811349},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"51f5f720-c0df-4209-a32f-80f67688004d","savedPayload":{"position":{"x":34403.59582771485,"y":33576.18639286568},"targetPosition":{"x":34547.81576381235,"y":33199.90475745102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"62ebc71f-7dab-4090-9f0e-c557cbbf5045","savedPayload":{"position":{"x":34547.81576381235,"y":33199.90475745102},"targetPosition":{"x":34692.15922488175,"y":32823.47675811349},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9cfa9122-1b64-4a37-877f-1c722493562a","savedPayload":{"position":{"x":34692.15922488175,"y":32823.47675811349},"targetPosition":{"x":34629.497980836786,"y":32425.186055399783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"73f3e391-cceb-4d27-932f-7b3c76d63b24","savedPayload":{"position":{"x":34629.497980836786,"y":32425.186055399783},"targetPosition":{"x":34566.985205192934,"y":32026.856287734012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e3b43a25-cbb0-4ebc-ac2f-148a56d7d934"}}}],"announcements":[],"id":"913c2adb-a405-40e1-b661-300ec59c4ea0","savedPayload":{"position":{"x":34566.985205192934,"y":32026.856287734012},"targetPosition":{"x":34242.223416518915,"y":31767.17190193582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"be65b94d-3942-43c3-96aa-354447d5d591","savedPayload":{"position":{"x":35266.86864213329,"y":32080.796230194483},"targetPosition":{"x":34898.47957079251,"y":32244.880649959683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"fb87ce68-53e9-4553-a0d4-c996920c9b7a","savedPayload":{"position":{"x":35881.98510857697,"y":33453.83239370252},"targetPosition":{"x":35556.24500068716,"y":33217.03786906918},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1c9f9e96-a31d-42dc-a72f-ee8c25057426","savedPayload":{"position":{"x":35556.24500068716,"y":33217.03786906918},"targetPosition":{"x":35230.10643190333,"y":32980.148545011216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"2d8cbbda-0c6c-4f48-ab1a-4f3ee6cb46d1","savedPayload":{"position":{"x":35144.11024531394,"y":33766.74632003621},"targetPosition":{"x":35186.14435295862,"y":33366.033340052745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e4719fbb-2730-46bf-9593-75e9544d860c","savedPayload":{"position":{"x":35186.14435295862,"y":33366.033340052745},"targetPosition":{"x":35230.10643190333,"y":32980.148545011216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"60819e62-c36a-4cf6-86ea-09aa1046f1b7","savedPayload":{"position":{"x":35230.10643190333,"y":32980.148545011216},"targetPosition":{"x":35061.15284169607,"y":32613.19638922832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"297f0537-a281-46ab-89a4-9aab36495673","savedPayload":{"position":{"x":35061.15284169607,"y":32613.19638922832},"targetPosition":{"x":34898.47957079251,"y":32244.880649959683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e3b43a25-cbb0-4ebc-ac2f-148a56d7d934"}}}],"announcements":[],"id":"83f85765-e13b-406a-bd56-7fd820eebc16","savedPayload":{"position":{"x":34898.47957079251,"y":32244.880649959683},"targetPosition":{"x":34566.985205192934,"y":32026.856287734012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cf907f3e-a01a-4ffb-9e3b-23ea0d8f34d1","savedPayload":{"position":{"x":33892.049283641114,"y":31512.87348125915},"targetPosition":{"x":33565.701923404486,"y":31275.6154406843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"fa95edc3-acc6-44c0-acb1-47583e1ff54a","savedPayload":{"position":{"x":33690.80820420145,"y":32071.297117691756},"targetPosition":{"x":33628.26011341306,"y":31673.51260213062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"67446ae0-3e01-451b-8689-d9c7ea48a1f4","savedPayload":{"position":{"x":33629.00012297632,"y":31673.95650524724},"targetPosition":{"x":33565.701923404486,"y":31275.6154406843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3f7a5501-fa20-4b3b-b038-2297cb2fd04e","savedPayload":{"position":{"x":33565.701923404486,"y":31275.6154406843},"targetPosition":{"x":33239.48474341851,"y":31038.643250235426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"938021bb-3f71-4d07-961b-bdac0c208ec6","savedPayload":{"position":{"x":33385.03651416626,"y":31721.91869755804},"targetPosition":{"x":33115.24150182601,"y":31421.868407518647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"dc7931a1-ce6a-4a8b-bc84-65cbfc4ebbd0","savedPayload":{"position":{"x":32676.438509295866,"y":32098.960417908125},"targetPosition":{"x":32895.535995884864,"y":31760.66588131618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f75b57a-e00c-4479-9cf0-7c87eef8254b","savedPayload":{"position":{"x":32895.5338274171,"y":31760.68558474898},"targetPosition":{"x":33115.24150182601,"y":31421.868407518647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2371e1b0-7d6e-47d8-92b3-8447bd933af5","savedPayload":{"position":{"x":33115.24150182601,"y":31421.868407518647},"targetPosition":{"x":33239.48474341851,"y":31038.643250235426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"77e56192-a0b0-4786-afdb-8e59ba757ccf","savedPayload":{"position":{"x":33239.48474341851,"y":31038.643250235426},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S3 - 2H Down","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"0c6d7b91-4bbf-4e27-850c-6348ffea4055","savedPayload":{"position":{"x":31634.350378426207,"y":30259.571095345415},"targetPosition":{"x":32263.43911849039,"y":30259.947220728467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9c8b0541-0125-4ed1-8bcb-2d8a539bcc85","savedPayload":{"position":{"x":32263.43911849039,"y":30259.947220728467},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"b09863b6-7ea3-4929-8b3c-f99409fb1bf1","savedPayload":{"position":{"x":31696.88500088226,"y":29870.632625415637},"targetPosition":{"x":32294.89171998345,"y":30065.140782336246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"26835b4a-83a2-4209-84a0-e38c74ff993a","savedPayload":{"position":{"x":32294.89171998345,"y":30065.140782336246},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"2fc1bc08-9def-4a37-abc3-dbac24a2c360","savedPayload":{"position":{"x":31875.884827815316,"y":29520.365687488113},"targetPosition":{"x":32384.487164002785,"y":29890.063455449697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1fa5642c-48f4-492b-81d3-5d752decd8af","savedPayload":{"position":{"x":32384.487164002785,"y":29890.063455449697},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Down","code":"chart.at02hs.bollingerBand.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","id":"07c23ae8-6440-4b6e-aabe-67afdba80c7c","savedPayload":{"position":{"x":32154.209372947636,"y":29242.349943028978},"targetPosition":{"x":32523.67032296668,"y":29751.085106238465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c14a9e3b-6d84-44c9-8273-1a37850087b4","savedPayload":{"position":{"x":32523.67032296668,"y":29751.085106238465},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at02hs.bollingerBand.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","id":"57d558fd-ecfa-429a-9304-88f41b32b44c","savedPayload":{"position":{"x":32504.830345617527,"y":29063.85702318619},"targetPosition":{"x":32698.994485377014,"y":29661.828315918163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ab49ca45-333d-4ed9-99a1-a3ca632cbbb2","savedPayload":{"position":{"x":32698.994485377014,"y":29661.828315918163},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Side","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Side\"","id":"261d9835-4d23-4b58-946d-b9324d920273","savedPayload":{"position":{"x":32893.22119985897,"y":29002.336709240757},"targetPosition":{"x":32893.22305153142,"y":29631.07615103375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4d450dc4-bfbb-4779-b070-cac385b809c7","savedPayload":{"position":{"x":32893.22305153142,"y":29631.07615103375},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H RSI > 60","code":"chart.at24hs.rsi14.value < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.rsi14.value > 60","id":"c0afd580-e4b8-4c7c-ac4c-7370e5a79a98","savedPayload":{"position":{"x":33281.4681278924,"y":29063.86071973356},"targetPosition":{"x":33087.3880414573,"y":29661.86609096789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"95207d90-4af8-4b5a-8321-0076e8b8929d","savedPayload":{"position":{"x":33087.3880414573,"y":29661.86609096789},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"92ef2b33-6bd1-4ab7-91a4-ddb3e035ed08","savedPayload":{"position":{"x":33632.012109517724,"y":29242.375556754567},"targetPosition":{"x":33262.687218260275,"y":29751.231513287654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3ac7ebe1-3f6f-4e35-a8a2-f39aa509c849","savedPayload":{"position":{"x":33262.687218260275,"y":29751.231513287654},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","id":"6ef3aec8-78cb-4942-bcfd-ff860b2b7971","savedPayload":{"position":{"x":33910.39444114047,"y":29520.60636592229},"targetPosition":{"x":33401.847358196974,"y":29890.34803965414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5af02e84-f067-45ee-8d7e-44966254e430","savedPayload":{"position":{"x":33401.847358196974,"y":29890.34803965414},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20017afc-2e99-4596-9a1d-41b8b8ee7999","savedPayload":{"position":{"x":32893.236637209084,"y":30260.196412414953},"targetPosition":{"x":33087.874215175114,"y":30859.83394852712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"e6080867-291e-4dc7-b00f-582656e25e80","savedPayload":{"position":{"x":33087.874215175114,"y":30859.83394852712},"targetPosition":{"x":33217.802289890395,"y":31259.358809115663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"890f22bb-d291-4fdd-b444-5afbea478f13","savedPayload":{"position":{"x":33996.096905529594,"y":29767.64086654404},"targetPosition":{"x":33805.65783204276,"y":30141.695325277316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ef921c85-8bd3-49cc-aeaa-2556181fec27","savedPayload":{"position":{"x":33805.65783204276,"y":30141.695325277316},"targetPosition":{"x":33599.576454871414,"y":30510.782338093184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d4217f36-b6e4-45dc-979d-5ad1e74d0b85","savedPayload":{"position":{"x":33599.576454871414,"y":30510.782338093184},"targetPosition":{"x":33408.94602515501,"y":30885.02159265233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"92cd971f-1315-425e-883c-4adefb12883e","savedPayload":{"position":{"x":33408.94602515501,"y":30885.02159265233},"targetPosition":{"x":33217.802289890395,"y":31259.358809115663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"f5611889-2d66-4b5a-84ca-1bd444e56cb0","savedPayload":{"position":{"x":33395.423835013324,"y":29567.707236019025},"targetPosition":{"x":33709.38286226146,"y":30112.552280287062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96fdbdfc-c7d9-4e54-972c-de01d3f58a76","savedPayload":{"position":{"x":33709.38286226146,"y":30112.552280287062},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"ccd315a6-ae1c-4fcf-b6d4-deac89aef390","savedPayload":{"position":{"x":33778.40641159468,"y":29431.615941930762},"targetPosition":{"x":33908.92112230485,"y":30046.80251988933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"382fb23e-b4bc-4792-a492-328fa6201f6c","savedPayload":{"position":{"x":33908.92112230485,"y":30046.80251988933},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"cbc7b7f8-b6f1-4752-9259-6372178089e4","savedPayload":{"position":{"x":34170.783725012014,"y":29411.253122777303},"targetPosition":{"x":34105.031023089345,"y":30036.658201403985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"74975af2-4802-47bc-8251-97981c77dc4a","savedPayload":{"position":{"x":34105.031023089345,"y":30036.658201403985},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Down","code":"chart.at02hs.bollingerBand.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","id":"b7bdf1ce-16a5-4fc0-a87b-f8815615ef99","savedPayload":{"position":{"x":34550.61749887825,"y":29513.125500171263},"targetPosition":{"x":34294.97437106376,"y":30087.594297581873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a1e09269-19e5-4dff-8aeb-66d8bf6bd96d","savedPayload":{"position":{"x":34294.97437106376,"y":30087.594297581873},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at02hs.bollingerBand.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","id":"c516d181-ad48-49cd-a298-fddb6e91de94","savedPayload":{"position":{"x":34880.39014568893,"y":29727.362169392713},"targetPosition":{"x":34459.88109390561,"y":30194.77025937824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d57a06c7-d40b-4488-93fe-f7441dd299c6","savedPayload":{"position":{"x":34459.88109390561,"y":30194.77025937824},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Side","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Side\"","id":"9fabe671-7d14-43b5-ba69-831f4f2a066f","savedPayload":{"position":{"x":35127.70499575345,"y":30032.837976998024},"targetPosition":{"x":34583.614143110055,"y":30347.712936148797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"177c777c-ff05-4dc0-8b6b-d663b7329938","savedPayload":{"position":{"x":34583.614143110055,"y":30347.712936148797},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H RSI > 60","code":"chart.at24hs.rsi14.value < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.rsi14.value > 60","id":"e48e0eea-8553-4baa-ab82-de8e822619b3","savedPayload":{"position":{"x":35232.973925329425,"y":30343.470555819193},"targetPosition":{"x":34654.06615516728,"y":30531.468555641797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ee231079-650d-4046-8e5b-ad3a82e09efa","savedPayload":{"position":{"x":34654.06615516728,"y":30531.468555641797},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"241ea7c4-ec8c-4f74-994f-27cdc3cc5084","savedPayload":{"position":{"x":35289.263598407466,"y":30849.634778970838},"targetPosition":{"x":34664.35817900187,"y":30727.80228253821},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b1bb2780-2f92-47da-9ea5-39d0397e7144","savedPayload":{"position":{"x":34664.35817900187,"y":30727.80228253821},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","id":"35f95b09-f037-43ba-96f9-fa9d7d677bea","savedPayload":{"position":{"x":35186.911624698034,"y":31174.495365223673},"targetPosition":{"x":34613.44451250334,"y":30917.967080169867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6d92e5f1-7164-4f38-9a56-07334aee23fd","savedPayload":{"position":{"x":34613.44451250334,"y":30917.967080169867},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2f0018b8-a386-4eb2-8cf8-b61c00af7639","savedPayload":{"position":{"x":34039.16510092277,"y":30662.160080407033},"targetPosition":{"x":33617.50526924846,"y":31130.04262069468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"ef95cbde-2d8b-4b1e-99a5-887e8ae2134c","savedPayload":{"position":{"x":34064.66251833871,"y":31147.655408084436},"targetPosition":{"x":33889.356993272086,"y":31341.668778615298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96060481-8324-4e13-808e-110537619ad7","savedPayload":{"position":{"x":33827.692335875254,"y":31119.423819500727},"targetPosition":{"x":33617.50526924846,"y":31130.04262069468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a937976d-4084-4184-a913-910b75ed6659","savedPayload":{"position":{"x":33617.50526924846,"y":31130.04262069468},"targetPosition":{"x":33217.802289890395,"y":31259.358809115663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"def5d0af-b5ee-43f9-9ea0-0b73cd37d82e","savedPayload":{"position":{"x":33217.802289890395,"y":31259.358809115663},"targetPosition":{"x":33027.197109693196,"y":31632.476242375036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"7e0c459e-9cc8-4d5a-bc57-fb82c79c09c5","savedPayload":{"position":{"x":35135.70214605619,"y":30167.516083927436},"targetPosition":{"x":35293.07724412037,"y":30440.26764173129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"e3edba7e-b9f0-4f02-8f66-ce5b9829d767","savedPayload":{"position":{"x":35922.91984041911,"y":29348.815450539747},"targetPosition":{"x":35765.484647432946,"y":29621.567567535756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"076b5c63-1619-410e-9ee5-1fa66f3d035f","savedPayload":{"position":{"x":35765.484647432946,"y":29621.567567535756},"targetPosition":{"x":35607.95729325596,"y":29894.457895979314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"094675d4-792f-4529-9f36-55540ba6c57d","savedPayload":{"position":{"x":35607.95729325596,"y":29894.457895979314},"targetPosition":{"x":35450.49478104098,"y":30167.39244502679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"7318274d-9569-419a-ba18-c3c1df7191f8","savedPayload":{"position":{"x":35450.49478104098,"y":30167.39244502679},"targetPosition":{"x":35293.07724412037,"y":30440.26764173129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"d4d2eb85-82c2-4c39-9f1f-9c865905dd5b","savedPayload":{"position":{"x":35293.07724412037,"y":30440.26764173129},"targetPosition":{"x":35288.817725527595,"y":30747.9133770426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"295179a4-3458-455d-b4de-549db3a926a8","savedPayload":{"position":{"x":35288.817725527595,"y":30747.9133770426},"targetPosition":{"x":35289.0497852532,"y":31090.402311553746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"3466c2e0-e14f-4e76-9735-651f84617051","savedPayload":{"position":{"x":35692.920333218164,"y":30268.646393535015},"targetPosition":{"x":35659.66370706001,"y":30581.829281582708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"0ecb1abe-ce06-4d16-a850-b180b6b66252","savedPayload":{"position":{"x":36605.838815369854,"y":29816.50777554093},"targetPosition":{"x":36420.67086759038,"y":30071.16215403728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"30e0b04a-1a96-4850-ae5c-f3e85da03da3","savedPayload":{"position":{"x":36420.67086759038,"y":30071.16215403728},"targetPosition":{"x":36235.36714817673,"y":30325.959128296938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"f6e4f3d5-a156-48d8-9c93-1109c5a5fca5","savedPayload":{"position":{"x":36861.988247619585,"y":30391.53865762637},"targetPosition":{"x":36548.78807948588,"y":30358.761659611344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a40f8de3-9ee1-47f7-9f91-71dd2240ab98","savedPayload":{"position":{"x":36548.78807948588,"y":30358.761659611344},"targetPosition":{"x":36235.36714817673,"y":30325.959128296938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"22980027-50ca-447a-a53c-fa84e87cfc4b","savedPayload":{"position":{"x":36235.36714817673,"y":30325.959128296938},"targetPosition":{"x":35947.5490253868,"y":30453.9215256811},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"ae0768db-6f1c-438d-af27-223b71c98b26","savedPayload":{"position":{"x":35947.5490253868,"y":30453.9215256811},"targetPosition":{"x":35659.66370706001,"y":30581.829281582708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"76c590b2-d1f8-497d-aadc-084d4500772c","savedPayload":{"position":{"x":35659.66370706001,"y":30581.829281582708},"targetPosition":{"x":35474.3107204167,"y":30836.26619004085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fcc3e4a-8a02-4dbd-82b8-b0f10843f527","savedPayload":{"position":{"x":35474.3107204167,"y":30836.26619004085},"targetPosition":{"x":35289.0497852532,"y":31090.402311553746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"1f9b31ce-64a5-4606-ba43-cdab0eb3dece","savedPayload":{"position":{"x":35888.51870731133,"y":30897.094478356263},"targetPosition":{"x":35588.76478443183,"y":30993.81670423616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"811a932e-9ad1-454e-aa71-86c100807627","savedPayload":{"position":{"x":35588.76478443183,"y":30993.81670423616},"targetPosition":{"x":35289.0497852532,"y":31090.402311553746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"4c2c3a4f-8cca-4211-b3d1-180266f99704","savedPayload":{"position":{"x":35888.02932685479,"y":31285.56938726938},"targetPosition":{"x":35588.475187273674,"y":31188.07770374712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7da16723-66b0-44a8-80a2-32afbfc33eda","savedPayload":{"position":{"x":35588.475187273674,"y":31188.07770374712},"targetPosition":{"x":35289.0497852532,"y":31090.402311553746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"05204106-bf49-4b86-be1e-c04acfff70ff","savedPayload":{"position":{"x":35289.0497852532,"y":31090.402311553746},"targetPosition":{"x":34270.93031373407,"y":31829.561903674166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"b739c187-7a8d-4877-b35d-db44832293a9","savedPayload":{"position":{"x":34582.036710214496,"y":31878.912006201877},"targetPosition":{"x":34270.93031373407,"y":31829.561903674166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"79d58168-9a31-4fe8-9e7e-19212ea5b481","savedPayload":{"position":{"x":34611.957839823925,"y":32060.94845886817},"targetPosition":{"x":34306.356993272086,"y":32012.668778615298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4a32c55d-ae86-4918-b898-ad027b574e14","savedPayload":{"position":{"x":34456.25406941115,"y":32084.595626386963},"targetPosition":{"x":34270.93031373407,"y":31829.561903674166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"96a417b6-09d8-4b1e-9778-3bef281c7849","savedPayload":{"position":{"x":34270.93031373407,"y":31829.561903674166},"targetPosition":{"x":33027.197109693196,"y":31632.476242375036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Slow Run","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"c57b9aaa-edc1-4a24-a2f9-1eeb3eed3d5c","savedPayload":{"position":{"x":34130.26731414797,"y":32800.3400427803},"targetPosition":{"x":33790.66857191591,"y":32553.726624302923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"22d1ba82-cecd-4ebf-a9b0-c02a2dcc4385","savedPayload":{"position":{"x":33790.66857191591,"y":32553.726624302923},"targetPosition":{"x":33432.69324860659,"y":32293.801129954125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f41b282c-06b8-4a86-9c94-18173ce77526","savedPayload":{"position":{"x":33432.82333847737,"y":32294.4434055754},"targetPosition":{"x":33092.84480699051,"y":32047.383542560598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"214e21c2-bdab-4d05-91b2-02f327d177b8","savedPayload":{"position":{"x":33560.189047347376,"y":33061.25591731097},"targetPosition":{"x":33168.17755880856,"y":32910.85719093055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"401d2bc0-0193-42de-8a65-df43242eb516","savedPayload":{"position":{"x":31019.353328127647,"y":34771.29319333476},"targetPosition":{"x":30873.113188713138,"y":34459.5430677265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b023b429-024c-46eb-86f8-6e4e23be3b3c","savedPayload":{"position":{"x":30873.113188713138,"y":34459.5430677265},"targetPosition":{"x":30730.968945388893,"y":34140.681493701086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ee7cd341-d632-47d6-9ddf-4462e6961461","savedPayload":{"position":{"x":30730.968945388893,"y":34140.681493701086},"targetPosition":{"x":30588.167033308324,"y":33817.51375204604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5c96f85d-f36d-496f-8c82-68bdbde4456f","savedPayload":{"position":{"x":32841.61331690757,"y":33175.13217299862},"targetPosition":{"x":33168.17755880856,"y":32910.85719093055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593","savedPayload":{"position":{"x":33168.17755880856,"y":32910.85719093055},"targetPosition":{"x":33099.11889863151,"y":32474.052057676712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"54a1a04f-b59d-40d9-91d6-9716c0198983","savedPayload":{"position":{"x":33573.69376797636,"y":33571.86718032515},"targetPosition":{"x":33233.80391345122,"y":33325.478360001805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"23d9abaa-63cc-4aef-abaf-7b493213cd29","savedPayload":{"position":{"x":32449.77558908902,"y":34154.4611915215},"targetPosition":{"x":32015.40384472738,"y":34108.56368300236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"28be9fea-5e5c-4c99-b4a4-6c01a831d9ce","savedPayload":{"position":{"x":32015.40384472738,"y":34108.56368300236},"targetPosition":{"x":31568.575996973697,"y":34061.39642915175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"c59f1c98-a4e9-40c1-8690-6543baa7a966","savedPayload":{"position":{"x":32283.759517871575,"y":34582.810236984864},"targetPosition":{"x":31931.786549495515,"y":34326.11237323376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c24d0f99-6491-40b3-94d9-49f91d354f3c","savedPayload":{"position":{"x":31931.786549495515,"y":34326.11237323376},"targetPosition":{"x":31568.575996973697,"y":34061.39642915175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"d6b4d297-a5fa-4561-acb0-b8d3b891912e","savedPayload":{"position":{"x":31946.197478846712,"y":34889.8385827318},"targetPosition":{"x":31751.053079962017,"y":34472.602873182244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c3f66d39-dc88-4049-895a-378f492a7d35","savedPayload":{"position":{"x":31751.053079962017,"y":34472.602873182244},"targetPosition":{"x":31568.575996973697,"y":34061.39642915175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"e9ac7090-a4d5-409d-9432-0d422f60e6e1","savedPayload":{"position":{"x":31475.217579292843,"y":34943.29649864423},"targetPosition":{"x":31521.155688266826,"y":34508.526991908395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a05e64ed-4262-42f1-b9dc-cc14f8b27c2d","savedPayload":{"position":{"x":31521.155688266826,"y":34508.526991908395},"targetPosition":{"x":31568.575996973697,"y":34061.39642915175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"cb158763-cb2f-494b-88ab-dafeb3825ca4","savedPayload":{"position":{"x":31046.924625195723,"y":34779.00271509945},"targetPosition":{"x":31304.05023460572,"y":34425.23837899979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"386bbe6b-9082-47e7-b750-e0e9d16a7030","savedPayload":{"position":{"x":31304.05023460572,"y":34425.23837899979},"targetPosition":{"x":31568.575996973697,"y":34061.39642915175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"32813be2-a6cd-4e5d-9a58-87eae5b3b5e9","savedPayload":{"position":{"x":33456.2367626283,"y":34169.229931685244},"targetPosition":{"x":33390.31829204923,"y":33754.57207201343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"264bdd5b-5246-4a3f-bd09-5c50baf57963","savedPayload":{"position":{"x":33390.31829204923,"y":33754.57207201343},"targetPosition":{"x":33233.80391345122,"y":33325.478360001805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"308d9cf6-beba-4d14-9b90-bb11409e3835","savedPayload":{"position":{"x":32678.163507437253,"y":36556.91105564189},"targetPosition":{"x":32834.64820004886,"y":36148.98136136614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a787ffbe-ea25-41cb-a719-de115285eead","savedPayload":{"position":{"x":32834.64820004886,"y":36148.98136136614},"targetPosition":{"x":32991.201109072026,"y":35740.89140224141},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d4b41076-5b23-498d-bc3e-1ccf277a1a43","savedPayload":{"position":{"x":32739.83720167254,"y":34005.06095530531},"targetPosition":{"x":32986.689244005254,"y":33665.01100359143},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"7cb4214c-3e3e-4a70-ad14-6ae2a568f24c","savedPayload":{"position":{"x":32986.689244005254,"y":33665.01100359143},"targetPosition":{"x":33233.80391345122,"y":33325.478360001805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593"}}}],"announcements":[],"id":"592ad0d7-d583-4827-8ae6-48f6ad25c1a3","savedPayload":{"position":{"x":33233.80391345122,"y":33325.478360001805},"targetPosition":{"x":33168.17755880856,"y":32910.85719093055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"580ecace-0d6d-4632-ad8d-e6dc86df51c8","savedPayload":{"position":{"x":33668.801065501335,"y":33887.456734513806},"targetPosition":{"x":33276.768273175025,"y":33736.54711405289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"bf6a5ecf-f5c8-4d13-a15c-1b567422bee0","savedPayload":{"position":{"x":34576.829412485866,"y":37000.01142562244},"targetPosition":{"x":34410.432322905384,"y":36626.06517025616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ca87de8b-af92-4d83-af59-7c71f17e1be4","savedPayload":{"position":{"x":34410.432322905384,"y":36626.06517025616},"targetPosition":{"x":34243.930379694895,"y":36251.90943343497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"d626af7e-c8bb-4e17-95e5-ba5abda158d8","savedPayload":{"position":{"x":33763.03089309385,"y":36914.47628256974},"targetPosition":{"x":34003.45132162593,"y":36583.27161248551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"98a76d2a-1ec4-413c-85b2-59865c6e1187","savedPayload":{"position":{"x":34003.45132162593,"y":36583.27161248551},"targetPosition":{"x":34243.930379694895,"y":36251.90943343497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9406f175-4d00-436d-ab9e-27081d36611b","savedPayload":{"position":{"x":34243.930379694895,"y":36251.90943343497},"targetPosition":{"x":34286.475860589395,"y":35844.37747430465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"aef3e320-bbaf-42e5-8083-21157428bfaf","savedPayload":{"position":{"x":33126.35798120075,"y":34129.20434251816},"targetPosition":{"x":33276.768273175025,"y":33736.54711405289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593"}}}],"announcements":[],"id":"9b594083-3fb0-4dfa-ba4b-1b1ada8687fe","savedPayload":{"position":{"x":33276.768273175025,"y":33736.54711405289},"targetPosition":{"x":33233.80391345122,"y":33325.478360001805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"80d81cb5-6a3a-4eff-ad9f-5590450c7366","savedPayload":{"position":{"x":33158.365096722715,"y":32462.606975036346},"targetPosition":{"x":33092.84480699051,"y":32047.383542560598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"8d20508d-dc45-4488-8a09-814a24826d00","savedPayload":{"position":{"x":32806.905084060476,"y":32680.453294176434},"targetPosition":{"x":32744.356993272086,"y":32282.668778615298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c04c40be-cd86-4c0e-b802-681f5c47a7f7","savedPayload":{"position":{"x":32846.11743673657,"y":32387.282950915138},"targetPosition":{"x":33092.84480699051,"y":32047.383542560598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3ea826ac-fe6b-4b8c-a0dc-f830202e8306","savedPayload":{"position":{"x":33092.84480699051,"y":32047.383542560598},"targetPosition":{"x":33027.197109693196,"y":31632.476242375036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"0400f408-3b91-42fd-839b-c71d8212e22b","savedPayload":{"position":{"x":32424.640743292275,"y":32175.998602689077},"targetPosition":{"x":32653.493876842065,"y":31823.167177806845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"761d7668-7a62-4221-be67-5754f4b7b2f2","savedPayload":{"position":{"x":32352.256298910706,"y":32433.62407361041},"targetPosition":{"x":32571.508942630673,"y":32095.215305371734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"00e6ad00-1176-41ab-a1f3-52a59aa8f7cd","savedPayload":{"position":{"x":32242.00054662029,"y":31910.80310333033},"targetPosition":{"x":32653.493876842065,"y":31823.167177806845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f83a0cfd-237d-4b3f-b4f0-9fa0a71b00bb","savedPayload":{"position":{"x":32653.493876842065,"y":31823.167177806845},"targetPosition":{"x":33027.197109693196,"y":31632.476242375036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4af71378-a61f-4d1d-a1cd-6933897ef3bd","savedPayload":{"position":{"x":33027.197109693196,"y":31632.476242375036},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S8 - 4H Up","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"0b8368d3-b1b1-413b-bbeb-95641a85b80f","savedPayload":{"position":{"x":32583.02153148494,"y":30375.069170464114},"targetPosition":{"x":32890.507807742724,"y":30666.144907896156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6034fcd2-8d4d-48b8-a392-18535fa70a53","savedPayload":{"position":{"x":32890.507807742724,"y":30666.144907896156},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"5e94af5d-2be9-4ae9-ae44-2867f755a827","savedPayload":{"position":{"x":32771.60113409807,"y":30224.788572225458},"targetPosition":{"x":32985.067261121585,"y":30591.65661580369},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f811cfed-9f3e-4211-84da-066b038d0b33","savedPayload":{"position":{"x":32985.067261121585,"y":30591.65661580369},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"9d5052c6-8411-4f18-ace8-17f021dfd5e2","savedPayload":{"position":{"x":32997.279518098934,"y":30134.976526965966},"targetPosition":{"x":33098.83303822341,"y":30547.231787359233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d4f2d1aa-32fd-4345-8291-3da0a9bf3fc5","savedPayload":{"position":{"x":33098.83303822341,"y":30547.231787359233},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","id":"3347b5df-6552-43dd-8265-43bb7d87df98","savedPayload":{"position":{"x":33236.19812252272,"y":30108.997090796624},"targetPosition":{"x":33217.92836568535,"y":30533.18565473396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7a4b6d88-b433-435d-a683-6eb73780f27b","savedPayload":{"position":{"x":33217.92836568535,"y":30533.18565473396},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","id":"3bf685d6-ac1f-4bab-a7f1-8450ee657948","savedPayload":{"position":{"x":33473.11688690986,"y":30153.501414040173},"targetPosition":{"x":33336.27708618797,"y":30555.259147958208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22eebcad-ee09-4e3b-897e-9495bb82784d","savedPayload":{"position":{"x":33336.27708618797,"y":30555.259147958208},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Side or 1H Extreme or Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\" || (chart.at04hs.bollingerSubChannel.slope === \"Gentle\" && (chart.at01hs.bollingerSubChannel.slope === \"Extreme\" || chart.at01hs.bollingerSubChannel.slope === \"Side\"))","id":"d5a69ea3-5ae1-4e4b-b858-8844f20f6369","savedPayload":{"position":{"x":33688.10523565221,"y":30263.125417578416},"targetPosition":{"x":33443.773670688315,"y":30610.037447064653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"54ac9a91-76eb-4d28-9d75-bcad0008c481","savedPayload":{"position":{"x":33443.773670688315,"y":30610.037447064653},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"e84f9d0b-15fc-4656-a2ed-392304b44df3","savedPayload":{"position":{"x":33863.57761044307,"y":30428.90350360676},"targetPosition":{"x":33531.52386726751,"y":30692.94592730243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"658b7720-b18e-42d0-9cb3-7f5c71928409","savedPayload":{"position":{"x":33531.52386726751,"y":30692.94592730243},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","id":"84b0abb3-cf34-491e-9436-4fdb07ee4977","savedPayload":{"position":{"x":33985.280778200904,"y":30637.388456021126},"targetPosition":{"x":33592.38327848182,"y":30797.24063448982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f39b86b4-5a2a-470c-8503-0ee11eab51f6","savedPayload":{"position":{"x":33592.38327848182,"y":30797.24063448982},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","id":"3bde8f4f-c2e3-413b-8df1-37aeb20a85f9","savedPayload":{"position":{"x":34043.32401464137,"y":30871.65436333817},"targetPosition":{"x":33621.38059220496,"y":30914.477414693258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"04fd8c8d-8074-4932-b3e1-56357c7829ea","savedPayload":{"position":{"x":33621.38059220496,"y":30914.477414693258},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 2: 02H, 03H, 04H, 06H, all Up && 2H Steep && 1H, 6H NOT Gentle","code":"chart.at24hs.bollingerChannel.direction + chart.at24hs.bollingerBand.slope > chart.at01hs.rsi14.value","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerSubChannel.direction === \"Up\" && chart.at03hs.bollingerSubChannel.direction === \"Up\" && chart.at04hs.bollingerSubChannel.direction === \"Up\" && chart.at06hs.bollingerSubChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Steep\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\" && chart.at06hs.bollingerSubChannel.slope != \"Gentle\") {false} else {true}","id":"cf1a034f-093e-422f-ba6f-ec4c3ce091d2","savedPayload":{"position":{"x":34030.35077514018,"y":31104.321423914676},"targetPosition":{"x":33616.07981062104,"y":31035.056200409377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"69c8d1ca-52b4-4eed-a65b-7a8a870bb46d","savedPayload":{"position":{"x":33616.07981062104,"y":31035.056200409377},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"64643171-239b-49ac-adc7-0124075eb96e","savedPayload":{"position":{"x":33198.90105550597,"y":30956.877809899306},"targetPosition":{"x":33028.14648636911,"y":31378.695917323454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9c8b28ef-af88-416c-9262-20efbf357408","savedPayload":{"position":{"x":33028.14648636911,"y":31378.695917323454},"targetPosition":{"x":32835.90089509466,"y":31756.649802761232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"09286632-34ad-4ea0-9f01-32bd89b20900","savedPayload":{"position":{"x":34447.590158460414,"y":31232.025739290348},"targetPosition":{"x":34044.21217345816,"y":31363.108994682723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f75343e2-3c65-413b-85de-8e88a1f91e09","savedPayload":{"position":{"x":34044.21217345816,"y":31363.108994682723},"targetPosition":{"x":33640.74002460985,"y":31494.101999004426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"68074fb6-7ca9-43a7-a83c-abcd0c55148c","savedPayload":{"position":{"x":33640.74002460985,"y":31494.101999004426},"targetPosition":{"x":33239.78472574559,"y":31625.86269368105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"07f812fb-602f-4713-871d-648faa64a6ce","savedPayload":{"position":{"x":33239.78472574559,"y":31625.86269368105},"targetPosition":{"x":32835.90089509466,"y":31756.649802761232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"07c87bc6-f04b-4a08-88c3-82df8036a971","savedPayload":{"position":{"x":33850.367819499166,"y":31107.164291469344},"targetPosition":{"x":33751.92630459747,"y":31519.524189915035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9a120c5b-3fda-4ff3-89af-621d53b2e075","savedPayload":{"position":{"x":33751.92630459747,"y":31519.524189915035},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"d054b93f-3378-49e9-9e18-73373b1ec935","savedPayload":{"position":{"x":34061.47889360183,"y":31200.202061977026},"targetPosition":{"x":33848.155210901954,"y":31560.253992569105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cbc32f34-4189-4526-a323-9291e672495c","savedPayload":{"position":{"x":33848.155210901954,"y":31560.253992569105},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"562f3238-94f0-41af-8d61-f9984bc8bd0b","savedPayload":{"position":{"x":34248.89826260879,"y":31340.441558383638},"targetPosition":{"x":33943.065513621616,"y":31634.31513182773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5b4549d-92bd-4c3e-af81-884899aae8d9","savedPayload":{"position":{"x":33943.065513621616,"y":31634.31513182773},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","id":"ce7a4a64-743a-443d-a825-b02c25d4b55a","savedPayload":{"position":{"x":34389.59498945044,"y":31536.34634291851},"targetPosition":{"x":34013.448225311375,"y":31732.263679781754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4b992367-9f3a-4ce3-b389-2fc84c8cca16","savedPayload":{"position":{"x":34013.448225311375,"y":31732.263679781754},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","id":"a1c10e9c-19b9-4805-b441-ce3ec64b23a1","savedPayload":{"position":{"x":34469.42688721992,"y":31763.970288609766},"targetPosition":{"x":34053.391618664995,"y":31846.123357271776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f5f2b1bb-f847-4994-a1ab-5252c7c685c6","savedPayload":{"position":{"x":34053.391618664995,"y":31846.123357271776},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Side or 1H Extreme or Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\" || (chart.at04hs.bollingerSubChannel.slope === \"Gentle\" && (chart.at01hs.bollingerSubChannel.slope === \"Extreme\" || chart.at01hs.bollingerSubChannel.slope === \"Side\"))","id":"3d26867a-7ffc-4b17-a226-c2cf2d02a1ae","savedPayload":{"position":{"x":34481.870711502044,"y":32004.452875644973},"targetPosition":{"x":34059.63071301428,"y":31966.419472112397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a96f6aed-5ba0-458e-b073-a14a7030a4ce","savedPayload":{"position":{"x":34059.63071301428,"y":31966.419472112397},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"f674d92e-8b5b-4a88-9c97-c0499fea9f41","savedPayload":{"position":{"x":34425.87549450783,"y":32239.301956007203},"targetPosition":{"x":34031.64897146041,"y":32083.89092574789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b0663ef7-ad0e-44eb-8448-87c92b066de1","savedPayload":{"position":{"x":34031.64897146041,"y":32083.89092574789},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","id":"6337812b-5df1-428e-9d36-f7935dde3ca7","savedPayload":{"position":{"x":34305.98828960082,"y":32448.99884859954},"targetPosition":{"x":33971.70269044266,"y":32188.76251868252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cda16118-0ec1-4313-bb27-be56055bb89a","savedPayload":{"position":{"x":33971.70269044266,"y":32188.76251868252},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","id":"d467380e-37f7-4d69-8384-c766fa7511ef","savedPayload":{"position":{"x":34131.9442575213,"y":32616.530009178252},"targetPosition":{"x":33884.62935458651,"y":32272.531065884734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"90afdd8d-1565-42b1-abbb-e88eb2e359db","savedPayload":{"position":{"x":33884.62935458651,"y":32272.531065884734},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 2: 02H, 03H, 04H, 06H, all Up && 2H Steep && 1H, 6H NOT Gentle","code":"chart.at24hs.bollingerChannel.direction + chart.at24hs.bollingerBand.slope > chart.at01hs.rsi14.value","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerSubChannel.direction === \"Up\" && chart.at03hs.bollingerSubChannel.direction === \"Up\" && chart.at04hs.bollingerSubChannel.direction === \"Up\" && chart.at06hs.bollingerSubChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Steep\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\" && chart.at06hs.bollingerSubChannel.slope != \"Gentle\") {false} else {true}","id":"051149b3-b815-4eb2-952c-88317a972764","savedPayload":{"position":{"x":33917.66926583683,"y":32728.305067164874},"targetPosition":{"x":33777.32415729678,"y":32328.419178658256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac3a3676-3fc0-4eed-97c8-51fe93a65256","savedPayload":{"position":{"x":33777.32415729678,"y":32328.419178658256},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3583b309-fa26-4e63-bfb2-055d5bad14b7","savedPayload":{"position":{"x":33637.0339345046,"y":31928.112734113376},"targetPosition":{"x":33213.509077296134,"y":31949.716370342587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"1cca5dce-5617-4b2d-b103-68c7289c7912","savedPayload":{"position":{"x":33248.66251833871,"y":31922.655408084436},"targetPosition":{"x":33073.356993272086,"y":32116.668778615298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bdadf3d3-ff21-4ea1-a342-9c135a422a3b","savedPayload":{"position":{"x":33370.94219349302,"y":32092.35851956931},"targetPosition":{"x":33213.509077296134,"y":31949.716370342587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e86cdca6-99e9-487f-b824-af95cf635d1f","savedPayload":{"position":{"x":33213.509077296134,"y":31949.716370342587},"targetPosition":{"x":32835.90089509466,"y":31756.649802761232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"fa8dc2de-7299-4e00-82a7-deb31393b442","savedPayload":{"position":{"x":32835.90089509466,"y":31756.649802761232},"targetPosition":{"x":32433.371579576764,"y":31886.914337943625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"be4be272-6865-445f-81e9-320f8bfdc392","savedPayload":{"position":{"x":34967.124271760935,"y":32358.1785110076},"targetPosition":{"x":34884.7347766961,"y":32665.58211057604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"5bee76dc-6b48-47d0-92c1-be86008a0567","savedPayload":{"position":{"x":36114.12799068074,"y":32336.170693053667},"targetPosition":{"x":35806.871460174916,"y":32418.413004338316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"058c7bc3-1b46-415d-bcf6-b2b260049b34","savedPayload":{"position":{"x":35806.871460174916,"y":32418.413004338316},"targetPosition":{"x":35499.43380969467,"y":32500.74406598618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cba32e81-cca9-4056-bd59-82f986580893","savedPayload":{"position":{"x":35499.43380969467,"y":32500.74406598618},"targetPosition":{"x":35192.04380396341,"y":32583.121051172304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"72bf5a83-c129-4bcb-b196-7efbf38b3122","savedPayload":{"position":{"x":35192.04380396341,"y":32583.121051172304},"targetPosition":{"x":34884.7347766961,"y":32665.58211057604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"502b92e1-1e58-46a5-9ecf-8cc1636f0ff4","savedPayload":{"position":{"x":34884.7347766961,"y":32665.58211057604},"targetPosition":{"x":34660.02936631182,"y":32890.48337181073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"eb4ede91-3ccc-41f8-b54c-8295767f386c","savedPayload":{"position":{"x":34660.02936631182,"y":32890.48337181073},"targetPosition":{"x":34435.67151202602,"y":33115.14655163129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"39c79407-8af5-465e-af51-1c75aad45115","savedPayload":{"position":{"x":35311.11096720446,"y":32816.9272234083},"targetPosition":{"x":35063.64575113468,"y":33016.76264590724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"aa01ada7-95ad-41e6-96f7-5c31702a541e","savedPayload":{"position":{"x":36286.24106064014,"y":33145.81980834591},"targetPosition":{"x":35972.055489563856,"y":33195.34612138585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d717b269-b5ec-4198-b8c4-4191fbbc4b18","savedPayload":{"position":{"x":35972.055489563856,"y":33195.34612138585},"targetPosition":{"x":35657.673132234,"y":33244.878314280504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"5e2b89fd-d5f9-4c8a-98e1-44ff5c2844cd","savedPayload":{"position":{"x":36058.15655754124,"y":33739.29437123348},"targetPosition":{"x":35857.98050868123,"y":33492.17091282344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d715ce3c-8efb-4ff3-bac9-4339b5906a91","savedPayload":{"position":{"x":35857.98050868123,"y":33492.17091282344},"targetPosition":{"x":35657.673132234,"y":33244.878314280504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1133b940-15fd-4255-8099-8c83ebf9ab1d","savedPayload":{"position":{"x":35657.673132234,"y":33244.878314280504},"targetPosition":{"x":35360.66365230035,"y":33130.86179964265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"e6a82789-515c-403d-a11d-9c16d7e1e2d0","savedPayload":{"position":{"x":35360.66365230035,"y":33130.86179964265},"targetPosition":{"x":35063.64575113468,"y":33016.76264590724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"2fbf4e78-500b-4e2a-876b-fec9950bfeb4","savedPayload":{"position":{"x":35063.64575113468,"y":33016.76264590724},"targetPosition":{"x":34749.50080339453,"y":33066.0137817785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7e699a39-d4bc-44d7-bb6c-7813d7d63aeb","savedPayload":{"position":{"x":34749.50080339453,"y":33066.0137817785},"targetPosition":{"x":34435.67151202602,"y":33115.14655163129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"3d73ecde-b6ca-4229-9536-fbc7f87e0d45","savedPayload":{"position":{"x":35001.972454730174,"y":33404.90881119627},"targetPosition":{"x":34718.751802473744,"y":33260.05696886418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c43b5b83-3c68-480e-b390-26c224b63bbf","savedPayload":{"position":{"x":34718.751802473744,"y":33260.05696886418},"targetPosition":{"x":34435.67151202602,"y":33115.14655163129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"1e208de6-1b0c-4754-9b10-41edc1653336","savedPayload":{"position":{"x":34723.83391273956,"y":33682.356075508505},"targetPosition":{"x":34579.63262505743,"y":33398.762441228064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c575ff8-0704-4398-8792-34e0eeb4381f","savedPayload":{"position":{"x":34579.63262505743,"y":33398.762441228064},"targetPosition":{"x":34435.67151202602,"y":33115.14655163129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"05c05d0c-7815-464b-bbf2-f7d2820d0235","savedPayload":{"position":{"x":34435.67151202602,"y":33115.14655163129},"targetPosition":{"x":33180.75535106592,"y":32916.07101014247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"478b1483-d146-4141-b6e7-2e913d285da5","savedPayload":{"position":{"x":33367.5784322329,"y":33173.57800692712},"targetPosition":{"x":33180.75535106592,"y":32916.07101014247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"08bb3184-c06a-43b6-9463-fd922b64abbd","savedPayload":{"position":{"x":33158.957839823925,"y":33124.948458868166},"targetPosition":{"x":32853.356993272086,"y":33076.6687786153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c6b029d3-1de0-4dbf-80bd-e303ae27a2ba","savedPayload":{"position":{"x":33131.10438055651,"y":33230.608107064065},"targetPosition":{"x":33180.75535106592,"y":32916.07101014247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a4386996-dbe4-434c-818b-66ac926fc575","savedPayload":{"position":{"x":33180.75535106592,"y":32916.07101014247},"targetPosition":{"x":32433.371579576764,"y":31886.914337943625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Controlled Run","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"6938be43-dc74-4576-8b0a-8b18bd34792e","savedPayload":{"position":{"x":32052.655649535795,"y":33496.36457838122},"targetPosition":{"x":32096.65981549785,"y":33074.519171615095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"6cefcdbc-918c-4abe-99f9-5a99c391d79b","savedPayload":{"position":{"x":32096.65981549785,"y":33074.519171615095},"targetPosition":{"x":32140.64270658053,"y":32652.206682617852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"901eb16f-14dd-4fd2-81c1-b4713a1b34e0","savedPayload":{"position":{"x":32250.309062987384,"y":32649.586359950557},"targetPosition":{"x":32184.041014524384,"y":32230.18847885705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"0199babe-dfd7-4f18-b9d7-3b73ade997fd","savedPayload":{"position":{"x":31582.494012962958,"y":32962.937014157265},"targetPosition":{"x":31410.280046457636,"y":32575.275710033362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"89e97633-9b3e-42ba-9cf6-bf29d6383a72","savedPayload":{"position":{"x":35114.68579910982,"y":35351.53563650537},"targetPosition":{"x":34955.055100783706,"y":34993.54246316036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"971da4c6-325b-4c78-a025-95dbd138bbc4","savedPayload":{"position":{"x":34955.055100783706,"y":34993.54246316036},"targetPosition":{"x":34795.109639340524,"y":34635.50799960973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2af1c651-e988-4ae0-92a3-d0918b8a1cfe","savedPayload":{"position":{"x":34795.109639340524,"y":34635.50799960973},"targetPosition":{"x":34634.92973533252,"y":34277.38989257793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4e18019c-6173-4b68-b709-174bc220cd55","savedPayload":{"position":{"x":31120.854325706285,"y":32749.006422256185},"targetPosition":{"x":31410.280046457636,"y":32575.275710033362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"a8860a5a-66b5-41f0-8a6c-dac7bf971c9d","savedPayload":{"position":{"x":30218.098378964016,"y":31775.44357488877},"targetPosition":{"x":30641.420921935773,"y":31788.395864739927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"690aeb6d-75ec-45c9-b321-9d943d84df5f","savedPayload":{"position":{"x":30641.420921935773,"y":31788.395864739927},"targetPosition":{"x":31065.15767239706,"y":31801.060086999303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"d691ad30-4129-48d1-9b75-2b2337e409d2","savedPayload":{"position":{"x":30312.735304700313,"y":31410.31946547273},"targetPosition":{"x":30688.782681018638,"y":31605.692657427535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"30880b5e-f66a-4d5a-b112-14bcc8bb9ac9","savedPayload":{"position":{"x":30688.782681018638,"y":31605.692657427535},"targetPosition":{"x":31065.15767239706,"y":31801.060086999303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"8d66b5bd-521c-4d19-9fc0-baa4fb54ad84","savedPayload":{"position":{"x":30556.44880964036,"y":31122.5653875293},"targetPosition":{"x":30810.690604022504,"y":31461.749653777068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c4298d6d-c635-49fe-a517-0dc19531c919","savedPayload":{"position":{"x":30810.690604022504,"y":31461.749653777068},"targetPosition":{"x":31065.15767239706,"y":31801.060086999303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"67b51901-a5fe-4fad-aad4-fc4d756b09cc","savedPayload":{"position":{"x":30900.789650854644,"y":30969.119767215772},"targetPosition":{"x":30982.937053526082,"y":31385.017133242192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b051770c-7c9c-4636-86c8-d3b419f9a8bd","savedPayload":{"position":{"x":30982.937053526082,"y":31385.017133242192},"targetPosition":{"x":31065.15767239706,"y":31801.060086999303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"8d54874e-6c21-434a-80fa-492bf2a9be2b","savedPayload":{"position":{"x":31276.64844988148,"y":30980.361588941225},"targetPosition":{"x":31171.060852877814,"y":31390.702278688343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9aa25c88-a620-42f1-b1e8-403c5c8718b1","savedPayload":{"position":{"x":31171.060852877814,"y":31390.702278688343},"targetPosition":{"x":31065.15767239706,"y":31801.060086999303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\"","id":"e8c97495-8098-4209-a220-6c399baba0f3","savedPayload":{"position":{"x":31610.0599232527,"y":31161.58973768663},"targetPosition":{"x":31338.32832705977,"y":31477.72508842297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f39ad55a-1988-4ac8-9d5c-99054f951179","savedPayload":{"position":{"x":31338.32832705977,"y":31477.72508842297},"targetPosition":{"x":31065.15767239706,"y":31801.060086999303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"abaf1d9b-b5f9-4f8f-9a59-10936c3ea7b1","savedPayload":{"position":{"x":31065.15767239706,"y":31801.060086999303},"targetPosition":{"x":31237.76485603842,"y":32188.236450221637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f9636b68-93f0-4100-8046-1d62eed73501","savedPayload":{"position":{"x":31237.76485603842,"y":32188.236450221637},"targetPosition":{"x":31410.280046457636,"y":32575.275710033362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"274cc7b8-9ab0-4f9a-9302-3357cfcac9da"}}}],"announcements":[],"id":"b1d129c5-5f5e-4b1a-a2d6-b79561d2a6ce","savedPayload":{"position":{"x":31410.280046457636,"y":32575.275710033362},"targetPosition":{"x":31797.26417642712,"y":32402.646659011032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"640cd6a8-a447-43ca-84f9-7dc5e6c8c826","savedPayload":{"position":{"x":30847.41292297006,"y":33144.808922085795},"targetPosition":{"x":30998.534423684807,"y":32747.451613870147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"9502bdd5-310a-4048-81ca-1eb0afe3c99d","savedPayload":{"position":{"x":30205.803426783637,"y":34001.091193026725},"targetPosition":{"x":30249.917950331896,"y":33577.896743108766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cb42b9eb-16cb-4bb4-af70-570fc4d1cd29","savedPayload":{"position":{"x":30249.917950331896,"y":33577.896743108766},"targetPosition":{"x":30294.134801020176,"y":33154.57222324627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"da7a29f2-93be-4ce8-aeb0-f286b5710891","savedPayload":{"position":{"x":29796.111617502072,"y":33843.85742346663},"targetPosition":{"x":30044.979866313377,"y":33499.24970649383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b4748a9d-7f41-4ce0-92ea-267488fd2e02","savedPayload":{"position":{"x":30044.979866313377,"y":33499.24970649383},"targetPosition":{"x":30294.134801020176,"y":33154.57222324627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"792355fa-6601-4a41-b673-b814127b3524","savedPayload":{"position":{"x":29519.96605719332,"y":33502.923264063706},"targetPosition":{"x":29906.846942045566,"y":33328.73011607854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4cd7afea-ce88-4111-b74e-dc48e34bcee5","savedPayload":{"position":{"x":29906.846942045566,"y":33328.73011607854},"targetPosition":{"x":30294.134801020176,"y":33154.57222324627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"835d94b1-7b62-43bc-bbda-34184c5a5410","savedPayload":{"position":{"x":29451.262472325034,"y":33070.381351734206},"targetPosition":{"x":29872.476892943403,"y":33112.352507651274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"66c6c8dc-f8b2-4534-aeb1-5f7aea412564","savedPayload":{"position":{"x":29872.476892943403,"y":33112.352507651274},"targetPosition":{"x":30294.134801020176,"y":33154.57222324627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side or Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\"","id":"4734e468-3fd1-4b7e-8361-66dea0f1d3c1","savedPayload":{"position":{"x":29608.402791503686,"y":32660.871196158085},"targetPosition":{"x":29951.00436379901,"y":32907.53037466467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b9f90ab7-e386-4fa3-a326-d99ce319edcd","savedPayload":{"position":{"x":29951.00436379901,"y":32907.53037466467},"targetPosition":{"x":30294.134801020176,"y":33154.57222324627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"26ef5972-8cc4-4b0d-92a4-b7da565b84b4","savedPayload":{"position":{"x":30294.134801020176,"y":33154.57222324627},"targetPosition":{"x":30681.667674684573,"y":32980.164487420945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9be98459-d007-4f66-94ac-cc7b6c6ad81c","savedPayload":{"position":{"x":30681.667674684573,"y":32980.164487420945},"targetPosition":{"x":30998.534423684807,"y":32747.451613870147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"274cc7b8-9ab0-4f9a-9302-3357cfcac9da"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"c959c1b6-aec3-4db7-a572-477f1ea2c132","savedPayload":{"position":{"x":29433.709225515253,"y":32793.11947467331},"targetPosition":{"x":29820.425136437625,"y":32619.15623349406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31460537-bb42-499a-9645-fca83618f4a5","savedPayload":{"position":{"x":29820.425136437625,"y":32619.15623349406},"targetPosition":{"x":30207.276664433924,"y":32445.696257695414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"b3e36006-93f4-4852-a7a7-d612a7e7ec27","savedPayload":{"position":{"x":29423.284124799575,"y":32145.37524164802},"targetPosition":{"x":29812.2635139139,"y":32295.247107792475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b8fe60bd-1dbd-458d-bdfd-1accfdab0b7c","savedPayload":{"position":{"x":29812.2635139139,"y":32295.247107792475},"targetPosition":{"x":30207.276664433924,"y":32445.696257695414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"6b79a9e3-796e-4db6-8a5c-0bc0bd875f45","savedPayload":{"position":{"x":29863.249250356712,"y":31674.039657913658},"targetPosition":{"x":30035.18086627339,"y":32059.80702167967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1d09d25e-54eb-4d39-bea6-44f8492a2d10","savedPayload":{"position":{"x":30035.18086627339,"y":32059.80702167967},"targetPosition":{"x":30207.276664433924,"y":32445.696257695414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f3ce7cba-7352-4634-a05d-07399ba679f2","savedPayload":{"position":{"x":30207.276664433924,"y":32445.696257695414},"targetPosition":{"x":30603.028520115917,"y":32596.356054088126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"23ebc628-449c-43d8-97a2-28c23bb4dda7","savedPayload":{"position":{"x":30603.028520115917,"y":32596.356054088126},"targetPosition":{"x":30998.534423684807,"y":32747.451613870147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"b1d129c5-5f5e-4b1a-a2d6-b79561d2a6ce"}}}],"announcements":[],"id":"0995a46a-7564-4e4a-bdf9-d1dd437c75c6","savedPayload":{"position":{"x":30998.534423684807,"y":32747.451613870147},"targetPosition":{"x":31410.280046457636,"y":32575.275710033362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"12d58077-9b90-44f6-9d1d-5247aad7b0a4","savedPayload":{"position":{"x":30550.04180271156,"y":33329.80692424424},"targetPosition":{"x":30593.773775288653,"y":32906.46681785033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"af3238a0-9671-4ef7-90d8-802f9255d298","savedPayload":{"position":{"x":34353.31566433633,"y":36371.478113298595},"targetPosition":{"x":34107.73400761102,"y":36065.577333894784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2191cdaf-d396-458b-80e3-d67c69976c29","savedPayload":{"position":{"x":34107.73400761102,"y":36065.577333894784},"targetPosition":{"x":33865.53761248559,"y":35764.117352789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"fa54d65e-9ed1-42f1-bcfe-c774607c7ae3","savedPayload":{"position":{"x":33781.1348043335,"y":36545.510360363085},"targetPosition":{"x":33823.36067956762,"y":36154.932202560594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"de06b55c-392c-4032-b8a9-b1810881be63","savedPayload":{"position":{"x":33823.36067956762,"y":36154.932202560594},"targetPosition":{"x":33865.53761248559,"y":35764.117352789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Up || Side, Gentle or Medium","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Up\" || chart.at01hs.bollingerSubChannel.slope === \"Side\" || chart.at01hs.bollingerSubChannel.slope === \"Gentle\" || chart.at01hs.bollingerSubChannel.slope === \"Medium\"","id":"4eca07e4-a6af-46c8-8099-fd4599755539","savedPayload":{"position":{"x":33253.70014218347,"y":36259.27754119686},"targetPosition":{"x":33559.59724286728,"y":36011.788615334415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a6ee99c3-005b-4b96-be05-579230e6af8b","savedPayload":{"position":{"x":33559.59724286728,"y":36011.788615334415},"targetPosition":{"x":33865.53761248559,"y":35764.117352789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fb58e58-feea-47c1-b7a6-0da4777ff32f","savedPayload":{"position":{"x":33865.53761248559,"y":35764.117352789},"targetPosition":{"x":33915.59035931588,"y":35356.68995455061},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3ca96593-db50-40f0-a191-bfdffe79fdf8","savedPayload":{"position":{"x":30172.077781119075,"y":32863.606917906094},"targetPosition":{"x":30593.773775288653,"y":32906.46681785033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"b1d129c5-5f5e-4b1a-a2d6-b79561d2a6ce"}}}],"announcements":[],"id":"274cc7b8-9ab0-4f9a-9302-3357cfcac9da","savedPayload":{"position":{"x":30593.773775288653,"y":32906.46681785033},"targetPosition":{"x":30998.534423684807,"y":32747.451613870147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5969717f-fd1e-4579-a80b-5e66723412a9","savedPayload":{"position":{"x":31934.3203114876,"y":32573.628726629446},"targetPosition":{"x":32184.041014524384,"y":32230.18847885705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"ab76811a-5688-40bb-bcc9-dc754dea83c1","savedPayload":{"position":{"x":31829.79809078839,"y":32538.006502876146},"targetPosition":{"x":31767.25,"y":32140.22198731501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3add1401-37ae-4ab1-9bfd-bd2409be15ee","savedPayload":{"position":{"x":31765.00069416873,"y":32296.572495929217},"targetPosition":{"x":32184.041014524384,"y":32230.18847885705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"455d4f49-eb65-49f8-a6d5-2bdd44e8bbac","savedPayload":{"position":{"x":32184.041014524384,"y":32230.18847885705},"targetPosition":{"x":32433.371579576764,"y":31886.914337943625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"1805fb84-f9aa-4376-b68b-7d009c1f35ad","savedPayload":{"position":{"x":31614.787231440176,"y":31844.739900906556},"targetPosition":{"x":32030.194776844528,"y":31756.418543665284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"53916478-d8e6-4a30-8c30-7eb64eab5232","savedPayload":{"position":{"x":31726.14930563862,"y":32262.17728231012},"targetPosition":{"x":31945.401949358587,"y":31923.768514071446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ebcdfc8a-8348-4b1d-ad3a-630bb68bcf95","savedPayload":{"position":{"x":31673.637620746475,"y":31525.40620600377},"targetPosition":{"x":32030.194776844528,"y":31756.418543665284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0ab9c0ab-a710-4da3-adb1-9e2f837da5fc","savedPayload":{"position":{"x":32030.194776844528,"y":31756.418543665284},"targetPosition":{"x":32433.371579576764,"y":31886.914337943625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a1b63f90-0ec5-4eb4-a51e-88852cc95049","savedPayload":{"position":{"x":32433.371579576764,"y":31886.914337943625},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S4 - 8H Up","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"565db073-2544-4f1e-8ffd-450fb4e10feb","savedPayload":{"position":{"x":33016.108423138045,"y":30708.61650625706},"targetPosition":{"x":33001.605706827475,"y":31117.1437175863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1f26cf4a-76fc-4186-9b3b-9010f9f3da7c","savedPayload":{"position":{"x":33001.605706827475,"y":31117.1437175863},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"f288ec4c-d242-4138-a291-4e97fcec4e8e","savedPayload":{"position":{"x":33294.14747935223,"y":30768.08538063477},"targetPosition":{"x":33140.33062460357,"y":31147.607021558273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eb5bf914-8163-453a-afa5-95f22ba39ead","savedPayload":{"position":{"x":33140.33062460357,"y":31147.607021558273},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"0638ff08-302c-488f-8a8b-be0cd0454e49","savedPayload":{"position":{"x":33536.5418717862,"y":30918.780123840108},"targetPosition":{"x":33262.102839579675,"y":31222.758503492238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0c8e03c5-c1b2-4aaf-bddc-874c50cfbbba","savedPayload":{"position":{"x":33262.102839579675,"y":31222.758503492238},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"8H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at08hs.bollingerChannel.direction === \"Up\"","id":"77dbd8ad-81fc-4394-93d4-e84e931970f7","savedPayload":{"position":{"x":33711.37061669641,"y":31142.31816964065},"targetPosition":{"x":33349.696532391084,"y":31334.167601834975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78fae417-cc69-4a59-8edf-5d2e7102b50f","savedPayload":{"position":{"x":33349.696532391084,"y":31334.167601834975},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"12H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at12hs.bollingerChannel.direction === \"Down\"","id":"f513cfb2-d7b3-442b-8d72-8bedb02e7ddf","savedPayload":{"position":{"x":33799.103478253135,"y":31412.55479282884},"targetPosition":{"x":33393.62871134569,"y":31469.252426709958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4ab49bb6-b9d3-44a1-8fa5-6d5f7b9d3b3f","savedPayload":{"position":{"x":33393.62871134569,"y":31469.252426709958},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","id":"09bdc89a-fa30-46cc-9da0-aa16844e829b","savedPayload":{"position":{"x":33789.194999211526,"y":31696.0948743394},"targetPosition":{"x":33388.694866665915,"y":31611.066158039575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2aae14ee-14b3-4c94-9394-d64432517632","savedPayload":{"position":{"x":33388.694866665915,"y":31611.066158039575},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H NOT Extreme","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope != \"Extreme\"","id":"a2059ed1-a903-483c-a5b1-a44203fb670f","savedPayload":{"position":{"x":33682.80126272068,"y":31959.687980869192},"targetPosition":{"x":33335.44879159541,"y":31742.939959405492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2ca6efe4-43ac-45a1-ba84-5215d33f32a6","savedPayload":{"position":{"x":33335.44879159541,"y":31742.939959405492},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Deviation > 40","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 25","id":"3b0663ea-9168-4101-bd49-a4fa14473dc7","savedPayload":{"position":{"x":33492.81527571664,"y":32171.088329177917},"targetPosition":{"x":33240.16363723661,"y":31848.699229038637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6f3289e9-c257-4953-ae25-664416db52a7","savedPayload":{"position":{"x":33240.16363723661,"y":31848.699229038637},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"977e6e41-dca1-4b42-9e82-3e2eeae3c220","savedPayload":{"position":{"x":32987.75009839662,"y":31526.263027016277},"targetPosition":{"x":32607.26331447191,"y":31676.362232420466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"260de0f8-58ff-477f-aadb-f61a4043e3a8","savedPayload":{"position":{"x":32607.26331447191,"y":31676.362232420466},"targetPosition":{"x":32218.203346952138,"y":31802.987156123374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"a2b6bf13-42e1-428f-9691-42be919fa8c1","savedPayload":{"position":{"x":33677.75850723514,"y":32546.480820378853},"targetPosition":{"x":33313.07984357831,"y":32360.792558224523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"05892d30-611b-4f6e-93ae-3f484b208fe5","savedPayload":{"position":{"x":33313.07984357831,"y":32360.792558224523},"targetPosition":{"x":32948.32328257087,"y":32175.005781011547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f6bb3530-fc04-47bb-b335-1f90463c6a04","savedPayload":{"position":{"x":32948.32328257087,"y":32175.005781011547},"targetPosition":{"x":32583.454684770324,"y":31989.358256691274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3046ad00-d3de-4458-80db-287144ff86fa","savedPayload":{"position":{"x":32583.454684770324,"y":31989.358256691274},"targetPosition":{"x":32218.203346952138,"y":31802.987156123374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"3847310d-3d70-43f6-85a1-8a62eec1d4d3","savedPayload":{"position":{"x":33387.42539740356,"y":32116.794527589384},"targetPosition":{"x":33018.0279860199,"y":32292.436249824437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"680fec1e-3d4c-4b3b-82a6-0f45a34f9776","savedPayload":{"position":{"x":33018.0279860199,"y":32292.436249824437},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"ffbb6568-c112-46de-8097-fbf993a8232f","savedPayload":{"position":{"x":33465.571106445495,"y":32425.43478155105},"targetPosition":{"x":33056.74325525523,"y":32446.256555772732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f0830878-6dd9-4657-a0b5-906ff9296559","savedPayload":{"position":{"x":33056.74325525523,"y":32446.256555772732},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"d7a8fc7d-57a2-4340-bb12-627c667324e6","savedPayload":{"position":{"x":33419.45900626823,"y":32740.505273158957},"targetPosition":{"x":33033.752962097045,"y":32603.794747800173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e841acd3-9785-49f5-be08-5aa63d3df039","savedPayload":{"position":{"x":33033.752962097045,"y":32603.794747800173},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"8H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at08hs.bollingerChannel.direction === \"Up\"","id":"60872ff6-a88d-4e3c-9069-4337d9e77653","savedPayload":{"position":{"x":33256.14231973845,"y":33014.56892092391},"targetPosition":{"x":32952.065637836226,"y":32740.884130165858},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"969eebbc-1e68-4dc7-bb42-5fd1e92648b3","savedPayload":{"position":{"x":32952.065637836226,"y":32740.884130165858},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"12H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at12hs.bollingerChannel.direction === \"Down\"","id":"e1f6e5b8-70b1-44b9-b127-099a28b39e5f","savedPayload":{"position":{"x":33000.20306486545,"y":33205.3420591731},"targetPosition":{"x":32824.05870270297,"y":32836.33950328082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1d87e62c-73ff-434b-ac60-e7afa7035b78","savedPayload":{"position":{"x":32824.05870270297,"y":32836.33950328082},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","id":"4dbcbf0e-b029-40db-9b3e-422ccb1d1642","savedPayload":{"position":{"x":32690.53788200545,"y":33283.801184534575},"targetPosition":{"x":32669.20586962084,"y":32875.59460029089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed71b78d-b409-451d-9e23-72fde4c6ac59","savedPayload":{"position":{"x":32669.20586962084,"y":32875.59460029089},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Deviation > 40","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 25","id":"ca95ffdd-a14f-4985-84b7-2a482eb8091d","savedPayload":{"position":{"x":32374.860433575843,"y":33237.99653746514},"targetPosition":{"x":32511.293905353414,"y":32852.60908935485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"80a35c8a-7650-442f-82de-b9acb0c09988","savedPayload":{"position":{"x":32511.293905353414,"y":32852.60908935485},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"22a72082-528a-440b-8e3f-374d612c4d51","savedPayload":{"position":{"x":32647.89809256855,"y":32466.81884324842},"targetPosition":{"x":32343.994367056974,"y":32192.577730607023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"db4a7c92-b806-4329-9300-9b83a3ad036c","savedPayload":{"position":{"x":32267.555525066622,"y":32166.208616784148},"targetPosition":{"x":32092.25,"y":32360.22198731501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6bebda83-5fa6-40c6-8b9d-193636aa5ff8","savedPayload":{"position":{"x":32353.99815107377,"y":32397.54225711615},"targetPosition":{"x":32343.994367056974,"y":32192.577730607023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9d98dc4-e354-4357-99c8-eaa829f874d7","savedPayload":{"position":{"x":32343.994367056974,"y":32192.577730607023},"targetPosition":{"x":32218.203346952138,"y":31802.987156123374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"0bf02e1f-d661-437b-85b0-b31e57707199","savedPayload":{"position":{"x":32218.203346952138,"y":31802.987156123374},"targetPosition":{"x":31854.611783869535,"y":31617.461964697784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"283c986f-f9e6-4db2-a7cf-31df9bc42e21","savedPayload":{"position":{"x":33262.348283073654,"y":33668.26110625135},"targetPosition":{"x":32996.16226727139,"y":33821.48103036987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"7e24efcb-8efd-4f21-846e-c1c9be5e4dc0","savedPayload":{"position":{"x":35661.5330621917,"y":32460.96477728643},"targetPosition":{"x":35395.80978722638,"y":32307.691972974666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"151ea590-9f96-4956-a7e8-1ae8ed2497b1","savedPayload":{"position":{"x":35395.80978722638,"y":32307.691972974666},"targetPosition":{"x":35129.93735813902,"y":32154.346004055602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"af5a4bfb-1676-4497-ad6f-8da3ad1154a1","savedPayload":{"position":{"x":35129.93735813902,"y":32154.346004055602},"targetPosition":{"x":34864.21598400471,"y":32001.112915297275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0c8cf0e4-2be0-4010-b296-400c3413dbfe","savedPayload":{"position":{"x":34864.21598400471,"y":32001.112915297275},"targetPosition":{"x":32996.16226727139,"y":33821.48103036987},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"80a6f7ab-286d-4f4e-af25-ba3f60432087","savedPayload":{"position":{"x":32996.16226727139,"y":33821.48103036987},"targetPosition":{"x":32689.147179694144,"y":33821.48199786943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6ccb7dd5-015c-4d99-855a-4c51c8d31c1a","savedPayload":{"position":{"x":32689.147179694144,"y":33821.48199786943},"targetPosition":{"x":32382.725700846328,"y":33821.60989461435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"cf1fe591-e95e-49b1-9917-696fd2b69ea4","savedPayload":{"position":{"x":33184.71999818604,"y":34214.11641349901},"targetPosition":{"x":32879.1540673357,"y":34182.00430123203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"ac6e1c39-95ac-485c-b9c8-dddefff2fe1c","savedPayload":{"position":{"x":33634.126653251245,"y":35099.63359407601},"targetPosition":{"x":33383.31078816607,"y":34919.700064680575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6d2069d0-7a7b-478c-b682-81e52abc066a","savedPayload":{"position":{"x":33382.25050178636,"y":34920.44290986782},"targetPosition":{"x":33132.43780807961,"y":34740.48684695961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"bde76cfe-6402-4245-883b-9f5b50db5c52","savedPayload":{"position":{"x":33082.77997596954,"y":35350.85551519918},"targetPosition":{"x":33103.89082700777,"y":35043.21827334428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"697829a6-b00e-4b70-99a5-c109263e5ca3","savedPayload":{"position":{"x":33101.38914931789,"y":35045.366536668065},"targetPosition":{"x":33132.43780807961,"y":34740.48684695961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b43a31b0-a9ed-4e41-ae4c-427924f40c59","savedPayload":{"position":{"x":33129.1780223032,"y":34742.82310819165},"targetPosition":{"x":33004.26762261222,"y":34462.6015445682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1c6e5b5b-6ac5-4693-94dd-45c76fdf2b96","savedPayload":{"position":{"x":33003.93138154689,"y":34462.70823485492},"targetPosition":{"x":32879.1540673357,"y":34182.00430123203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"0b1c973a-ce4a-47bd-90a1-d306b30d12aa","savedPayload":{"position":{"x":32878.67130061081,"y":34182.98753017021},"targetPosition":{"x":32630.566126111215,"y":34002.25393399775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04dc4bc7-dcaf-4b43-8418-e050d05c8952","savedPayload":{"position":{"x":32630.39594770166,"y":34002.13102715508},"targetPosition":{"x":32382.725700846328,"y":33821.60989461435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"eee941cf-f98c-4dd0-92fa-815fe2c10865","savedPayload":{"position":{"x":32571.120782001806,"y":34406.17252734529},"targetPosition":{"x":32476.87909012684,"y":34113.938241438496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ae433b8c-e6fd-4241-bbe3-2a2cd27ce009","savedPayload":{"position":{"x":32476.82545458858,"y":34113.76990798757},"targetPosition":{"x":32382.725700846328,"y":33821.60989461435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"117adca4-9252-45f2-84b6-6391fbfcb63b","savedPayload":{"position":{"x":32192.68544723151,"y":34405.61314236691},"targetPosition":{"x":32287.633187524032,"y":34113.59824941377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"67dd3e52-2d23-48a0-a7d0-56f7b60e6832","savedPayload":{"position":{"x":32287.559875555915,"y":34113.432909927375},"targetPosition":{"x":32382.725700846328,"y":33821.60989461435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7165c7fa-fb68-40ee-bfb7-2317a0defd40","savedPayload":{"position":{"x":32382.897645029716,"y":33821.819273275294},"targetPosition":{"x":31662.56404301089,"y":32829.66381673354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"b13321e7-009a-4c2e-bc8c-f1b0bdb4dd7b","savedPayload":{"position":{"x":31614.527267611713,"y":33132.96245280527},"targetPosition":{"x":31662.56404301089,"y":32829.66381673354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"9331e3ec-0b89-478a-9910-36fac6843934","savedPayload":{"position":{"x":31726.85084655184,"y":32860.50166756788},"targetPosition":{"x":31421.25,"y":32812.22198731501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5456a919-1f27-4bc1-80de-14aeb1dd2010","savedPayload":{"position":{"x":31414.04315714644,"y":33010.32122662356},"targetPosition":{"x":31662.56404301089,"y":32829.66381673354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2e4981ca-a802-4941-8ed8-563a3e6950ed","savedPayload":{"position":{"x":31662.56404301089,"y":32829.66381673354},"targetPosition":{"x":31854.611783869535,"y":31617.461964697784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Slow Run","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"53f5b5c3-ba67-453c-9c9f-4ce573a45cf7","savedPayload":{"position":{"x":30500.89247017438,"y":32459.578297266748},"targetPosition":{"x":30819.036958787143,"y":32201.72019233247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"9f500e15-05a0-49f2-acb6-22dc52e3a776","savedPayload":{"position":{"x":30819.036958787143,"y":32201.72019233247},"targetPosition":{"x":31150.975630250297,"y":31932.866520667907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48f10387-f326-4021-ae7e-bf0c89f12f0e","savedPayload":{"position":{"x":31208.328337171784,"y":32013.008173556012},"targetPosition":{"x":31448.949834379793,"y":31681.57948129423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"d2f712ac-98dc-41dc-b29e-260334b7cd69","savedPayload":{"position":{"x":30514.18167577269,"y":31761.2170374418},"targetPosition":{"x":30661.02568754195,"y":31379.194283221575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"629a5ecb-7ade-4453-89bb-1d1c5d5f96d9","savedPayload":{"position":{"x":31452.62521613617,"y":35704.649175755076},"targetPosition":{"x":31306.38507672166,"y":35392.89905014682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c9b1b192-1698-44a7-a0f5-20d21088f280","savedPayload":{"position":{"x":31306.38507672166,"y":35392.89905014682},"targetPosition":{"x":31164.240833397416,"y":35074.037476121404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0402e263-ac5c-4546-be68-8f33fdbf8666","savedPayload":{"position":{"x":31164.240833397416,"y":35074.037476121404},"targetPosition":{"x":31021.438921316847,"y":34750.86973446636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1fc1bb7a-a52b-4ce2-b17b-95194de42c8a","savedPayload":{"position":{"x":30296.68637656971,"y":31322.79310193876},"targetPosition":{"x":30661.02568754195,"y":31379.194283221575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"a0b6604b-8744-468d-8eb8-37266a7790bb","savedPayload":{"position":{"x":30438.724191200963,"y":29978.473640966942},"targetPosition":{"x":30695.912811285634,"y":30296.608544153656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7a6659c-b0db-4966-875f-4f3c22448e5f","savedPayload":{"position":{"x":30695.912811285634,"y":30296.608544153656},"targetPosition":{"x":30953.245579650113,"y":30614.81281670587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"bba2d293-88c4-492f-94af-1b9619f740fd","savedPayload":{"position":{"x":30825.47049961038,"y":29806.19925833095},"targetPosition":{"x":30889.3671042988,"y":30210.385421398318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"20aebaee-eb59-4c3f-8c59-39349e032515","savedPayload":{"position":{"x":30889.3671042988,"y":30210.385421398318},"targetPosition":{"x":30953.245579650113,"y":30614.81281670587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"8419c8f8-b2b3-4d98-99e8-2506e40bdb02","savedPayload":{"position":{"x":31245.840967273478,"y":29850.337168761183},"targetPosition":{"x":31099.60147314376,"y":30232.46849471163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0d40d31a-b3d2-4213-9ec0-16dfad84800c","savedPayload":{"position":{"x":31099.60147314376,"y":30232.46849471163},"targetPosition":{"x":30953.245579650113,"y":30614.81281670587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"1f20f276-1067-413d-9855-d5a8c3bf4dd5","savedPayload":{"position":{"x":31588.106924305583,"y":30098.824371705417},"targetPosition":{"x":31270.79628296104,"y":30356.84452509362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5a699f92-494e-4078-b641-1c9c57ffc366","savedPayload":{"position":{"x":31270.79628296104,"y":30356.84452509362},"targetPosition":{"x":30953.245579650113,"y":30614.81281670587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"8522cf28-0d47-4049-a2d0-f859792cc083","savedPayload":{"position":{"x":31745.815505511848,"y":30486.82650760695},"targetPosition":{"x":31356.715958954213,"y":30550.219742514226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0c5c7d7b-590f-4902-b44d-8609741d2b0c","savedPayload":{"position":{"x":31356.715958954213,"y":30550.219742514226},"targetPosition":{"x":30953.245579650113,"y":30614.81281670587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa9bda47-780e-48ec-97bf-52f713be6d1c","savedPayload":{"position":{"x":30953.245579650113,"y":30614.81281670587},"targetPosition":{"x":30807.09852676496,"y":30997.07900762244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0905efc2-d8c9-4b8b-b09f-de915fca26e4","savedPayload":{"position":{"x":30807.09852676496,"y":30997.07900762244},"targetPosition":{"x":30661.02568754195,"y":31379.194283221575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"dc4b92b2-3855-4cc7-84f5-20cc259c1634"}}}],"announcements":[],"id":"e6304ea5-e683-49c1-8e84-e2bc119565fa","savedPayload":{"position":{"x":30661.02568754195,"y":31379.194283221575},"targetPosition":{"x":31068.629399090474,"y":31535.33551862273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"73870f3c-4fc8-464c-be6a-f5e397ee044e","savedPayload":{"position":{"x":29901.249484375345,"y":31377.094167262778},"targetPosition":{"x":30274.70605518238,"y":31210.2377720679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"bc212a30-b2e9-435c-84a8-e505019c0570","savedPayload":{"position":{"x":28893.406176646076,"y":31520.778332079593},"targetPosition":{"x":29212.07710550547,"y":31264.012686794093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"19c71956-4d1e-4355-826e-5bc25d09fdc3","savedPayload":{"position":{"x":29212.07710550547,"y":31264.012686794093},"targetPosition":{"x":29531.831887857006,"y":31006.50215332862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"31e8935e-497f-47eb-9466-900faced609c","savedPayload":{"position":{"x":28721.087664239905,"y":31134.011329246656},"targetPosition":{"x":29125.8628289353,"y":31070.501110683115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"506df2ab-b891-4709-84e6-b773c8743abf","savedPayload":{"position":{"x":29125.8628289353,"y":31070.501110683115},"targetPosition":{"x":29531.831887857006,"y":31006.50215332862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"c1e44382-1537-453b-9f6c-52ef913228aa","savedPayload":{"position":{"x":28765.22117439923,"y":30713.57003149922},"targetPosition":{"x":29147.944257952,"y":30860.18192434744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"928db494-0024-4ed4-a407-84087efb0704","savedPayload":{"position":{"x":29147.944257952,"y":30860.18192434744},"targetPosition":{"x":29531.831887857006,"y":31006.50215332862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"8bae0609-ccff-480d-b382-b56f22ec8dc4","savedPayload":{"position":{"x":29013.97083829324,"y":30370.97096869017},"targetPosition":{"x":29272.351997056765,"y":30688.807256238648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"98ac2a8f-4541-46de-8e01-f9709d6b195f","savedPayload":{"position":{"x":29272.351997056765,"y":30688.807256238648},"targetPosition":{"x":29531.831887857006,"y":31006.50215332862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"a5a3a569-6a05-4fd0-8c15-22d5e5d1b148","savedPayload":{"position":{"x":29400.59541225859,"y":30198.51224944108},"targetPosition":{"x":29465.694395008868,"y":30602.505107002034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2adc3c50-f284-4fb1-9f79-b077a54b5046","savedPayload":{"position":{"x":29465.694395008868,"y":30602.505107002034},"targetPosition":{"x":29531.831887857006,"y":31006.50215332862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c91df057-7904-431b-b997-8fbb2afada1f","savedPayload":{"position":{"x":29531.831887857006,"y":31006.50215332862},"targetPosition":{"x":29915.35006651546,"y":31152.79468292573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8196d5fe-af67-4302-84d1-f95279fb2075","savedPayload":{"position":{"x":29915.35006651546,"y":31152.79468292573},"targetPosition":{"x":30274.70605518238,"y":31210.2377720679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"dc4b92b2-3855-4cc7-84f5-20cc259c1634"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"60d1211f-6279-4c80-abe5-e727a70aea22","savedPayload":{"position":{"x":34435.312104755925,"y":37604.797131887906},"targetPosition":{"x":34371.381595713305,"y":37200.520638670896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6659d86a-2e52-48b2-bcc4-5f5b43b3907e","savedPayload":{"position":{"x":34371.381595713305,"y":37200.520638670896},"targetPosition":{"x":34301.70161318501,"y":36759.80355610525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"5ce2e13e-4b4f-424b-b4ee-1741c013690b","savedPayload":{"position":{"x":33637.05690195842,"y":37298.380990103775},"targetPosition":{"x":33955.25921385612,"y":37040.548458870755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38aa2600-90dc-4c6b-be17-a08ee9c829b3","savedPayload":{"position":{"x":33955.25921385612,"y":37040.548458870755},"targetPosition":{"x":34301.70161318501,"y":36759.80355610525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fd092801-0b6b-4f09-bbb3-b16fe1144ae3","savedPayload":{"position":{"x":29942.550949462675,"y":30461.549907287925},"targetPosition":{"x":30108.751431134442,"y":30835.89159387049},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4b4f5de5-723c-4d6e-b26e-50ee87671f48","savedPayload":{"position":{"x":30108.751431134442,"y":30835.89159387049},"targetPosition":{"x":30274.70605518238,"y":31210.2377720679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e6304ea5-e683-49c1-8e84-e2bc119565fa"}}}],"announcements":[],"id":"ad2a51aa-b179-457e-9704-5c9b1a8db72e","savedPayload":{"position":{"x":30274.70605518238,"y":31210.2377720679},"targetPosition":{"x":30661.02568754195,"y":31379.194283221575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"d29e9a58-79bb-445f-b51a-e5b86937aa8c","savedPayload":{"position":{"x":29569.89733993556,"y":31298.831477570733},"targetPosition":{"x":29887.28573602895,"y":31041.38429809122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"59efd870-0af2-4d5c-a78c-281b71f00497","savedPayload":{"position":{"x":35010.10130049439,"y":37933.36740804276},"targetPosition":{"x":34843.70421091391,"y":37559.42115267648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31c9eb9e-6567-4866-b3de-cf7ac4fa0126","savedPayload":{"position":{"x":34843.70421091391,"y":37559.42115267648},"targetPosition":{"x":34677.20226770342,"y":37185.26541585529},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"0dd58774-bae1-48f4-bb2a-ff3af03d885b","savedPayload":{"position":{"x":34196.30278110237,"y":37847.83226499006},"targetPosition":{"x":34436.72320963445,"y":37516.627594905825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8894b26-93ec-450a-9cbf-2462e442a7bc","savedPayload":{"position":{"x":34436.72320963445,"y":37516.627594905825},"targetPosition":{"x":34677.20226770342,"y":37185.26541585529},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1141841-95d0-4c98-b77e-16eb893e6b19","savedPayload":{"position":{"x":34677.20226770342,"y":37185.26541585529},"targetPosition":{"x":34719.74774859792,"y":36777.73345672497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5a854197-4f85-4f31-bf5e-c9acff5a60cc","savedPayload":{"position":{"x":29630.2706807204,"y":30722.685610075176},"targetPosition":{"x":29887.28573602895,"y":31041.38429809122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e6304ea5-e683-49c1-8e84-e2bc119565fa"}}}],"announcements":[],"id":"dc4b92b2-3855-4cc7-84f5-20cc259c1634","savedPayload":{"position":{"x":29887.28573602895,"y":31041.38429809122},"targetPosition":{"x":30274.70605518238,"y":31210.2377720679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6b48bcff-79c4-4705-82ac-3666914c8628","savedPayload":{"position":{"x":31044.29603098015,"y":31745.267981535948},"targetPosition":{"x":31448.949834379793,"y":31681.57948129423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"103674cc-96ef-407d-8714-ea2e9a9d7e74","savedPayload":{"position":{"x":31378.79809078839,"y":31736.006502876146},"targetPosition":{"x":31316.25,"y":31338.22198731501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5270f90c-9a7c-4c48-a70d-b75316d43872","savedPayload":{"position":{"x":31117.861875558334,"y":31440.806546951313},"targetPosition":{"x":31448.949834379793,"y":31681.57948129423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"657399d3-c55b-46b6-8ef6-bf1ed183c48f","savedPayload":{"position":{"x":31448.949834379793,"y":31681.57948129423},"targetPosition":{"x":31854.611783869535,"y":31617.461964697784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"c3529923-8f7c-4ce4-8368-edca9f37fa52","savedPayload":{"position":{"x":31325.053472792577,"y":31030.065705487017},"targetPosition":{"x":31668.750919700407,"y":31253.281061179234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"1147f820-1445-48ab-8c68-0f9dfc653b99","savedPayload":{"position":{"x":31261.14930563862,"y":31481.17728231012},"targetPosition":{"x":31480.401949358587,"y":31142.768514071446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b01a5c6-c37d-4738-9bfd-1931a7d2d3d5","savedPayload":{"position":{"x":31583.37792473191,"y":30852.18473839943},"targetPosition":{"x":31668.750919700407,"y":31253.281061179234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"62290446-8b87-4e5a-8ade-9a34b8dbb148","savedPayload":{"position":{"x":31668.750919700407,"y":31253.281061179234},"targetPosition":{"x":31854.611783869535,"y":31617.461964697784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b27aa9de-ced9-4e53-941c-499bab212f80","savedPayload":{"position":{"x":31854.611783869535,"y":31617.461964697784},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S6 - 2H Up","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"873a72fd-cc23-4965-ae29-5b2b70d85cb9","savedPayload":{"position":{"x":33010.897460448316,"y":31179.087705618313},"targetPosition":{"x":32743.530080996377,"y":31476.678900946034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"087962b5-2546-4472-b71c-b161f0013b1c","savedPayload":{"position":{"x":32743.530080996377,"y":31476.678900946034},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"c72459a6-49d5-4021-b6e3-4a8c374b6b4b","savedPayload":{"position":{"x":33147.08185909988,"y":31338.07547366014},"targetPosition":{"x":32811.43571183378,"y":31556.272945529192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48333f2b-d8c7-4a92-bf5d-b8c9a8de4196","savedPayload":{"position":{"x":32811.43571183378,"y":31556.272945529192},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"8488937e-9b92-4562-b89c-a4d6c6dd8ee2","savedPayload":{"position":{"x":33237.13790341573,"y":31526.911203926844},"targetPosition":{"x":32856.01196197148,"y":31650.98625831615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ec9b3ba8-d6a4-4cb0-8679-a8daa868e549","savedPayload":{"position":{"x":32856.01196197148,"y":31650.98625831615},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Up\"","id":"ade6a251-d161-467d-8e94-45cfdadf536b","savedPayload":{"position":{"x":33275.56332572748,"y":31733.285246992767},"targetPosition":{"x":32875.524833571035,"y":31754.249385991152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7499f60b-762e-4b37-a66d-2872755620c4","savedPayload":{"position":{"x":32875.524833571035,"y":31754.249385991152},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"04H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Down\"","id":"3beea11e-ff4a-4e39-97d0-97563dacfb09","savedPayload":{"position":{"x":33259.28460932873,"y":31940.902502677036},"targetPosition":{"x":32867.80836627228,"y":31858.056490410654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e0650fa-cd1b-4770-81b2-06d677c73510","savedPayload":{"position":{"x":32867.80836627228,"y":31858.056490410654},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"01H Med, Steep o Extreme","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","id":"276b36c3-c0ca-45d6-a659-c40dac406f46","savedPayload":{"position":{"x":33189.54211479279,"y":32137.713665862248},"targetPosition":{"x":32833.07319674841,"y":31956.498147475777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"904385e8-8b04-4c0c-9961-98b10184e976","savedPayload":{"position":{"x":32833.07319674841,"y":31956.498147475777},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"a49fbb15-05db-4a21-b59b-662a6d84c999","savedPayload":{"position":{"x":33071.171384054614,"y":32309.90187202421},"targetPosition":{"x":32773.91856258477,"y":32042.64240847269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"89591bf6-dabe-4ba6-b2d8-4580a2c75b0a","savedPayload":{"position":{"x":32773.91856258477,"y":32042.64240847269},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side or Medium","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\" || chart.at02hs.bollingerSubChannel.slope === \"Medium\"","id":"bb0016e9-0b74-4595-b450-209487362f00","savedPayload":{"position":{"x":32912.24643585934,"y":32445.677135860693},"targetPosition":{"x":32694.434555061398,"y":32110.581831373445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad9f8e37-16b5-4245-9492-0192ef168849","savedPayload":{"position":{"x":32694.434555061398,"y":32110.581831373445},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"1e3c7245-5582-4af5-9527-5dddf151b976","savedPayload":{"position":{"x":32723.598227552084,"y":32535.7334732403},"targetPosition":{"x":32600.0416875229,"y":32155.64929664765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"440d6ea0-2ee2-408a-a556-18d4c53dda17","savedPayload":{"position":{"x":32600.0416875229,"y":32155.64929664765},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","id":"d4189ed6-4d0f-45ea-b1ae-dbdb8f2e0e2c","savedPayload":{"position":{"x":32518.077922250573,"y":32573.891283006145},"targetPosition":{"x":32497.144449475723,"y":32174.74285972898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"01875e5f-f718-4047-baa4-c91930dd6c86","savedPayload":{"position":{"x":32497.144449475723,"y":32174.74285972898},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Steep","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Steep\"","id":"350d4a04-700f-4f33-960e-d267e00cec51","savedPayload":{"position":{"x":32310.0762594611,"y":32557.365021417743},"targetPosition":{"x":32392.844211360745,"y":32166.404433653668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bda747f3-188e-4ed0-82bf-b600a9a9c3f5","savedPayload":{"position":{"x":32392.844211360745,"y":32166.404433653668},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7ec2e400-1608-44b5-8ae4-ac4f815e76f5","savedPayload":{"position":{"x":32476.10497248283,"y":31774.247558718183},"targetPosition":{"x":32114.4975340574,"y":31604.990853046736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0499e109-2786-4159-b79a-c6c24ebac150","savedPayload":{"position":{"x":32114.4975340574,"y":31604.990853046736},"targetPosition":{"x":31758.22011621457,"y":31424.574860926965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"3ed33d07-ff92-4ecc-81cd-8d9318f5a3a2","savedPayload":{"position":{"x":32252.16665434626,"y":32947.31660965903},"targetPosition":{"x":32128.776811132153,"y":32567.424743327494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40eeff59-ef6d-456b-9662-2590ba1f90b8","savedPayload":{"position":{"x":32128.776811132153,"y":32567.424743327494},"targetPosition":{"x":32005.204151094837,"y":32186.883294667958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"208d89cb-60a9-461f-a8d2-a9d185ca3c5a","savedPayload":{"position":{"x":32005.204151094837,"y":32186.883294667958},"targetPosition":{"x":31881.43076718399,"y":31805.23997790666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"77ac2dcd-e4a4-4a8f-8c71-d8a30fa7a508","savedPayload":{"position":{"x":31881.43076718399,"y":31805.23997790666},"targetPosition":{"x":31758.22011621457,"y":31424.574860926965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"0c4f8301-8084-4276-a901-5e8137867ea0","savedPayload":{"position":{"x":31988.82332276822,"y":32672.19571834107},"targetPosition":{"x":31692.071482468677,"y":32404.721283246283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c407af9c-fe4a-4d5a-9446-25fc7284ee5c","savedPayload":{"position":{"x":31692.071482468677,"y":32404.721283246283},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"6f84e4e1-1174-4eea-b92a-fdb64cdded61","savedPayload":{"position":{"x":31830.031046317567,"y":32808.01597089322},"targetPosition":{"x":31612.54259799393,"y":32472.84689786787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"56b51e70-1cfd-403a-809d-ee19347ca315","savedPayload":{"position":{"x":31612.54259799393,"y":32472.84689786787},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"f3b540af-68c9-4345-9826-faf0d9e6e04c","savedPayload":{"position":{"x":31641.55767350311,"y":32897.9022710009},"targetPosition":{"x":31518.23455469705,"y":32517.86144086963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f4cdcc47-9a5d-4999-9c11-8fd1c19a5424","savedPayload":{"position":{"x":31518.23455469705,"y":32517.86144086963},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Up\"","id":"0f3ff1d1-ff82-42da-a526-aff486cbc0bb","savedPayload":{"position":{"x":31436.205013692565,"y":32935.90412023717},"targetPosition":{"x":31415.48977015678,"y":32536.89355815333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0835043e-d8e1-424e-a530-1def860228eb","savedPayload":{"position":{"x":31415.48977015678,"y":32536.89355815333},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"04H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Down\"","id":"54f8e8ae-578f-461d-9ed2-9f352395dd19","savedPayload":{"position":{"x":31228.54443615153,"y":32919.419915645696},"targetPosition":{"x":31311.585595466433,"y":32528.664179815376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"feb6ba85-a9c1-40af-9e6b-00bd4ef1480b","savedPayload":{"position":{"x":31311.585595466433,"y":32528.664179815376},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"01H Med, Steep o Extreme","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","id":"949100cd-882b-4c11-b010-dbbfd5fff6f5","savedPayload":{"position":{"x":31031.643356321496,"y":32849.55793610308},"targetPosition":{"x":31213.072553776572,"y":32493.738191603945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d3f463af-4e6d-493b-bc8f-e4c66ffc8567","savedPayload":{"position":{"x":31213.072553776572,"y":32493.738191603945},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"b6856a8d-7a24-4a5f-a449-de2d32fe63be","savedPayload":{"position":{"x":30859.463550636483,"y":32731.085165783043},"targetPosition":{"x":31126.93780611842,"y":32434.498319116443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"37a6e660-f28f-4bd2-99ea-3c2f46d2a36c","savedPayload":{"position":{"x":31126.93780611842,"y":32434.498319116443},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side or Medium","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\" || chart.at02hs.bollingerSubChannel.slope === \"Medium\"","id":"08d54285-d07e-4cec-8f13-a2f268a569a2","savedPayload":{"position":{"x":30723.724643081026,"y":32572.09916636515},"targetPosition":{"x":31059.056353841177,"y":32354.976107409486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e0208159-e2c5-4fa4-8658-714af9cc91bd","savedPayload":{"position":{"x":31059.056353841177,"y":32354.976107409486},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"36e3a366-1402-4953-8283-9a4131d304b2","savedPayload":{"position":{"x":30633.69548060391,"y":32383.464894864584},"targetPosition":{"x":31014.06490490233,"y":32260.590685797342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d4dc8ef4-ba98-4843-9ef5-16a649541da1","savedPayload":{"position":{"x":31014.06490490233,"y":32260.590685797342},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","id":"f24fcdcf-8844-4f08-a9f2-3b56471a6dde","savedPayload":{"position":{"x":30595.571410680965,"y":32178.05371321225},"targetPosition":{"x":30995.052862976325,"y":32157.74965041339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2f6a17d7-7a2e-4aa2-b120-d22cb0898194","savedPayload":{"position":{"x":30995.052862976325,"y":32157.74965041339},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Steep","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Steep\"","id":"5e74fc74-6684-4675-ba35-4ce3fee27b2a","savedPayload":{"position":{"x":30612.009771633493,"y":31970.454085425517},"targetPosition":{"x":31003.424923684455,"y":32053.515183920517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cc3b8326-99cd-431c-8b27-c85322f6413f","savedPayload":{"position":{"x":31003.424923684455,"y":32053.515183920517},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e5d2fd0e-f202-44e7-bf4c-32d3a203528e","savedPayload":{"position":{"x":31394.696965332292,"y":32137.06841264846},"targetPosition":{"x":31575.976545730267,"y":31780.03372773283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"08776dac-4836-413b-ad45-fdfa781b031c","savedPayload":{"position":{"x":31575.976545730267,"y":31780.03372773283},"targetPosition":{"x":31758.22011621457,"y":31424.574860926965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"5724bd17-a57c-4ec4-9389-170c4255a2d5","savedPayload":{"position":{"x":31758.22011621457,"y":31424.574860926965},"targetPosition":{"x":31633.219625647092,"y":31038.6715717692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"7ac87760-6585-45b0-8e6a-52393eba7893","savedPayload":{"position":{"x":30735.600805138325,"y":33507.99863549079},"targetPosition":{"x":30475.476039234916,"y":33357.5191308144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"e18e37c2-45e6-4c79-8ab5-0e5ca1d5106f","savedPayload":{"position":{"x":33617.84667711506,"y":33938.36138235442},"targetPosition":{"x":33617.80021414131,"y":33638.42804439987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"97289bf8-e16b-42a3-b467-58175c304390","savedPayload":{"position":{"x":33617.80021414131,"y":33638.42804439987},"targetPosition":{"x":33617.692701429136,"y":33338.295643587335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"77be179e-b8d7-42e1-8612-32b85af6352b","savedPayload":{"position":{"x":33617.67000115603,"y":33338.2983947205},"targetPosition":{"x":33617.553943954204,"y":33038.401141381386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"21d88502-c3c4-4847-af18-a943a25e44f4","savedPayload":{"position":{"x":33617.553943954204,"y":33038.401141381386},"targetPosition":{"x":30475.395949616388,"y":33357.36740858946},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"5c93f074-54cb-4ef9-bcd5-b2ccef229271","savedPayload":{"position":{"x":30475.395949616388,"y":33357.36740858946},"targetPosition":{"x":30325.095919219108,"y":33097.442231856185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3c1bbf78-0fa6-429b-8dbf-d002f6a375b4","savedPayload":{"position":{"x":30325.095919219108,"y":33097.442231856185},"targetPosition":{"x":30174.932833579667,"y":32838.137954305625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"11d19fb0-32df-475f-a4b9-2832942954f3","savedPayload":{"position":{"x":30234.264038388534,"y":33709.59649631907},"targetPosition":{"x":30112.179889514613,"y":33434.84161439404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"547c7e11-9615-4493-8541-29323286596e","savedPayload":{"position":{"x":29697.381162992446,"y":34518.08926656646},"targetPosition":{"x":29728.562546731402,"y":34219.545692809836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"495e7972-41f7-474b-91b1-e434b599dcdc","savedPayload":{"position":{"x":29728.562546731402,"y":34219.545692809836},"targetPosition":{"x":29759.759570577848,"y":33920.72891942154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"eb8e1683-b144-470c-a376-2b091463a231","savedPayload":{"position":{"x":29211.7322965648,"y":34165.26538028993},"targetPosition":{"x":29485.6195128475,"y":34043.05074487052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"867afb92-cc37-44ff-b2e9-b0f5cd2b3856","savedPayload":{"position":{"x":29485.6195128475,"y":34043.05074487052},"targetPosition":{"x":29759.759570577848,"y":33920.72891942154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"01b47fc7-1a64-44cb-bf9c-898cca8bed2b","savedPayload":{"position":{"x":29759.759570577848,"y":33920.72891942154},"targetPosition":{"x":29935.942617287852,"y":33677.80023794164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"cf8da514-59ee-4653-9cc1-69430acc9458","savedPayload":{"position":{"x":29935.942617287852,"y":33677.80023794164},"targetPosition":{"x":30112.179889514613,"y":33434.84161439404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"7f1cee55-5e8d-4ef6-bcf6-d93ebcd364dd","savedPayload":{"position":{"x":30112.081341129044,"y":33434.631552439794},"targetPosition":{"x":30143.474708288704,"y":33136.159475499015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7d4e2188-8c93-4994-8d1d-ac48e2d042ee","savedPayload":{"position":{"x":30143.474708288704,"y":33136.159475499015},"targetPosition":{"x":30174.932833579667,"y":32838.137954305625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"09f38b0e-fe77-4c18-94f7-ccf4065bd658","savedPayload":{"position":{"x":29772.844422223552,"y":33283.54921569672},"targetPosition":{"x":29973.88377786049,"y":33060.741059920125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3bf360bd-8eaf-4902-b171-228ee072b89f","savedPayload":{"position":{"x":29973.88377786049,"y":33060.741059920125},"targetPosition":{"x":30174.932833579667,"y":32838.137954305625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"220cd9e4-fafa-44dc-bded-294af6ccc6df","savedPayload":{"position":{"x":29588.164690634123,"y":32962.447589802534},"targetPosition":{"x":29881.55127058081,"y":32900.126240651916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"58aae9b5-2a28-49dc-b8f6-b2f4a0ed6897","savedPayload":{"position":{"x":29881.55127058081,"y":32900.126240651916},"targetPosition":{"x":30174.932833579667,"y":32838.137954305625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"94e31b0c-1e6e-4a82-aaaf-62f1ceaea758","savedPayload":{"position":{"x":30174.932833579667,"y":32838.137954305625},"targetPosition":{"x":30662.455253128323,"y":31743.375196346577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"20e99942-a476-436b-8a1c-a9347a048114","savedPayload":{"position":{"x":30363.938333749466,"y":31774.39366742148},"targetPosition":{"x":30662.455253128323,"y":31743.375196346577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[],"id":"8f3d8a80-6472-48d8-a081-8de85b844295","savedPayload":{"position":{"x":30662.455253128323,"y":31743.375196346577},"targetPosition":{"x":31633.219625647092,"y":31038.6715717692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"New Manage Stage","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"a32cdd1e-19ce-4bcc-b7c9-52a9e9466dbf","savedPayload":{"position":{"x":30082.885861767205,"y":30674.271706394175},"targetPosition":{"x":30513.31088525428,"y":30719.649203626926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"291bbfda-c1d5-49f6-966b-3f7704ffbda8","savedPayload":{"position":{"x":30449.70849833978,"y":30712.79175326387},"targetPosition":{"x":30918.36861727118,"y":30762.229078092434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bbb0aab4-c6e3-47f8-b737-9e6fcafcfba1","savedPayload":{"position":{"x":30909.98604740559,"y":30862.912765036395},"targetPosition":{"x":31305.47719822368,"y":30800.44309590927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"34d1cb14-5351-42d4-8827-b2b0aa013b99","savedPayload":{"position":{"x":30605.26333421754,"y":30205.78693761094},"targetPosition":{"x":30971.141125384296,"y":30043.93219128299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"6f6150fc-3a6a-4686-a350-ff141bc83623","savedPayload":{"position":{"x":30331.119285087545,"y":35572.907331899485},"targetPosition":{"x":30184.879145673036,"y":35261.15720629123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3ef9a345-0c46-428c-94f3-80decc872e23","savedPayload":{"position":{"x":30184.879145673036,"y":35261.15720629123},"targetPosition":{"x":30042.73490234879,"y":34942.295632265814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d34694ed-b6c6-4fca-ae8d-95e3f30a4888","savedPayload":{"position":{"x":30042.73490234879,"y":34942.295632265814},"targetPosition":{"x":29899.932990268222,"y":34619.12789061077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0be8dfdf-f4ff-4616-b788-c04b3c64eb1b","savedPayload":{"position":{"x":30735.67671147718,"y":29734.66378505733},"targetPosition":{"x":30971.141125384296,"y":30043.93219128299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"45b5b7a2-8cc1-47f8-99c5-8042c7925a89","savedPayload":{"position":{"x":31785.587628057838,"y":28921.80729278172},"targetPosition":{"x":31743.582103773908,"y":29319.674508790024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9bb86da8-d8fa-4b5c-b6a5-952327938371","savedPayload":{"position":{"x":31743.582103773908,"y":29319.674508790024},"targetPosition":{"x":31701.637548164443,"y":29717.658565468908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"05f551c5-32a7-4986-8753-5ac0bd0d4acc","savedPayload":{"position":{"x":32172.013825409394,"y":29069.989139590693},"targetPosition":{"x":31936.92706800949,"y":29393.78099313842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9ba9b517-a809-4b01-848f-5bb31ab1f92c","savedPayload":{"position":{"x":31936.92706800949,"y":29393.78099313842},"targetPosition":{"x":31701.637548164443,"y":29717.658565468908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"c7001aa3-f176-40e4-a6d7-2744966363cd","savedPayload":{"position":{"x":32432.555394753173,"y":29391.497494618434},"targetPosition":{"x":32067.232883950746,"y":29554.586947261843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"094200d6-3761-4dd0-8073-083d14bbeb71","savedPayload":{"position":{"x":32067.232883950746,"y":29554.586947261843},"targetPosition":{"x":31701.637548164443,"y":29717.658565468908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"aaee1ab9-d92b-4f01-afc1-654347d9511a","savedPayload":{"position":{"x":32497.38168861228,"y":29799.19204314747},"targetPosition":{"x":32099.598869002944,"y":29758.585748231508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9143d8e3-b435-49f2-907e-a874e794d32a","savedPayload":{"position":{"x":32099.598869002944,"y":29758.585748231508},"targetPosition":{"x":31701.637548164443,"y":29717.658565468908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"9e27b341-5396-4a81-b483-13c9e497f3c4","savedPayload":{"position":{"x":32342.498436465543,"y":30179.457799669777},"targetPosition":{"x":32025.30263324656,"y":29951.650215787853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77518efa-2184-4602-8f5a-f3e106c6845c","savedPayload":{"position":{"x":32025.30263324656,"y":29951.650215787853},"targetPosition":{"x":31701.637548164443,"y":29717.658565468908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9d8fbd63-29f2-41f9-85f1-92643ff12c6d","savedPayload":{"position":{"x":31701.637548164443,"y":29717.658565468908},"targetPosition":{"x":31336.23232758938,"y":29880.60125077836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"a92424e5-ab90-424c-85cc-b8697bcb6009","savedPayload":{"position":{"x":31336.23232758938,"y":29880.60125077836},"targetPosition":{"x":30971.141125384296,"y":30043.93219128299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"8aff2c3b-ecf9-4df8-84ea-ffd6ba9c9612"}}}],"announcements":[],"id":"58effb7e-0927-4c47-8745-58895dead2ea","savedPayload":{"position":{"x":30971.141125384296,"y":30043.93219128299},"targetPosition":{"x":31146.90148203014,"y":30438.426905457258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"49b3a850-8a9e-41c7-8b5f-e5f3a21ce83d","savedPayload":{"position":{"x":30452.45845106373,"y":29521.565879294885},"targetPosition":{"x":30826.360212497813,"y":29664.135819369385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"c6bc7845-b742-4bd0-a28e-f76bafd9ae16","savedPayload":{"position":{"x":29620.502448153133,"y":29009.482794068932},"targetPosition":{"x":30020.48723524759,"y":28999.95192930794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0dea846d-7054-4651-9c26-e34941dd4128","savedPayload":{"position":{"x":30020.48723524759,"y":28999.95192930794},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"9ef393ca-8c24-4089-a87e-8ce151f2b828","savedPayload":{"position":{"x":29673.23605654033,"y":28702.255596384566},"targetPosition":{"x":30046.812421762977,"y":28846.20864900197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6be2982e-d239-488c-aa26-68e9b2a7af09","savedPayload":{"position":{"x":30046.812421762977,"y":28846.20864900197},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"69018aba-59d9-4f07-a2d5-d93c75981c93","savedPayload":{"position":{"x":29839.877390688383,"y":28438.113330539305},"targetPosition":{"x":30130.17776697706,"y":28714.084841759402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6ce688b0-0234-4ad1-8afa-540325306d5c","savedPayload":{"position":{"x":30130.17776697706,"y":28714.084841759402},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"b882f3e8-28e5-49f8-90a1-c27ac4723c90","savedPayload":{"position":{"x":30094.91632821422,"y":28257.6976118685},"targetPosition":{"x":30257.805692474005,"y":28623.700232213934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d21fc9d4-bec7-4df6-9083-203e877f30de","savedPayload":{"position":{"x":30257.805692474005,"y":28623.700232213934},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"2d8c394e-6772-4d45-a052-a5c04202637c","savedPayload":{"position":{"x":30399.135146391483,"y":28188.951611978144},"targetPosition":{"x":30409.894262867972,"y":28589.425905596338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"577a9703-74fb-4ea1-9e6d-1a6083c6ac29","savedPayload":{"position":{"x":30409.894262867972,"y":28589.425905596338},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14 > chart.at01hs.base7EMA.previous.previous.ema21 - chart.at01hs.base7EMA.previous.previous.ema14","id":"af2fed7e-8530-49cb-8d8c-818c0dfd3865","savedPayload":{"position":{"x":30705.807101415852,"y":28242.043260085895},"targetPosition":{"x":30563.534489641403,"y":28615.829252344352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b902eb1-aaaf-41e5-abab-95f7673e1ff5","savedPayload":{"position":{"x":30563.534489641403,"y":28615.829252344352},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 previous ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","id":"2a5efff2-2a04-4585-813e-e3ac2ffb8b95","savedPayload":{"position":{"x":30970.307494097444,"y":28407.94708158223},"targetPosition":{"x":30695.559309238633,"y":28699.077640496787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"081cec88-c2c1-49f8-88c1-760fc50e7f91","savedPayload":{"position":{"x":30695.559309238633,"y":28699.077640496787},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7abbde01-e871-4b28-973e-51ca5f3f1c4d","savedPayload":{"position":{"x":30421.294627160216,"y":28990.627562965827},"targetPosition":{"x":30585.34029111149,"y":29357.81367658895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"276723b8-0d32-49d8-b9b3-bd29368160f7","savedPayload":{"position":{"x":30585.34029111149,"y":29357.81367658895},"targetPosition":{"x":30826.360212497813,"y":29664.135819369385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"8aff2c3b-ecf9-4df8-84ea-ffd6ba9c9612"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"16b5e57d-57f9-401a-9134-4dd112797d48","savedPayload":{"position":{"x":30789.66764429344,"y":28185.714818709304},"targetPosition":{"x":30951.533541835262,"y":28551.74444969474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f2bb1dbc-702a-413a-9421-9ac5309fe6f0","savedPayload":{"position":{"x":30951.533541835262,"y":28551.74444969474},"targetPosition":{"x":31113.728474558935,"y":28917.21393819002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"f73c271b-afa2-45ee-91d4-6aee3b3a8be9","savedPayload":{"position":{"x":31400.498422214296,"y":28170.05020162896},"targetPosition":{"x":31257.123145725003,"y":28543.607202208215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"feaca6ce-0573-401a-909a-4e25687ce708","savedPayload":{"position":{"x":31257.123145725003,"y":28543.607202208215},"targetPosition":{"x":31113.728474558935,"y":28917.21393819002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 prev.ema7 div 2 prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","id":"a9c93bde-d56d-42e9-a447-b29a02885149","savedPayload":{"position":{"x":31844.247105636758,"y":28591.21341930776},"targetPosition":{"x":31479.031034712203,"y":28754.272707956417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"72e2d105-feba-47a0-8eaf-6c83296a3863","savedPayload":{"position":{"x":31479.031034712203,"y":28754.272707956417},"targetPosition":{"x":31113.728474558935,"y":28917.21393819002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ab94fcaf-55b6-4be2-a44a-b399dda60644","savedPayload":{"position":{"x":31113.728474558935,"y":28917.21393819002},"targetPosition":{"x":30970.110994537692,"y":29290.905083627942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"07ca2734-a819-49f7-99f7-f19f58e5ffba","savedPayload":{"position":{"x":30970.110994537692,"y":29290.905083627942},"targetPosition":{"x":30826.360212497813,"y":29664.135819369385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"58effb7e-0927-4c47-8745-58895dead2ea"}}}],"announcements":[],"id":"e1d12230-902a-46bf-bb48-1fafbd162e1e","savedPayload":{"position":{"x":30826.360212497813,"y":29664.135819369385},"targetPosition":{"x":30971.141125384296,"y":30043.93219128299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"b53c2ea8-9341-416a-bef3-0b7fb86530d5","savedPayload":{"position":{"x":30285.58406428977,"y":29243.050178096328},"targetPosition":{"x":30683.146099147776,"y":29284.109186527035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"de39a349-8739-4e13-ba9d-91acedf7c835","savedPayload":{"position":{"x":33888.595369445764,"y":37801.62556418717},"targetPosition":{"x":33722.19827986528,"y":37427.67930882089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b8a44bb5-4965-4d76-8a55-6f0274d84b0c","savedPayload":{"position":{"x":33722.19827986528,"y":37427.67930882089},"targetPosition":{"x":33555.69633665479,"y":37053.5235719997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"4529e123-22d2-40a3-a751-9069e69fa624","savedPayload":{"position":{"x":33074.796850053746,"y":37716.09042113447},"targetPosition":{"x":33315.21727858583,"y":37384.885751050235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c94daca3-f53c-42b6-970c-586d9b605b04","savedPayload":{"position":{"x":33315.21727858583,"y":37384.885751050235},"targetPosition":{"x":33555.69633665479,"y":37053.5235719997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0a283745-7a51-45ab-b781-538c6e1f6a8a","savedPayload":{"position":{"x":33555.69633665479,"y":37053.5235719997},"targetPosition":{"x":33598.24181754929,"y":36645.99161286938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"be4359e1-bbfa-404c-b1ab-e073d8b4b173","savedPayload":{"position":{"x":30725.365031712365,"y":28886.42343824879},"targetPosition":{"x":30683.146099147776,"y":29284.109186527035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"58effb7e-0927-4c47-8745-58895dead2ea"}}}],"announcements":[],"id":"8aff2c3b-ecf9-4df8-84ea-ffd6ba9c9612","savedPayload":{"position":{"x":30683.146099147776,"y":29284.109186527035},"targetPosition":{"x":30826.360212497813,"y":29664.135819369385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c97bbced-498a-49dd-847a-a52170294ea9","savedPayload":{"position":{"x":30981.651480104963,"y":30564.710684840276},"targetPosition":{"x":31305.47719822368,"y":30800.44309590927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"06a4b038-f8fb-477e-9c1b-4c40ae6262ab","savedPayload":{"position":{"x":31174.04809078839,"y":31458.634409852893},"targetPosition":{"x":31111.5,"y":31060.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2b7c8ed1-9fc0-48ee-9fa1-1a0de54f71e3","savedPayload":{"position":{"x":31243.032461114977,"y":30404.860924837452},"targetPosition":{"x":31305.47719822368,"y":30800.44309590927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f9453ecf-918d-4816-a43e-216a4af33d75","savedPayload":{"position":{"x":31305.47719822368,"y":30800.44309590927},"targetPosition":{"x":31633.219625647092,"y":31038.6715717692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"a003e0e0-4a5c-4b36-a50b-98e69073a310","savedPayload":{"position":{"x":31675.554585333728,"y":30258.903145976074},"targetPosition":{"x":31758.97925625366,"y":30650.411333418004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"4b1b8e1d-da67-439f-8a1b-dd82581ec9c9","savedPayload":{"position":{"x":31742.39930563862,"y":31180.805189286868},"targetPosition":{"x":31961.651949358587,"y":30842.396421048194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b4633c27-f49c-42b5-be24-a2ea7d5ee8f7","savedPayload":{"position":{"x":31977.08325902516,"y":30314.67393304803},"targetPosition":{"x":31758.97925625366,"y":30650.411333418004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1b84ef5d-8088-401c-a38f-5d9222a01ec3","savedPayload":{"position":{"x":31758.97925625366,"y":30650.411333418004},"targetPosition":{"x":31633.219625647092,"y":31038.6715717692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f1ca0dbb-65e8-4c60-84f0-89596e22e9be","savedPayload":{"position":{"x":31633.219625647092,"y":31038.6715717692},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S7 - 3H Down","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"b7ef7546-2729-499d-88db-7c958392fb0e","savedPayload":{"position":{"x":32756.711113974747,"y":31607.61024363443},"targetPosition":{"x":32358.625604152276,"y":31594.206592670653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40201dbd-8fbe-41aa-acd3-c0cea3fff9de","savedPayload":{"position":{"x":32358.625604152276,"y":31594.206592670653},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"6dc11e45-63d6-4246-9a9a-294a45931b14","savedPayload":{"position":{"x":32699.286732443106,"y":31878.47863401902},"targetPosition":{"x":32329.570598085495,"y":31729.497664114646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2dbb8f61-68b4-4835-a6f7-6d7c0c2248ee","savedPayload":{"position":{"x":32329.570598085495,"y":31729.497664114646},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"391ae861-6932-4481-bc4f-15a284dafe80","savedPayload":{"position":{"x":32552.09531778457,"y":32114.04753440217},"targetPosition":{"x":32255.859915100125,"y":31847.386259193245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"52613d30-4103-4272-b871-e3785881dcd8","savedPayload":{"position":{"x":32255.859915100125,"y":31847.386259193245},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","id":"7bf0cb68-72c5-4df6-891e-ee3b08bdc439","savedPayload":{"position":{"x":32334.114842423976,"y":32284.565342679653},"targetPosition":{"x":32147.15431300346,"y":31932.905356218682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5bab5664-c7aa-4e60-aecd-30db721958b0","savedPayload":{"position":{"x":32147.15431300346,"y":31932.905356218682},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"3d771526-7fc9-4c67-b4b4-50e2df038870","savedPayload":{"position":{"x":32070.924868337093,"y":32370.08100269519},"targetPosition":{"x":32015.591548265118,"y":31975.736423733935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1298f042-2f23-4fc7-8359-5bdd3f7e7da1","savedPayload":{"position":{"x":32015.591548265118,"y":31975.736423733935},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Side or Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope === \"Side\" || chart.at06hs.bollingerSubChannel.slope === \"Gentle\"","id":"9e520195-93e0-4d66-b312-eb2c90921b3c","savedPayload":{"position":{"x":31794.650807013048,"y":32360.45078170795},"targetPosition":{"x":31877.416410439342,"y":31970.941978356223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"16707f87-40dc-44ae-a7f8-2df9dc07d53c","savedPayload":{"position":{"x":31877.416410439342,"y":31970.941978356223},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side","code":"chart.at02hs.bollingerSubChannel.slope > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","id":"8143bcc8-af0f-45ef-bbde-1f67fa30b819","savedPayload":{"position":{"x":31537.944515588584,"y":32256.803208422127},"targetPosition":{"x":31748.99837175806,"y":31919.0842921405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0f2efdf7-69dc-4d15-9bf4-6f714894d100","savedPayload":{"position":{"x":31748.99837175806,"y":31919.0842921405},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"10f38b80-2f33-4ad0-b849-019b27b36921","savedPayload":{"position":{"x":31332.159441515407,"y":32071.60292915926},"targetPosition":{"x":31646.02399287895,"y":31826.300241802153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"080177f0-9708-4e76-b021-f4857ee42930","savedPayload":{"position":{"x":31646.02399287895,"y":31826.300241802153},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5dd3ebf8-bbcd-4978-8d28-0f4ecfe80ba4","savedPayload":{"position":{"x":31960.09358765132,"y":31580.130968973965},"targetPosition":{"x":31811.375456622718,"y":31210.024612755467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b4791836-6c85-4279-b75c-ba308154012c","savedPayload":{"position":{"x":31811.375456622718,"y":31210.024612755467},"targetPosition":{"x":31687.76480518738,"y":30831.48557074782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"81a9ee22-bb7d-4a2b-b3ca-7df88b5cfcd1","savedPayload":{"position":{"x":30964.170002711508,"y":32252.191088803193},"targetPosition":{"x":31144.768944066076,"y":31897.42162298904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78d25152-3354-4e6c-8118-e621e2eab4e0","savedPayload":{"position":{"x":31144.768944066076,"y":31897.42162298904},"targetPosition":{"x":31325.724991307263,"y":31541.89217527304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1067e774-8e02-44c0-a86a-43c62a2e1a69","savedPayload":{"position":{"x":31325.724991307263,"y":31541.89217527304},"targetPosition":{"x":31506.68394076039,"y":31186.464463611115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"26a5deff-364b-4f52-b2f2-24eb39f8a9aa","savedPayload":{"position":{"x":31506.68394076039,"y":31186.464463611115},"targetPosition":{"x":31687.76480518738,"y":30831.48557074782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"7ca3641e-2701-4ae6-aebf-419045fa3ef7","savedPayload":{"position":{"x":31415.350855782843,"y":31953.662040186926},"targetPosition":{"x":31228.774127711946,"y":31601.810661783034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"50506cba-6ce7-47ee-a28f-50cae0a62f61","savedPayload":{"position":{"x":31228.774127711946,"y":31601.810661783034},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"b0bf87ab-9049-4c24-918b-b7bc805db2a8","savedPayload":{"position":{"x":31151.8983901484,"y":32039.378083013424},"targetPosition":{"x":31096.520470152915,"y":31644.940254589535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"56da2b2c-74c3-4328-b75c-4990aef44ca0","savedPayload":{"position":{"x":31096.520470152915,"y":31644.940254589535},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"0ed3b727-9493-4064-8404-d2d48e9213ad","savedPayload":{"position":{"x":30875.88748954805,"y":32029.398005509585},"targetPosition":{"x":30958.5310225033,"y":31640.03030162792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f6f8fad9-0588-4d7c-81a8-5738f0d6c7e6","savedPayload":{"position":{"x":30958.5310225033,"y":31640.03030162792},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","id":"5fe7a35e-a56c-4ad4-854d-5b13ca036669","savedPayload":{"position":{"x":30619.45917271261,"y":31925.61009127704},"targetPosition":{"x":30830.267658267254,"y":31588.123770907005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b64fa95-a27a-4e68-9ae1-fa8358e23f41","savedPayload":{"position":{"x":30830.267658267254,"y":31588.123770907005},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"23e2569a-2867-4ebe-aa2b-21254ab0c096","savedPayload":{"position":{"x":30413.92809880018,"y":31740.258282032806},"targetPosition":{"x":30727.44993708856,"y":31495.42966547764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f6a6ace-3508-4a78-953a-a9944f9b9077","savedPayload":{"position":{"x":30727.44993708856,"y":31495.42966547764},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Side or Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope === \"Side\" || chart.at06hs.bollingerSubChannel.slope === \"Gentle\"","id":"565a511b-5264-4cfd-ad94-c8b316f5e19c","savedPayload":{"position":{"x":30284.10436293634,"y":31495.651010108508},"targetPosition":{"x":30662.4945590601,"y":31373.11363325245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5e3a86fa-9e96-47ef-b87b-3324c9edf8a3","savedPayload":{"position":{"x":30662.4945590601,"y":31373.11363325245},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side","code":"chart.at02hs.bollingerSubChannel.slope > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","id":"ef7ba943-87cb-4149-8ab2-a562a34fa524","savedPayload":{"position":{"x":30245.599644538674,"y":31221.709525819122},"targetPosition":{"x":30643.252589579934,"y":31236.12546813472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e624d8a7-586a-4198-a528-b6ee474245dd","savedPayload":{"position":{"x":30643.252589579934,"y":31236.12546813472},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"9992327b-1059-4396-8766-514b6384a81b","savedPayload":{"position":{"x":30303.138677412127,"y":30950.697921181665},"targetPosition":{"x":30672.107581803288,"y":31100.54665498549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0701df03-b97b-4d03-89a7-a9fb764d1d21","savedPayload":{"position":{"x":30672.107581803288,"y":31100.54665498549},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b72964a4-f423-4930-a40d-ced67854d28e","savedPayload":{"position":{"x":31041.820593356788,"y":31249.659564954316},"targetPosition":{"x":31308.726111061416,"y":30953.636053954928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"0f375c4e-1181-48dc-a5c6-98808692de0b","savedPayload":{"position":{"x":31430.805525066622,"y":30518.836523760896},"targetPosition":{"x":31255.5,"y":30712.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2fa6c84-789c-4629-834d-05326002e6af","savedPayload":{"position":{"x":31109.176798356515,"y":30963.27212808858},"targetPosition":{"x":31308.726111061416,"y":30953.636053954928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51e2b55b-66ca-45c9-9cfd-ec82ac5ce3d6","savedPayload":{"position":{"x":31308.726111061416,"y":30953.636053954928},"targetPosition":{"x":31687.76480518738,"y":30831.48557074782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"adc2c73c-702f-46ce-90ad-dbbc7f75ad3d","savedPayload":{"position":{"x":31687.76480518738,"y":30831.48557074782},"targetPosition":{"x":31869.68557793254,"y":30474.935931910186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"35334cbd-d4ce-49aa-aaf6-dd76ad2fc0e2","savedPayload":{"position":{"x":29872.650486479462,"y":31845.644615987683},"targetPosition":{"x":29722.94521058858,"y":31586.628418935463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"09357e03-4041-4836-8d0b-ff241d96d998","savedPayload":{"position":{"x":32805.75142358775,"y":32943.72579653},"targetPosition":{"x":33016.594443523325,"y":32732.39288563737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a39a586f-7f44-4599-81c9-26989d479b34","savedPayload":{"position":{"x":33140.34468073813,"y":32827.35630227829},"targetPosition":{"x":33289.50677656069,"y":32568.28724312379},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fdd8bdf-bcd5-4318-9786-18d2e5e0cc65","savedPayload":{"position":{"x":33289.50677656069,"y":32568.28724312379},"targetPosition":{"x":33438.553943954204,"y":32309.40114138139},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"37c5e03a-b280-40d2-a2e8-e040f87303f8","savedPayload":{"position":{"x":33438.553943954204,"y":32309.40114138139},"targetPosition":{"x":29722.94521058858,"y":31586.628418935463},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"7f426eb4-a1d0-4bc1-90fc-a834c34b7c17","savedPayload":{"position":{"x":29722.94521058858,"y":31586.628418935463},"targetPosition":{"x":29722.725213705256,"y":31287.846173686503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7a4858da-e282-4158-bea4-53b72dbb1817","savedPayload":{"position":{"x":29722.725213705256,"y":31287.846173686503},"targetPosition":{"x":29722.457835209898,"y":30989.4429009283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"4d50fd19-7ed8-453e-82bc-532f4493a243","savedPayload":{"position":{"x":29343.437731382317,"y":31744.382995141423},"targetPosition":{"x":29371.152393632306,"y":31472.02590154781},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"af81c406-ab61-41fb-be2f-e442ffc2f8f0","savedPayload":{"position":{"x":28476.443476226017,"y":32218.25881730505},"targetPosition":{"x":28649.504473241068,"y":31955.95291544174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dde94435-60a3-4c47-94cf-3e8175ac1634","savedPayload":{"position":{"x":28649.504473241068,"y":31955.95291544174},"targetPosition":{"x":28825.08157382303,"y":31714.314372018624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"3d7be9e2-afe8-4d9c-be2c-09af6c358225","savedPayload":{"position":{"x":28236.8604574126,"y":31599.372993702822},"targetPosition":{"x":28528.02184771264,"y":31682.79587950174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fa5631d8-a1d0-4139-85ea-67590dd474cc","savedPayload":{"position":{"x":28528.02184771264,"y":31682.79587950174},"targetPosition":{"x":28825.08157382303,"y":31714.314372018624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1150cede-dcd1-49d1-84f7-ffe774dabf5b","savedPayload":{"position":{"x":28825.08157382303,"y":31714.314372018624},"targetPosition":{"x":29098.089018424576,"y":31593.125254821593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"23a3f497-117a-4975-a899-a4dbeb320a60","savedPayload":{"position":{"x":29098.089018424576,"y":31593.125254821593},"targetPosition":{"x":29371.152393632306,"y":31472.02590154781},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"73ab31c8-85c5-464a-8f79-1e368c01ae6a","savedPayload":{"position":{"x":29371.152393632306,"y":31472.02590154781},"targetPosition":{"x":29546.836137447066,"y":31230.632814358563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"427a98f5-f0bc-4f3e-bd3e-290a2a61a0d8","savedPayload":{"position":{"x":29546.836137447066,"y":31230.632814358563},"targetPosition":{"x":29722.457835209898,"y":30989.4429009283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"5476a8e6-a075-466a-9942-13ce4962b132","savedPayload":{"position":{"x":29153.71032089733,"y":31172.81373022447},"targetPosition":{"x":29438.096980804145,"y":31081.090618860526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7db9c851-0940-43fd-9366-641e540c24d8","savedPayload":{"position":{"x":29438.096980804145,"y":31081.090618860526},"targetPosition":{"x":29722.457835209898,"y":30989.4429009283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"065a3e90-45c2-45d6-846d-7dbbd61439db","savedPayload":{"position":{"x":29154.040974378873,"y":30803.964060964398},"targetPosition":{"x":29438.30180708951,"y":30896.630273574876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6e3ea9ca-8dfd-4706-8a44-bee210c3fa64","savedPayload":{"position":{"x":29438.30180708951,"y":30896.630273574876},"targetPosition":{"x":29722.457835209898,"y":30989.4429009283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"01200851-265b-4fd2-a819-e866a534dd69","savedPayload":{"position":{"x":29722.457835209898,"y":30989.4429009283},"targetPosition":{"x":30688.920593803676,"y":30287.74409384992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"cce2c890-b019-4232-804f-1a707f05bcb6","savedPayload":{"position":{"x":30393.584979815012,"y":30240.819745126442},"targetPosition":{"x":30688.920593803676,"y":30287.74409384992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"b23ca59f-d8bc-491c-9a8e-2b32a01b3106","savedPayload":{"position":{"x":31234.10084655184,"y":30186.12957454463},"targetPosition":{"x":30928.5,"y":30137.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a53e9a4d-005d-429d-8cea-80553c0eba26","savedPayload":{"position":{"x":30513.035580242144,"y":30045.471998217716},"targetPosition":{"x":30688.920593803676,"y":30287.74409384992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bdd02df9-2a77-4665-808e-7172a0006e9c","savedPayload":{"position":{"x":30688.920593803676,"y":30287.74409384992},"targetPosition":{"x":31869.68557793254,"y":30474.935931910186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"New Manage Stage","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"cf80ef88-969d-40f5-bc36-ccee6f8518bf","savedPayload":{"position":{"x":31007.622745239525,"y":29170.029822350145},"targetPosition":{"x":31258.45994551566,"y":29479.940552493328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"6fac6741-1d2a-4364-ba55-6d0082d4e33b","savedPayload":{"position":{"x":31258.45994551566,"y":29479.940552493328},"targetPosition":{"x":31530.039463965975,"y":29815.47282469586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"995255a7-571c-4219-bb24-a1dda890ba60","savedPayload":{"position":{"x":31484.467341186282,"y":29844.710284007848},"targetPosition":{"x":31807.16663599444,"y":30079.347663334862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"712dcccd-fca1-4d1b-bf00-497375a831ec","savedPayload":{"position":{"x":31732.539366836572,"y":29162.99263509157},"targetPosition":{"x":32104.571397491785,"y":29306.12811998022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"8facdd27-7830-4433-b373-c259545e9d3f","savedPayload":{"position":{"x":29882.867353640824,"y":35200.38777180643},"targetPosition":{"x":29736.627214226315,"y":34888.63764619818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7b658c8-0903-46b3-867a-c01eaca10bb1","savedPayload":{"position":{"x":29736.627214226315,"y":34888.63764619818},"targetPosition":{"x":29594.48297090207,"y":34569.77607217276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"97de140f-ae6e-435a-8be7-c4d87e38bd83","savedPayload":{"position":{"x":29594.48297090207,"y":34569.77607217276},"targetPosition":{"x":29451.6810588215,"y":34246.608330517716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c137f50a-c8a7-4275-8ae4-80fa7fedd38c","savedPayload":{"position":{"x":32166.756910341126,"y":28889.69689332528},"targetPosition":{"x":32104.571397491785,"y":29306.12811998022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"908a2ee2-d913-46d1-80f5-e7109c803e65","savedPayload":{"position":{"x":28516.71817962912,"y":35192.29086492423},"targetPosition":{"x":28557.156363557613,"y":34808.409636499855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a9ab42d-9b24-461f-95cd-39ab13a54bc3","savedPayload":{"position":{"x":28557.156363557613,"y":34808.409636499855},"targetPosition":{"x":28598.0289573759,"y":34417.78682031214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"d4179fb4-9949-4d82-ae45-8d8be2001ce8","savedPayload":{"position":{"x":28140.072131909215,"y":35047.30833994516},"targetPosition":{"x":28366.86690488685,"y":34735.352904831736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"efab2947-1540-4e8f-a1d9-50289a9b3c7f","savedPayload":{"position":{"x":28366.86690488685,"y":34735.352904831736},"targetPosition":{"x":28598.0289573759,"y":34417.78682031214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"8fbb58cd-53d0-4e19-8f50-590090df0f58","savedPayload":{"position":{"x":27878.964636068133,"y":34737.91437333604},"targetPosition":{"x":28231.258809765986,"y":34581.04278506479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"adec7d7c-258f-4222-a6d6-734f6962d5d9","savedPayload":{"position":{"x":28231.258809765986,"y":34581.04278506479},"targetPosition":{"x":28598.0289573759,"y":34417.78682031214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"b6a70772-8397-41ac-9268-5ad1cd9b0b80","savedPayload":{"position":{"x":27821.86029713508,"y":34336.88651844418},"targetPosition":{"x":28205.040932522745,"y":34376.814161692535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e1ffbeec-66bc-4d38-984b-2aff6740101f","savedPayload":{"position":{"x":28205.040932522745,"y":34376.814161692535},"targetPosition":{"x":28598.0289573759,"y":34417.78682031214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"ff907f99-713a-41f7-8b23-721699b74966","savedPayload":{"position":{"x":27964.313268952294,"y":33958.435928563435},"targetPosition":{"x":28276.53876559214,"y":34184.71313975834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65511340-ee54-484b-8cb6-f2d95dec9bdd","savedPayload":{"position":{"x":28276.53876559214,"y":34184.71313975834},"targetPosition":{"x":28598.0289573759,"y":34417.78682031214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"94b2fbbc-3d32-473c-8008-231664970f09","savedPayload":{"position":{"x":32849.28299676666,"y":29591.021162867517},"targetPosition":{"x":32476.86475119283,"y":29448.614791856868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"02434c11-1d6d-4f15-9577-237b5daba9ea","savedPayload":{"position":{"x":32476.86475119283,"y":29448.614791856868},"targetPosition":{"x":32104.571397491785,"y":29306.12811998022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"cac36b94-3568-446e-a2d2-9d860bd8ad0f"}}}],"announcements":[],"id":"74e77f0f-2945-48ac-ab1f-47a65feb84ec","savedPayload":{"position":{"x":32104.571397491785,"y":29306.12811998022},"targetPosition":{"x":31950.06586342185,"y":29709.082658113486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"db68ae8b-4414-43f9-b275-c97b3a6a80c6","savedPayload":{"position":{"x":32105.102125287416,"y":28580.59467680565},"targetPosition":{"x":32267.4143234272,"y":28944.957294860884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"2ccb9d00-d677-44b6-8b92-edbcaf349d29","savedPayload":{"position":{"x":33290.65093021714,"y":34555.75511226941},"targetPosition":{"x":33540.8213283894,"y":34865.279508582666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5649c96-59d6-4f0e-a259-063e7355eb48","savedPayload":{"position":{"x":33540.8213283894,"y":34865.279508582666},"targetPosition":{"x":33791.47346791017,"y":35173.62066748123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"2689f28d-6ca9-4e82-8327-eae9956a751a","savedPayload":{"position":{"x":33676.94695072527,"y":34395.80631745438},"targetPosition":{"x":33738.340953101884,"y":34789.24855876006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b19aacc4-d892-41dc-a487-870ca6e13ce2","savedPayload":{"position":{"x":33738.340953101884,"y":34789.24855876006},"targetPosition":{"x":33791.47346791017,"y":35173.62066748123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"9e40ebf6-fd42-43da-b390-30926b085b8f","savedPayload":{"position":{"x":34079.123783303585,"y":34430.169852666026},"targetPosition":{"x":33935.38002039342,"y":34801.925115799015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2b8766b-b4da-40c7-8d88-76f3969065aa","savedPayload":{"position":{"x":33935.38002039342,"y":34801.925115799015},"targetPosition":{"x":33791.47346791017,"y":35173.62066748123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"cae32279-d999-4c13-8eb6-cad3063c74d4","savedPayload":{"position":{"x":34412.44222154852,"y":34672.67036466439},"targetPosition":{"x":34102.0921039295,"y":34923.20814374665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"04ac8528-0696-413b-a739-7825670c0234","savedPayload":{"position":{"x":34102.0921039295,"y":34923.20814374665},"targetPosition":{"x":33791.47346791017,"y":35173.62066748123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"6a80e7f5-300b-417d-9f9d-49803b8f51f8","savedPayload":{"position":{"x":34579.99550348594,"y":35050.04227125973},"targetPosition":{"x":34185.89807327404,"y":35111.97251419154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e23fa3d-13f0-45fe-990f-d268e58ff1cf","savedPayload":{"position":{"x":34185.89807327404,"y":35111.97251419154},"targetPosition":{"x":33791.47346791017,"y":35173.62066748123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"38fc838f-01a5-4a33-a35f-e185f52c295e","savedPayload":{"position":{"x":33790.73756529026,"y":35173.32453395331},"targetPosition":{"x":33648.14450005887,"y":35545.010999298036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0c86ae11-a07f-4c31-a33c-05debf70c23c","savedPayload":{"position":{"x":33648.14450005887,"y":35545.010999298036},"targetPosition":{"x":32267.4143234272,"y":28944.957294860884},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"cac36b94-3568-446e-a2d2-9d860bd8ad0f"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"301720b6-e436-4134-be19-0bd0892f624d","savedPayload":{"position":{"x":32865.55424226058,"y":37100.53572793926},"targetPosition":{"x":32801.62373321796,"y":36696.25923472225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e8c0fcc-d597-40f7-b07f-16214f744b0e","savedPayload":{"position":{"x":32801.62373321796,"y":36696.25923472225},"targetPosition":{"x":32731.943750689665,"y":36255.54215215661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"b7683607-6589-414b-b6de-5aa132d6baef","savedPayload":{"position":{"x":32067.299039463076,"y":36794.11958615513},"targetPosition":{"x":32385.501351360777,"y":36536.28705492211},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e247b889-3abc-469b-b26d-fc11a08bf9c8","savedPayload":{"position":{"x":32385.501351360777,"y":36536.28705492211},"targetPosition":{"x":32731.943750689665,"y":36255.54215215661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"605adda8-a968-4819-af76-2ee257f07e66","savedPayload":{"position":{"x":32996.142903277054,"y":28620.519213581738},"targetPosition":{"x":32631.78472413752,"y":28782.773153677914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"cc9492df-3289-4d6a-b152-bad2fc656730","savedPayload":{"position":{"x":32631.78472413752,"y":28782.773153677914},"targetPosition":{"x":32267.4143234272,"y":28944.957294860884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"74e77f0f-2945-48ac-ab1f-47a65feb84ec"}}}],"announcements":[],"id":"7fc97392-92a0-48cc-a5d3-799b1c2b8c35","savedPayload":{"position":{"x":32267.4143234272,"y":28944.957294860884},"targetPosition":{"x":32104.571397491785,"y":29306.12811998022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"895b6803-0996-41a6-9a13-93f488d7aee4","savedPayload":{"position":{"x":32159.626044730376,"y":28262.42213582802},"targetPosition":{"x":32410.183160417215,"y":28572.417370269148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"df898928-7078-4e61-a616-169789552b36","savedPayload":{"position":{"x":33440.34343799904,"y":37429.106004094116},"targetPosition":{"x":33273.94634841856,"y":37055.159748727834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c02edb77-0d76-4656-8d2f-068eaddabff7","savedPayload":{"position":{"x":33273.94634841856,"y":37055.159748727834},"targetPosition":{"x":33107.44440520807,"y":36681.00401190665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"3bdea448-de7a-4188-b9ec-350dbf88470a","savedPayload":{"position":{"x":32626.544918607025,"y":37343.570861041415},"targetPosition":{"x":32866.96534713911,"y":37012.36619095718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fbc8a359-f853-44a6-831d-a2078edeebe6","savedPayload":{"position":{"x":32866.96534713911,"y":37012.36619095718},"targetPosition":{"x":33107.44440520807,"y":36681.00401190665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f4664806-47a1-41be-956e-079599c0df49","savedPayload":{"position":{"x":33107.44440520807,"y":36681.00401190665},"targetPosition":{"x":33149.98988610257,"y":36273.47205277633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b75aa4bc-9257-4444-98ca-afe6377b914a","savedPayload":{"position":{"x":32720.007440830715,"y":28321.18817261144},"targetPosition":{"x":32410.183160417215,"y":28572.417370269148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"74e77f0f-2945-48ac-ab1f-47a65feb84ec"}}}],"announcements":[],"id":"cac36b94-3568-446e-a2d2-9d860bd8ad0f","savedPayload":{"position":{"x":32410.183160417215,"y":28572.417370269148},"targetPosition":{"x":32267.4143234272,"y":28944.957294860884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7ce8f923-1393-45ac-97d6-742e2cff6627","savedPayload":{"position":{"x":31745.02301611295,"y":29685.056363586977},"targetPosition":{"x":31807.16663599444,"y":30079.347663334862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"cce97d86-51a4-421b-ab3f-0378a33d0563","savedPayload":{"position":{"x":32244.805525066622,"y":29775.836523760896},"targetPosition":{"x":32069.5,"y":29969.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f219f7a-b837-4ea3-a556-81bed47eae20","savedPayload":{"position":{"x":32041.585952575293,"y":29756.362553668645},"targetPosition":{"x":31807.16663599444,"y":30079.347663334862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0d03ff5b-3162-49a3-ae12-a0e5929de4dd","savedPayload":{"position":{"x":31807.16663599444,"y":30079.347663334862},"targetPosition":{"x":31869.68557793254,"y":30474.935931910186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"1c8d7c9c-e122-4839-a9df-db514ccfa466","savedPayload":{"position":{"x":32443.78411880295,"y":29957.94017527169},"targetPosition":{"x":32226.406850104606,"y":30292.86134791828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"eabb6fbc-81b2-4eba-b222-062d7e7b219e","savedPayload":{"position":{"x":32075.39930563862,"y":30303.805189286868},"targetPosition":{"x":32294.651949358587,"y":29965.396421048194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6935a06b-c142-4601-8637-79d3eba3015e","savedPayload":{"position":{"x":32617.38344944207,"y":30209.38594008121},"targetPosition":{"x":32226.406850104606,"y":30292.86134791828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"68777dc5-38aa-4508-8819-db12202b41c3","savedPayload":{"position":{"x":32226.406850104606,"y":30292.86134791828},"targetPosition":{"x":31869.68557793254,"y":30474.935931910186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fc6676b7-944d-459c-bc06-592b3ae2fd1b","savedPayload":{"position":{"x":31869.68557793254,"y":30474.935931910186},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S2 - 6H Down","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"301d8e64-bde8-4eee-a0cf-b9c57bcb3050","savedPayload":{"position":{"x":32234.440324534728,"y":31685.198935221037},"targetPosition":{"x":31982.173246407383,"y":31389.646556791922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a869bb21-75b5-4621-9760-840cf4896844","savedPayload":{"position":{"x":31982.173246407383,"y":31389.646556791922},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"b3c4a94f-4986-4e55-ba28-f6456a67bd64","savedPayload":{"position":{"x":31969.70451636865,"y":31833.31869527966},"targetPosition":{"x":31849.590605542755,"y":31463.18464013037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7b405bfe-294d-48a8-b1ff-d0c4f4b328d1","savedPayload":{"position":{"x":31849.590605542755,"y":31463.18464013037},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"f4b66e81-3e26-4a04-9687-140ab33bd887","savedPayload":{"position":{"x":31668.20974582201,"y":31869.43108197012},"targetPosition":{"x":31698.734967129512,"y":31481.652370020198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4d1c7a66-dd4a-45f9-956d-6cb68b64920b","savedPayload":{"position":{"x":31698.734967129512,"y":31481.652370020198},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"975153b0-b609-4975-b5d6-26f7bfe675e8","savedPayload":{"position":{"x":31376.60785778446,"y":31787.20304603462},"targetPosition":{"x":31552.95544610948,"y":31440.783608893744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ecc5139a-825f-4c91-8e92-f3719460c66b","savedPayload":{"position":{"x":31552.95544610948,"y":31440.783608893744},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Steep","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Steep\"","id":"a838971e-d8bd-4ded-a418-453b8981ff9e","savedPayload":{"position":{"x":31138.503489096856,"y":31599.473841373},"targetPosition":{"x":31433.865217987634,"y":31346.94829135217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3694b7de-4040-4f51-a025-3d482ad6c127","savedPayload":{"position":{"x":31433.865217987634,"y":31346.94829135217},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H NOT Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope != \"Side\"","id":"fc7ab7ee-a96c-4d9a-ae8e-618cd3ee0769","savedPayload":{"position":{"x":30990.256511828706,"y":31334.90783090023},"targetPosition":{"x":31359.7059535975,"y":31214.620571594114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f681b33-bfa1-46b5-9483-545d3f62791b","savedPayload":{"position":{"x":31359.7059535975,"y":31214.620571594114},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"d6572b86-2aaa-4223-9e6a-0206d8890778","savedPayload":{"position":{"x":30954.425687026902,"y":31034.227478934878},"targetPosition":{"x":31341.868486193758,"y":31064.086948863045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08da37fa-d3c5-49d9-8679-5b80bdff68dd","savedPayload":{"position":{"x":31341.868486193758,"y":31064.086948863045},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"680af7d1-9436-426c-b371-0c51ca813093","savedPayload":{"position":{"x":31729.810159666646,"y":31094.209708940154},"targetPosition":{"x":31876.728519165896,"y":30731.086536864696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"ab2764bc-e2c0-40d8-930f-bd3047f39596","savedPayload":{"position":{"x":31876.728519165896,"y":30731.086536864696},"targetPosition":{"x":32052.882822905718,"y":30384.748725123394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"29130ffe-4d84-411a-90d4-3ee5a6008c21","savedPayload":{"position":{"x":30573.967407399345,"y":30865.044767338284},"targetPosition":{"x":30943.50048121601,"y":30744.974402670025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e6a32c76-eda6-4982-8a3e-220c29218ba2","savedPayload":{"position":{"x":30943.50048121601,"y":30744.974402670025},"targetPosition":{"x":31313.21782034342,"y":30624.877802919116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b31b4647-b5e2-42e5-a1e9-fa0ffafeffc8","savedPayload":{"position":{"x":31313.21782034342,"y":30624.877802919116},"targetPosition":{"x":31682.6972231694,"y":30504.724136086927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"707c998d-da1c-45c1-84de-75ac9a0898b9","savedPayload":{"position":{"x":31682.6972231694,"y":30504.724136086927},"targetPosition":{"x":32052.882822905718,"y":30384.748725123394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"5840e471-a97e-4662-8938-5f1eb21091f0","savedPayload":{"position":{"x":31057.855020732903,"y":30959.629269467543},"targetPosition":{"x":31187.737955266624,"y":30593.52204463944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"447e0866-7372-4a42-b5b1-cd05e0efe728","savedPayload":{"position":{"x":31187.737955266624,"y":30593.52204463944},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"0a447725-e6ac-45ea-bb2c-5f3b968dfc06","savedPayload":{"position":{"x":30798.054534147086,"y":30804.816204348255},"targetPosition":{"x":31058.296133226202,"y":30516.178912692925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9540f515-0603-4cda-bbbd-84d7d104a8e1","savedPayload":{"position":{"x":31058.296133226202,"y":30516.178912692925},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"ad089114-2332-4b0b-b079-4070e1baa4c5","savedPayload":{"position":{"x":30616.980526490526,"y":30561.856583368746},"targetPosition":{"x":30967.726468712906,"y":30394.73857223334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f2c2ddf-c19f-4f32-bda3-b4a3b7e7fb90","savedPayload":{"position":{"x":30967.726468712906,"y":30394.73857223334},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"48b35276-b129-486a-a517-ca3656ff9a53","savedPayload":{"position":{"x":30542.568712081516,"y":30268.072961601036},"targetPosition":{"x":30930.501586083756,"y":30247.795826218786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"179fce4e-890b-4a07-9289-57620f55da9e","savedPayload":{"position":{"x":30930.501586083756,"y":30247.795826218786},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Steep","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Steep\"","id":"45c706e6-6a7c-4b5a-b713-2b87ac0b6550","savedPayload":{"position":{"x":30586.303004546757,"y":29968.42600372806},"targetPosition":{"x":30952.34803604804,"y":30097.916134063787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad485330-bf10-49e7-beaa-d57e0f8564b3","savedPayload":{"position":{"x":30952.34803604804,"y":30097.916134063787},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H NOT Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope != \"Side\"","id":"a360bbf1-b177-4298-80a8-06b6062dc779","savedPayload":{"position":{"x":30741.535335287797,"y":29707.74906833391},"targetPosition":{"x":31029.961639336052,"y":29967.557447555944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8134986-b19a-4715-bb59-dd6bc7c774a8","savedPayload":{"position":{"x":31029.961639336052,"y":29967.557447555944},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"685b785a-4196-4b0a-84c1-0c7ed54e6162","savedPayload":{"position":{"x":30984.63248820747,"y":29526.15155137087},"targetPosition":{"x":31151.60230691471,"y":29876.76561310542},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"747a6cc6-2122-4f62-ab40-bdcfbb8ae702","savedPayload":{"position":{"x":31151.60230691471,"y":29876.76561310542},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e9bc25c6-7eca-42cd-a2c2-dbc196d8929a","savedPayload":{"position":{"x":31318.795481358207,"y":30227.661807410743},"targetPosition":{"x":31706.775997487235,"y":30207.837568084273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"2968a063-b746-4430-944d-95d7db806279","savedPayload":{"position":{"x":32154.805525066622,"y":29905.836523760896},"targetPosition":{"x":31979.5,"y":30099.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5242fd04-b240-476a-89e2-c89ad6520c1b","savedPayload":{"position":{"x":31562.576354452234,"y":30077.0108733803},"targetPosition":{"x":31706.775997487235,"y":30207.837568084273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"88e734b7-e242-4b34-aeca-bb71905973ab","savedPayload":{"position":{"x":31706.775997487235,"y":30207.837568084273},"targetPosition":{"x":32052.882822905718,"y":30384.748725123394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"73a50844-7c64-4816-a04d-db5da604663b","savedPayload":{"position":{"x":32052.882822905718,"y":30384.748725123394},"targetPosition":{"x":32433.355355014213,"y":30261.473769260487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"64b77603-5226-4bb0-8b4f-30f6aeed68d9","savedPayload":{"position":{"x":30111.63955779835,"y":29829.545701782456},"targetPosition":{"x":30187.057117096716,"y":29547.845858548342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"c6c5ef8c-570d-4c27-80b3-521ff8c7dfd5","savedPayload":{"position":{"x":29060.669915290688,"y":29849.453861610516},"targetPosition":{"x":29342.200079118393,"y":29774.177461183208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"64166d63-e0f3-4271-b427-ea524d9d30a9","savedPayload":{"position":{"x":29342.200079118393,"y":29774.177461183208},"targetPosition":{"x":29623.921417779344,"y":29698.795938007857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9886efaf-3e04-48ed-8e2d-24efce78bcb1","savedPayload":{"position":{"x":29623.921417779344,"y":29698.795938007857},"targetPosition":{"x":29905.533851606528,"y":29623.3668189887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4787a1ba-b078-454d-9fa1-2742ae00ff26","savedPayload":{"position":{"x":29905.533851606528,"y":29623.3668189887},"targetPosition":{"x":30187.057117096716,"y":29547.845858548342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"d6880769-cf36-45b9-80ab-109068583690","savedPayload":{"position":{"x":30187.057117096716,"y":29547.845858548342},"targetPosition":{"x":30392.89365093651,"y":29341.779111862103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b2c096dd-56af-48cd-9013-3005c6dbb9c9","savedPayload":{"position":{"x":30392.89365093651,"y":29341.779111862103},"targetPosition":{"x":30598.40999046724,"y":29135.918860965496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"385a3d80-aaaa-429a-9635-20a5f56982bb","savedPayload":{"position":{"x":29796.35835555227,"y":29409.162670086862},"targetPosition":{"x":30023.09432844091,"y":29226.049390760072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"4a116f7c-9835-46f9-a487-f3314b07fc27","savedPayload":{"position":{"x":28902.861148437896,"y":29107.54072997879},"targetPosition":{"x":29190.768185411805,"y":29062.21639661277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31330f42-a7cd-4588-b037-0fb1f4012ebe","savedPayload":{"position":{"x":29190.768185411805,"y":29062.21639661277},"targetPosition":{"x":29478.85821017733,"y":29016.87886688429},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"e6f479d2-001f-4815-81fb-0104760a2131","savedPayload":{"position":{"x":29111.88702210781,"y":28563.579783555895},"targetPosition":{"x":29295.311079015475,"y":28790.15140430324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7da4d156-7295-46ca-84ef-b1b73b22ef68","savedPayload":{"position":{"x":29295.311079015475,"y":28790.15140430324},"targetPosition":{"x":29478.85821017733,"y":29016.87886688429},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8d74abf5-702e-4ff1-b555-1127ecdcc777","savedPayload":{"position":{"x":29478.85821017733,"y":29016.87886688429},"targetPosition":{"x":29750.977246609775,"y":29121.4307820616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8f143346-1514-49e9-af84-0198743e268b","savedPayload":{"position":{"x":29750.977246609775,"y":29121.4307820616},"targetPosition":{"x":30023.09432844091,"y":29226.049390760072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"c068b8fa-cf10-400c-8b35-40ee201f079d","savedPayload":{"position":{"x":30023.09432844091,"y":29226.049390760072},"targetPosition":{"x":30310.901554337408,"y":29180.93088235573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3f5fcc98-1fb5-4de2-8850-17dcc4decfd6","savedPayload":{"position":{"x":30310.901554337408,"y":29180.93088235573},"targetPosition":{"x":30598.40999046724,"y":29135.918860965496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"4fefaca7-9699-4d62-b9f2-e3f5edd1fbcf","savedPayload":{"position":{"x":30079.49724709394,"y":28870.270508476067},"targetPosition":{"x":30339.023460706743,"y":29003.074060938226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e5f14fd-5232-41bc-b038-e069f5410cdb","savedPayload":{"position":{"x":30339.023460706743,"y":29003.074060938226},"targetPosition":{"x":30598.40999046724,"y":29135.918860965496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"4662a32b-d9af-474f-8c91-51b290ac985d","savedPayload":{"position":{"x":30334.376337737165,"y":28615.96359780366},"targetPosition":{"x":30466.495623202332,"y":28875.921911960835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b20df87d-b9e0-4eef-86dc-1a12efdc4c68","savedPayload":{"position":{"x":30466.495623202332,"y":28875.921911960835},"targetPosition":{"x":30598.40999046724,"y":29135.918860965496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f8cd9672-6874-43aa-83fc-fe6431796152","savedPayload":{"position":{"x":30598.40999046724,"y":29135.918860965496},"targetPosition":{"x":31748.504152987472,"y":29318.386237653525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"3f1d66d7-b522-4dca-98a6-f876ee31f323","savedPayload":{"position":{"x":31577.296726741315,"y":29082.332722543688},"targetPosition":{"x":31748.504152987472,"y":29318.386237653525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"20468ec8-2523-47b4-b3b0-ac41bb89887a","savedPayload":{"position":{"x":32355.10084655184,"y":29226.12957454463},"targetPosition":{"x":32049.5,"y":29177.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d934edd3-f12a-4343-aef8-27f2531ec7e4","savedPayload":{"position":{"x":31794.09366947838,"y":29030.01992901516},"targetPosition":{"x":31748.504152987472,"y":29318.386237653525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cbae35a1-6426-4cde-a74e-6e3c8f1ef488","savedPayload":{"position":{"x":31748.504152987472,"y":29318.386237653525},"targetPosition":{"x":32433.355355014213,"y":30261.473769260487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Custom","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"e9425ea8-46fc-4bbd-96af-107b45fcde20","savedPayload":{"position":{"x":32787.40037538293,"y":28748.9879485708},"targetPosition":{"x":32746.82006427679,"y":29135.63873563346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"787093b5-b60f-4002-ae4e-7dcf26bc651c","savedPayload":{"position":{"x":32746.82006427679,"y":29135.63873563346},"targetPosition":{"x":32702.26410829101,"y":29560.101810710996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1a3ca90-96ad-4bc3-84f0-0ead961f4ab3","savedPayload":{"position":{"x":32608.85593964742,"y":29552.080114880126},"targetPosition":{"x":32669.459407712402,"y":29936.52520297799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"af90c747-4790-43c5-afe1-37a605571cae","savedPayload":{"position":{"x":33248.28983387989,"y":29259.76512258894},"targetPosition":{"x":33405.78863403118,"y":29615.251251332513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"64b16855-36d6-49b4-afde-9bc43b6bdd53","savedPayload":{"position":{"x":30958.49273226702,"y":35978.357887355276},"targetPosition":{"x":30812.25259285251,"y":35666.60776174702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a06e989b-e442-43e3-b915-7aa76348e064","savedPayload":{"position":{"x":30812.25259285251,"y":35666.60776174702},"targetPosition":{"x":30670.108349528266,"y":35347.746187721605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ac15c2d4-9d65-464a-b3e6-2d28edca7308","savedPayload":{"position":{"x":30670.108349528266,"y":35347.746187721605},"targetPosition":{"x":30527.306437447696,"y":35024.57844606656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c81de819-5717-459a-9b89-f046c6768803","savedPayload":{"position":{"x":33711.17883883612,"y":29379.644809738806},"targetPosition":{"x":33405.78863403118,"y":29615.251251332513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"bff4cb02-f3ad-4c61-9f94-cc3e2b43121c","savedPayload":{"position":{"x":34495.96331431318,"y":30406.151173773185},"targetPosition":{"x":34109.22405666117,"y":30365.45769696535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a9f77d3c-1868-4535-8117-e56d388ba5ad","savedPayload":{"position":{"x":34109.22405666117,"y":30365.45769696535},"targetPosition":{"x":33722.68793079328,"y":30324.700735716688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"42345fb4-0626-4b42-90c1-bb9f214e17d4","savedPayload":{"position":{"x":34352.02451001019,"y":30781.553036646546},"targetPosition":{"x":34037.23547026468,"y":30553.306359700626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a4bfbfb1-543e-4db0-9f39-dd6631e660eb","savedPayload":{"position":{"x":34037.23547026468,"y":30553.306359700626},"targetPosition":{"x":33722.68793079328,"y":30324.700735716688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"67342cd6-6678-401c-94e1-e0b0eda2263e","savedPayload":{"position":{"x":34039.73033660556,"y":31034.651369948344},"targetPosition":{"x":33881.030676784874,"y":30679.892072710652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6fcc3279-0e65-424f-81b5-0ed032a461ca","savedPayload":{"position":{"x":33881.030676784874,"y":30679.892072710652},"targetPosition":{"x":33722.68793079328,"y":30324.700735716688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"47ca70bc-782c-445f-834e-921f0840eb7e","savedPayload":{"position":{"x":33643.72639272173,"y":31097.640303634198},"targetPosition":{"x":33682.86854442032,"y":30711.32469247557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"13eaacfa-d129-401a-8648-93d7954f94ac","savedPayload":{"position":{"x":33682.86854442032,"y":30711.32469247557},"targetPosition":{"x":33722.68793079328,"y":30324.700735716688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"6674b07b-d9ed-4a96-88b2-6743cd6e0852","savedPayload":{"position":{"x":33276.322508362435,"y":30929.607895929035},"targetPosition":{"x":33495.33006605626,"y":30639.147260588717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9163a9de-74b0-42f7-8ee0-85b93dee00fc","savedPayload":{"position":{"x":33495.33006605626,"y":30639.147260588717},"targetPosition":{"x":33722.68793079328,"y":30324.700735716688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"46f92b3d-10dd-484d-895b-c0d547424c3a","savedPayload":{"position":{"x":33722.68793079328,"y":30324.700735716688},"targetPosition":{"x":33564.219043595695,"y":29969.898477587783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"571d2fea-5e0b-49f3-877a-5b9b41516bfe","savedPayload":{"position":{"x":33564.219043595695,"y":29969.898477587783},"targetPosition":{"x":33405.78863403118,"y":29615.251251332513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"5639cfff-e0f1-417b-8034-adb661ded0cd"}}}],"announcements":[],"id":"75e54a0b-1af9-49d2-ab9b-461d72a731fe","savedPayload":{"position":{"x":33405.78863403118,"y":29615.251251332513},"targetPosition":{"x":33016.39430671254,"y":29788.88391817735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"3f9df9ef-2267-4a33-b2b8-fddce1f7f4d7","savedPayload":{"position":{"x":33911.744860763334,"y":29112.95246822761},"targetPosition":{"x":33773.051073781535,"y":29476.27272549899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"bb9431b0-04e2-49ad-8a1e-8336a5a90ba6","savedPayload":{"position":{"x":34416.95322326507,"y":28296.16406245135},"targetPosition":{"x":34426.305881153865,"y":28684.915659615526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fff74a7d-6205-4d97-b32a-c31c2879e228","savedPayload":{"position":{"x":34426.305881153865,"y":28684.915659615526},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"c2308750-4fa3-45bc-8ce3-b834db3e5a75","savedPayload":{"position":{"x":34715.444342528746,"y":28347.499556006016},"targetPosition":{"x":34575.68890177326,"y":28710.585139863535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"37f1894e-e911-46df-b97d-92ad8716bbb7","savedPayload":{"position":{"x":34575.68890177326,"y":28710.585139863535},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"c815953e-7501-4c0f-bf44-b2054f27204b","savedPayload":{"position":{"x":34972.058349418905,"y":28509.362884350343},"targetPosition":{"x":34704.06500386377,"y":28791.562960245974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0abbc8b9-69b3-4051-a077-8cae2eb456e5","savedPayload":{"position":{"x":34704.06500386377,"y":28791.562960245974},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"b1db73ae-ddb7-452c-bc67-aebce55c0071","savedPayload":{"position":{"x":35147.141150108626,"y":28756.980442477477},"targetPosition":{"x":34791.679182237465,"y":28915.415108629633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1c0d7a06-b7f3-443d-9088-177134b13b83","savedPayload":{"position":{"x":34791.679182237465,"y":28915.415108629633},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"12d82500-383b-445d-995d-7b589c84635a","savedPayload":{"position":{"x":35214.19946698019,"y":29052.728441879615},"targetPosition":{"x":34825.204368153114,"y":29063.356815214163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ea51ecbf-d848-46a7-a88d-82ec88f8480a","savedPayload":{"position":{"x":34825.204368153114,"y":29063.356815214163},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14 > chart.at01hs.base7EMA.previous.previous.ema21 - chart.at01hs.base7EMA.previous.previous.ema14","id":"c48ea949-7b3e-4c17-bff5-19d6e459d626","savedPayload":{"position":{"x":35162.832804467325,"y":29350.654711690964},"targetPosition":{"x":34799.55776558362,"y":29212.503217535977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7d987b62-66de-4d68-be64-91c124266174","savedPayload":{"position":{"x":34799.55776558362,"y":29212.503217535977},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 previous ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","id":"6e81b8d8-148d-4a5a-8307-40c1dbccabb2","savedPayload":{"position":{"x":35001.572988601365,"y":29607.454418412428},"targetPosition":{"x":34718.71420293217,"y":29340.778111080235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"229f0b94-9e9a-45b5-87fe-8bf1427c1cb6","savedPayload":{"position":{"x":34718.71420293217,"y":29340.778111080235},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0e734dca-7ea8-4eaf-9379-48ccf8dff51e","savedPayload":{"position":{"x":34435.516882385054,"y":29074.048555754413},"targetPosition":{"x":34080.098739883826,"y":29232.794420662998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"43f6f964-e44c-4b9e-9c6e-f5f10afb891d","savedPayload":{"position":{"x":34080.098739883826,"y":29232.794420662998},"targetPosition":{"x":33773.051073781535,"y":29476.27272549899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"5639cfff-e0f1-417b-8034-adb661ded0cd"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"427ca47c-7233-4e51-8070-0dd82e493d47","savedPayload":{"position":{"x":35209.14142961346,"y":29440.444294230565},"targetPosition":{"x":34854.12791187051,"y":29597.78782464058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b99cc7a-c8fd-4e57-9f24-c2576f6bab18","savedPayload":{"position":{"x":34854.12791187051,"y":29597.78782464058},"targetPosition":{"x":34498.6289280011,"y":29755.41052699473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"2217cfc4-1cdd-43b0-86ef-9957ff84c8f1","savedPayload":{"position":{"x":35224.438994290365,"y":30033.767832692964},"targetPosition":{"x":34861.984945374395,"y":29894.603901010996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6918bca4-9fcd-44a4-9ad5-d4718158d064","savedPayload":{"position":{"x":34861.984945374395,"y":29894.603901010996},"targetPosition":{"x":34498.6289280011,"y":29755.41052699473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 prev.ema7 div 2 prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","id":"9afbcaee-9dcd-4b18-89a9-9124eea8c900","savedPayload":{"position":{"x":34815.39456925559,"y":30464.907508235723},"targetPosition":{"x":34657.375468352,"y":30110.167880558845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"91b01ae0-97af-48c7-adf3-1bb767e27f36","savedPayload":{"position":{"x":34657.375468352,"y":30110.167880558845},"targetPosition":{"x":34498.6289280011,"y":29755.41052699473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8f15adc5-8719-4f96-8560-127f7eaa0a97","savedPayload":{"position":{"x":34498.6289280011,"y":29755.41052699473},"targetPosition":{"x":34135.87591926167,"y":29615.995190587262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b15ba6fb-7ae0-4c8f-b8ac-b76c5945dcb5","savedPayload":{"position":{"x":34135.87591926167,"y":29615.995190587262},"targetPosition":{"x":33773.051073781535,"y":29476.27272549899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"75e54a0b-1af9-49d2-ab9b-461d72a731fe"}}}],"announcements":[],"id":"eb74a012-ed21-4ce6-8f2e-8f2ebaea9188","savedPayload":{"position":{"x":33773.051073781535,"y":29476.27272549899},"targetPosition":{"x":33405.78863403118,"y":29615.251251332513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"25d46d39-ae12-4dd8-a136-48f75b7236c1","savedPayload":{"position":{"x":34179.5922378825,"y":28952.68449982191},"targetPosition":{"x":34139.99028944556,"y":29339.458559691633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"f4da55cf-3df3-40ed-8d05-a914a6697fae","savedPayload":{"position":{"x":34515.96881662524,"y":38207.07611964296},"targetPosition":{"x":34349.57172704476,"y":37833.12986427668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c64d2c0-288c-45ae-a359-5d3f44bb4c5e","savedPayload":{"position":{"x":34349.57172704476,"y":37833.12986427668},"targetPosition":{"x":34183.06978383427,"y":37458.97412745549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"b4571357-f64e-432a-8d80-37f1dfd89e82","savedPayload":{"position":{"x":33702.17029723322,"y":38121.54097659026},"targetPosition":{"x":33942.5907257653,"y":37790.336306506026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96c5c204-c93f-494c-8691-30566d39db06","savedPayload":{"position":{"x":33942.5907257653,"y":37790.336306506026},"targetPosition":{"x":34183.06978383427,"y":37458.97412745549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2849e6ed-91c0-4e63-a4a3-2ba4d4517008","savedPayload":{"position":{"x":34183.06978383427,"y":37458.97412745549},"targetPosition":{"x":34225.61526472877,"y":37051.44216832517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9c2aa1f4-5ba6-4dc8-9f99-db133558f0e8","savedPayload":{"position":{"x":34526.32051478548,"y":29380.144072111412},"targetPosition":{"x":34139.99028944556,"y":29339.458559691633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"75e54a0b-1af9-49d2-ab9b-461d72a731fe"}}}],"announcements":[],"id":"5639cfff-e0f1-417b-8034-adb661ded0cd","savedPayload":{"position":{"x":34139.99028944556,"y":29339.458559691633},"targetPosition":{"x":33773.051073781535,"y":29476.27272549899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6cb50b3d-6bf3-422f-8d2a-d0103ea02607","savedPayload":{"position":{"x":32898.51510152386,"y":29621.695973589216},"targetPosition":{"x":32669.459407712402,"y":29936.52520297799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"bf593624-8f03-46b0-8bcd-377c7620f1a3","savedPayload":{"position":{"x":33049.04809078839,"y":30508.634409852893},"targetPosition":{"x":32986.5,"y":30110.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8debc3c5-6540-43c3-8fa3-a0ae97e288af","savedPayload":{"position":{"x":33053.853780132136,"y":29875.553003142984},"targetPosition":{"x":32669.459407712402,"y":29936.52520297799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"42765ad5-284e-4966-a367-76593b53bcf7","savedPayload":{"position":{"x":32669.459407712402,"y":29936.52520297799},"targetPosition":{"x":32433.355355014213,"y":30261.473769260487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"6880a8b7-7259-4fb2-abd2-b9c37a735b0e","savedPayload":{"position":{"x":33195.15644454074,"y":30303.891451120202},"targetPosition":{"x":32814.28960967772,"y":30385.03530095667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"975fec0b-d0f0-40c1-baab-1efccd8ea879","savedPayload":{"position":{"x":33080.399305638624,"y":30985.805189286868},"targetPosition":{"x":33299.65194935859,"y":30647.396421048194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c3e1433-a8fe-4b1e-8b6a-e1b8fbbf88a3","savedPayload":{"position":{"x":33141.08859610247,"y":30597.192002896467},"targetPosition":{"x":32814.28960967772,"y":30385.03530095667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c64f618d-4336-4ff2-9dcd-3293acb4cd2a","savedPayload":{"position":{"x":32814.28960967772,"y":30385.03530095667},"targetPosition":{"x":32433.355355014213,"y":30261.473769260487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2faf1715-7b6a-4188-ac5e-c67502e18fcc","savedPayload":{"position":{"x":32433.355355014213,"y":30261.473769260487},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S5 - 4H Up","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"1bb17736-cc12-4b60-9807-632aeb2d3636","savedPayload":{"position":{"x":31803.637082753048,"y":31399.359971188216},"targetPosition":{"x":31818.655546656042,"y":30978.35806096688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2e2487a-d30a-4d70-9d70-f188409059a9","savedPayload":{"position":{"x":31818.655546656042,"y":30978.35806096688},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"21123f61-dc48-4915-b609-c3eab53b8fec","savedPayload":{"position":{"x":31525.850017503104,"y":31317.667269780963},"targetPosition":{"x":31684.17449023727,"y":30926.586714463938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"daefe7ea-f409-406c-891a-28c3001ab5c0","savedPayload":{"position":{"x":31684.17449023727,"y":30926.586714463938},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"6897670f-f952-4d83-8a95-bc82ad1d07fa","savedPayload":{"position":{"x":31267.086794496026,"y":31183.122939986682},"targetPosition":{"x":31549.575445554154,"y":30869.705854556367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b6890e81-16b4-4cd2-b1ed-0c02d51dae4b","savedPayload":{"position":{"x":31549.575445554154,"y":30869.705854556367},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","id":"c02c6beb-0de4-4a7c-a768-7332501d45b1","savedPayload":{"position":{"x":31087.19829214889,"y":30952.77737784711},"targetPosition":{"x":31459.640019499606,"y":30754.84508175051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3e59df4d-42a2-41e9-93ff-6d85b65d9bc2","savedPayload":{"position":{"x":31459.640019499606,"y":30754.84508175051},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","id":"3257e894-69d2-4f5f-93eb-13ba4d62c5e0","savedPayload":{"position":{"x":30996.834259943073,"y":30674.322016396036},"targetPosition":{"x":31414.44419194971,"y":30615.639370576555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bd3ee521-2846-411f-a740-de3480e90421","savedPayload":{"position":{"x":31414.44419194971,"y":30615.639370576555},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Gentle\"","id":"3cef9be4-e642-4af5-b845-d63592ea22e9","savedPayload":{"position":{"x":31007.075520478138,"y":30382.25756547327},"targetPosition":{"x":31419.584840032832,"y":30469.569394286285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a23ee119-f4f5-4fe6-9013-27055d634051","savedPayload":{"position":{"x":31419.584840032832,"y":30469.569394286285},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H NOT Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope != \"Side\"","id":"7fa69f52-edfe-42b6-bda3-40e9ad7af808","savedPayload":{"position":{"x":31116.712625722495,"y":30110.76594490264},"targetPosition":{"x":31474.4688041132,"y":30333.762234397087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"50495c21-1a7b-4c38-9c6c-4cec9fb5a0f1","savedPayload":{"position":{"x":31474.4688041132,"y":30333.762234397087},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"0770176a-5af8-479d-8a7e-7bafaf04cb05","savedPayload":{"position":{"x":31312.539242984873,"y":29893.174081317917},"targetPosition":{"x":31572.61684784771,"y":30224.87918255947},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0538f837-fbba-4e7c-b1db-8a574559d584","savedPayload":{"position":{"x":31572.61684784771,"y":30224.87918255947},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b2dd0458-53e0-4d8c-8f46-bb45946cdb65","savedPayload":{"position":{"x":31832.446754081677,"y":30557.303404222446},"targetPosition":{"x":32254.205048920863,"y":30381.34366988766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"642f8610-4b1d-4178-8bae-12abf00b7812","savedPayload":{"position":{"x":32254.205048920863,"y":30381.34366988766},"targetPosition":{"x":32655.355644345367,"y":30250.83828378207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"9d2e77ef-dc06-4357-8739-44065c83f8cb","savedPayload":{"position":{"x":31152.477915800475,"y":29485.148637629547},"targetPosition":{"x":31528.139844398356,"y":29676.425811184978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65d4f331-e81f-44d4-834b-9e786d9d2a36","savedPayload":{"position":{"x":31528.139844398356,"y":29676.425811184978},"targetPosition":{"x":31903.821467182715,"y":29867.826371430037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9753c7d0-7d95-4464-8331-a7d4bac71a9b","savedPayload":{"position":{"x":31903.821467182715,"y":29867.826371430037},"targetPosition":{"x":32279.619316977198,"y":30058.961696217935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"99db5a57-b7b5-44d2-b046-c5784a51bffc","savedPayload":{"position":{"x":32279.619316977198,"y":30058.961696217935},"targetPosition":{"x":32655.355644345367,"y":30250.83828378207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"190f6e85-1f6e-4088-a156-a82e3b0e72cb","savedPayload":{"position":{"x":31467.337122690104,"y":29960.14749786813},"targetPosition":{"x":31839.670467427597,"y":29762.856324091823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"07da9742-43f4-4bfb-8720-3272474740d1","savedPayload":{"position":{"x":31839.670467427597,"y":29762.856324091823},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"56b61beb-3df4-4577-b39e-90c3c3fc7075","savedPayload":{"position":{"x":31377.480759506314,"y":29682.883283317376},"targetPosition":{"x":31795.183056971782,"y":29624.795860058675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"34460859-dffb-4fba-93b2-fe143c3a25de","savedPayload":{"position":{"x":31795.183056971782,"y":29624.795860058675},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"16a3f794-7209-437c-a272-c1f945374af2","savedPayload":{"position":{"x":31388.098788101044,"y":29391.140811100908},"targetPosition":{"x":31800.391690375553,"y":29478.963861724398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"28a397a8-b5f1-44fd-afe2-3e366e7e938d","savedPayload":{"position":{"x":31800.391690375553,"y":29478.963861724398},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","id":"e6fa32e6-37a4-40ae-a68d-8d046eed13b6","savedPayload":{"position":{"x":31497.861935999175,"y":29119.985100224807},"targetPosition":{"x":31855.294923134716,"y":29343.32643845144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ba113199-ed6c-4b10-8312-4d938c7e8c39","savedPayload":{"position":{"x":31855.294923134716,"y":29343.32643845144},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","id":"b76599cd-7312-4aac-9dee-8e21dac4b1c6","savedPayload":{"position":{"x":31693.887694668956,"y":28902.656474209638},"targetPosition":{"x":31953.340689905217,"y":29234.595917062725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d274dddf-c518-4602-9e20-001b6b348fde","savedPayload":{"position":{"x":31953.340689905217,"y":29234.595917062725},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Gentle\"","id":"ef31d5cf-d980-494c-a6af-1970b0e5e172","savedPayload":{"position":{"x":31952.609151253357,"y":28765.393109525332},"targetPosition":{"x":32082.723348863343,"y":29165.905849972234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1e6adf92-f58a-4ebd-a125-f9b61d51ec59","savedPayload":{"position":{"x":32082.723348863343,"y":29165.905849972234},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H NOT Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope != \"Side\"","id":"d6005505-7c26-4f5c-b94e-3c2a9e812f5c","savedPayload":{"position":{"x":32242.21296721509,"y":28724.70054371358},"targetPosition":{"x":32227.550058824927,"y":29145.566309120117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dac090bd-5be4-4193-b40b-3ce250f62d91","savedPayload":{"position":{"x":32227.550058824927,"y":29145.566309120117},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"6198450f-adf9-4208-a125-e47b101f9b41","savedPayload":{"position":{"x":32528.89266902186,"y":28785.576656817986},"targetPosition":{"x":32370.9875785451,"y":29176.112998723962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b1f55195-9a70-49fa-8025-51cdf0acdbeb","savedPayload":{"position":{"x":32370.9875785451,"y":29176.112998723962},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"196d7981-9230-4a94-b8c2-39ff25a22bb9","savedPayload":{"position":{"x":32212.846706910997,"y":29567.026440768434},"targetPosition":{"x":32525.82609477754,"y":29849.549374255723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"1457056f-1f84-46e0-a144-f2113df411f7","savedPayload":{"position":{"x":32948.80552506662,"y":29504.836523760896},"targetPosition":{"x":32773.5,"y":29698.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4e4c322c-4604-431c-912c-6227d05d2e0b","savedPayload":{"position":{"x":32515.672915242736,"y":29638.436349027324},"targetPosition":{"x":32525.82609477754,"y":29849.549374255723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1c30f570-4f8e-47cf-95c1-dd1f4244a77a","savedPayload":{"position":{"x":32525.82609477754,"y":29849.549374255723},"targetPosition":{"x":32655.355644345367,"y":30250.83828378207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"999bf574-a88b-467f-a107-7e0770e6bd53","savedPayload":{"position":{"x":32655.355644345367,"y":30250.83828378207},"targetPosition":{"x":33029.75192573155,"y":30442.29103770232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"8b0471ee-2c41-4195-99fc-4025d65a390e","savedPayload":{"position":{"x":31579.929199715712,"y":28329.796759479224},"targetPosition":{"x":31853.910414355745,"y":28171.703838281486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"a4ad262a-5f92-497f-9411-56c338d9292b","savedPayload":{"position":{"x":30754.122545444774,"y":27540.973438886354},"targetPosition":{"x":31028.003443564146,"y":27698.876056028217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f953a499-ba93-476f-8af5-61e25f1f9657","savedPayload":{"position":{"x":31031.316375796425,"y":27697.923160732968},"targetPosition":{"x":31305.440043072456,"y":27855.852868035698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"abf13b1e-7ce1-41d1-87b8-c2e1f25c2a6d","savedPayload":{"position":{"x":31305.45786506844,"y":27855.824594382415},"targetPosition":{"x":31579.688155962634,"y":28013.767656946442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"2a270aac-6cd2-4b25-b1a4-ff18d1ccaa4b","savedPayload":{"position":{"x":31579.700107722136,"y":28013.74550246922},"targetPosition":{"x":31853.910414355745,"y":28171.703838281486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"72aea6dd-85da-4291-b993-17b6ab9827b1","savedPayload":{"position":{"x":31853.910414355745,"y":28171.703838281486},"targetPosition":{"x":32170.01608559407,"y":28171.536416079904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3a958f65-ab12-4404-8c2d-14a1b1d80c84","savedPayload":{"position":{"x":32170.01608559407,"y":28171.536416079904},"targetPosition":{"x":32485.715088985602,"y":28171.15713012959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"407b0f9f-573e-4def-b3d1-a9eeabde83f7","savedPayload":{"position":{"x":31659.81139987375,"y":27766.388292401327},"targetPosition":{"x":31974.524291845133,"y":27799.41763208544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"881fe7f0-1527-499a-80f5-89bcce726dac","savedPayload":{"position":{"x":31879.089046140864,"y":26402.837294233297},"targetPosition":{"x":32077.218214079843,"y":26647.230374764797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b18879da-9fa8-4926-aa76-ad8b401c37d1","savedPayload":{"position":{"x":31457.151266858393,"y":27035.4549659169},"targetPosition":{"x":31714.090630726034,"y":27222.201315049584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"c5713c55-47b3-42a8-ab19-08cf2d749396","savedPayload":{"position":{"x":32505.5752595207,"y":26300.82685022934},"targetPosition":{"x":32391.551298605093,"y":26598.486857980544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dba5f292-de5e-490c-ad0f-350ba7a79ba6","savedPayload":{"position":{"x":31747.847047714342,"y":26907.48381747061},"targetPosition":{"x":31714.090630726034,"y":27222.201315049584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6feb04a3-4e72-4cb3-8e80-d924677fd866","savedPayload":{"position":{"x":31712.19231193666,"y":27225.216897539707},"targetPosition":{"x":31841.69595034157,"y":27513.601035817344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"21268798-061f-4dbd-b3ae-62ed06497e7b","savedPayload":{"position":{"x":31846.13723379902,"y":27510.332013678686},"targetPosition":{"x":31974.524291845133,"y":27799.41763208544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"331d8a1e-2395-419d-b119-6f81a8b29085","savedPayload":{"position":{"x":31974.551736945174,"y":27799.396454380087},"targetPosition":{"x":32229.944270623495,"y":27985.490598327917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"74cbbf23-af31-4a53-9e2d-1d2be04f1f00","savedPayload":{"position":{"x":32229.970512281805,"y":27985.475088728974},"targetPosition":{"x":32485.715088985602,"y":28171.15713012959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"532a9467-6b89-4ac8-b4e0-d5015bf2dd36","savedPayload":{"position":{"x":32291.8645065362,"y":27569.273658194026},"targetPosition":{"x":32388.85888378356,"y":27870.231835006754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"46530eb5-5bbf-4e1a-b635-ed22afe99dfb","savedPayload":{"position":{"x":32388.863816650617,"y":27870.223459811998},"targetPosition":{"x":32485.715088985602,"y":28171.15713012959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"9f1b0754-b1f7-4e2b-9962-5555b951e026","savedPayload":{"position":{"x":32681.756599468277,"y":27569.863267139586},"targetPosition":{"x":32583.851836528476,"y":27870.62263043729},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fc1eda7f-ae0a-46cb-89cf-8ec3bb01ad94","savedPayload":{"position":{"x":32583.85638300542,"y":27870.61332054747},"targetPosition":{"x":32485.715088985602,"y":28171.15713012959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6da69684-0123-401b-94e8-a3ca551665d1","savedPayload":{"position":{"x":32485.956593586066,"y":28171.143151808643},"targetPosition":{"x":33227.79337521052,"y":29193.269686449254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"599dc297-9684-46c2-a061-e5f0fe08b0cc","savedPayload":{"position":{"x":33277.42298551964,"y":28880.820143413617},"targetPosition":{"x":33227.79337521052,"y":29193.269686449254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"5de18ec0-2f00-4c77-92b9-955a5923d698","savedPayload":{"position":{"x":33909.10084655184,"y":29201.12957454463},"targetPosition":{"x":33603.5,"y":29152.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"82532147-3a82-4ae5-8758-8ac080add9c7","savedPayload":{"position":{"x":33483.99096742361,"y":29007.16578768379},"targetPosition":{"x":33227.79337521052,"y":29193.269686449254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2a5f2b55-f09e-4be9-92d8-3527a134dac3","savedPayload":{"position":{"x":33227.79337521052,"y":29193.269686449254},"targetPosition":{"x":33029.75192573155,"y":30442.29103770232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Controlled Run","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"928d3add-1690-4dfd-b2f8-455668fc742c","savedPayload":{"position":{"x":34446.54072965572,"y":29566.263118815612},"targetPosition":{"x":34118.74229678125,"y":29831.655797585274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"51924a8f-f6b0-41f0-9fb5-8cd97d8d6531","savedPayload":{"position":{"x":34118.74229678125,"y":29831.655797585274},"targetPosition":{"x":33774.18998850245,"y":30110.61435184037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6ba3063d-c882-44d2-a7c4-9915a220b17e","savedPayload":{"position":{"x":33694.781614397805,"y":30034.89501850924},"targetPosition":{"x":33446.54561839851,"y":30376.4041629772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"f0ba9068-9fd8-46c1-89c6-c51c2127fad3","savedPayload":{"position":{"x":34405.03823312209,"y":30291.840263281058},"targetPosition":{"x":34253.55735010361,"y":30685.388405891084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"3d7e602e-ca81-4d0f-808c-0b6987a224d4","savedPayload":{"position":{"x":35787.30615527667,"y":35398.810989911646},"targetPosition":{"x":35627.67545695055,"y":35040.81781656664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3cf490f8-fb04-4a14-aab8-1215009b40bd","savedPayload":{"position":{"x":35627.67545695055,"y":35040.81781656664},"targetPosition":{"x":35467.72999550737,"y":34682.783353016006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"399b9981-c283-4140-8600-904bd8fae636","savedPayload":{"position":{"x":35467.72999550737,"y":34682.783353016006},"targetPosition":{"x":35307.55009149936,"y":34324.66524598421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"19a0d710-315f-43b8-b1f0-8aca0f21d63e","savedPayload":{"position":{"x":35307.55009149936,"y":34324.66524598421},"targetPosition":{"x":34253.55735010361,"y":30685.388405891084},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"6407cb18-e862-47c7-8c3d-2ac857597595","savedPayload":{"position":{"x":34530.30464769007,"y":32086.76032216619},"targetPosition":{"x":34241.56519862483,"y":31779.736945370492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3218784f-7ac6-4f71-89ca-c13de6fb1e08","savedPayload":{"position":{"x":34241.56519862483,"y":31779.736945370492},"targetPosition":{"x":33952.40791518047,"y":31472.687567332738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"31096ee3-5cb2-437c-911c-b8dac600eeda","savedPayload":{"position":{"x":34206.86770563993,"y":32276.766339734662},"targetPosition":{"x":34079.78645287453,"y":31874.887902369603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4a59f893-ce98-40a8-a456-14758c0e3b72","savedPayload":{"position":{"x":34079.78645287453,"y":31874.887902369603},"targetPosition":{"x":33952.40791518047,"y":31472.687567332738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"39e213d0-6871-4fcc-8ba7-6485b15b8010","savedPayload":{"position":{"x":33833.90249584932,"y":32307.77576085133},"targetPosition":{"x":33893.183785079695,"y":31890.35694745995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a2c15f0e-3edb-4849-862a-dce24f143be6","savedPayload":{"position":{"x":33893.183785079695,"y":31890.35694745995},"targetPosition":{"x":33952.40791518047,"y":31472.687567332738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"5d4916ab-3a59-42cd-ad42-2c9be833bb36","savedPayload":{"position":{"x":33483.71175603528,"y":32173.510662283734},"targetPosition":{"x":33718.10598421068,"y":31823.189571328785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e90a9e18-c05e-4c34-8931-f934311d8be4","savedPayload":{"position":{"x":33718.10598421068,"y":31823.189571328785},"targetPosition":{"x":33952.40791518047,"y":31472.687567332738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"1578e195-a319-4748-8204-f90d816fc4ae","savedPayload":{"position":{"x":33226.90835172038,"y":31900.891944952567},"targetPosition":{"x":33589.60744328863,"y":31686.70649617647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b48541a5-46c2-4e7e-a072-07d94c1b2ac9","savedPayload":{"position":{"x":33589.60744328863,"y":31686.70649617647},"targetPosition":{"x":33952.40791518047,"y":31472.687567332738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\"","id":"fb1f280f-632e-4097-b5da-dfdbacd169c3","savedPayload":{"position":{"x":33113.8985015411,"y":31543.13031314437},"targetPosition":{"x":33533.18645691627,"y":31507.901950537547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0000df02-7c31-423f-a377-ee7a54e745b1","savedPayload":{"position":{"x":33533.18645691627,"y":31507.901950537547},"targetPosition":{"x":33952.40791518047,"y":31472.687567332738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a9ea4174-771b-4b50-8376-05494437d912","savedPayload":{"position":{"x":33952.40791518047,"y":31472.687567332738},"targetPosition":{"x":34103.02164774582,"y":31078.959490898098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"730610f1-2311-4486-8905-37c9c001d766","savedPayload":{"position":{"x":34103.02164774582,"y":31078.959490898098},"targetPosition":{"x":34253.55735010361,"y":30685.388405891084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"1a7c350c-eb3a-4d8a-af57-68aabda6fea7"}}}],"announcements":[],"id":"f631120e-4f0f-41f4-85b3-74778c8060c0","savedPayload":{"position":{"x":34253.55735010361,"y":30685.388405891084},"targetPosition":{"x":33839.85571089323,"y":30526.991004243064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"e0cee676-0034-4512-9ed3-b4f61df739bf","savedPayload":{"position":{"x":35032.298511827415,"y":30664.025220907624},"targetPosition":{"x":34647.207041214446,"y":30836.09669131313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"2cd48b45-e3f4-4a76-8bf7-19470c990e1e","savedPayload":{"position":{"x":36107.40410258614,"y":30517.225318510787},"targetPosition":{"x":35780.230573333596,"y":30782.31136999146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"17193755-5b37-4ee7-82ca-a14db05dbd30","savedPayload":{"position":{"x":35780.230573333596,"y":30782.31136999146},"targetPosition":{"x":35452.761665177284,"y":31047.66467334929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"b8cb24ca-a2ce-4ae6-b5d9-63471af0095f","savedPayload":{"position":{"x":36284.90515124963,"y":30915.913862933052},"targetPosition":{"x":35869.021951828036,"y":30981.751761376323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4facbae1-8244-47d9-bf81-2ebf58477c34","savedPayload":{"position":{"x":35869.021951828036,"y":30981.751761376323},"targetPosition":{"x":35452.761665177284,"y":31047.66467334929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"4e3f128a-a12a-444d-b706-c54a910da68b","savedPayload":{"position":{"x":36239.371881971114,"y":31349.282569362353},"targetPosition":{"x":35846.26069286043,"y":31198.494132839478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2460f9b-c5ab-4502-9b39-38159b55534b","savedPayload":{"position":{"x":35846.26069286043,"y":31198.494132839478},"targetPosition":{"x":35452.761665177284,"y":31047.66467334929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"2a370595-33f8-4cf8-af80-e7871edcf8fa","savedPayload":{"position":{"x":35983.1325692914,"y":31702.277925781378},"targetPosition":{"x":35718.094088328195,"y":31375.038293037353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"133e251e-2ac5-4ebd-8f4c-73eb8c8ba7e1","savedPayload":{"position":{"x":35718.094088328195,"y":31375.038293037353},"targetPosition":{"x":35452.761665177284,"y":31047.66467334929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side or Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\"","id":"55435ac8-859e-4665-842c-f6603923589e","savedPayload":{"position":{"x":35584.73289655696,"y":31879.94420607729},"targetPosition":{"x":35518.86240709847,"y":31463.838891768813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ee4dad2e-77dd-4f45-9847-c3c2e563d015","savedPayload":{"position":{"x":35518.86240709847,"y":31463.838891768813},"targetPosition":{"x":35452.761665177284,"y":31047.66467334929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"42bd767a-7a9e-40dc-9973-ad6e2411e769","savedPayload":{"position":{"x":35452.761665177284,"y":31047.66467334929},"targetPosition":{"x":35058.85073610298,"y":30896.89534740672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f9f58805-ee92-40ac-be13-6d242a6a476f","savedPayload":{"position":{"x":35058.85073610298,"y":30896.89534740672},"targetPosition":{"x":34647.207041214446,"y":30836.09669131313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"1a7c350c-eb3a-4d8a-af57-68aabda6fea7"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"32c1fa99-99b6-4bdd-ad3d-fcb3858413fe","savedPayload":{"position":{"x":35776.79345269899,"y":31909.47813652903},"targetPosition":{"x":35383.44828063969,"y":31758.293786669023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8f146719-384b-4e16-a0b3-c7501eeca1dd","savedPayload":{"position":{"x":35383.44828063969,"y":31758.293786669023},"targetPosition":{"x":34989.99851802312,"y":31606.922286071378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"b1d2c06e-3c41-474c-b241-62639db26336","savedPayload":{"position":{"x":35332.887818885174,"y":32377.069703162415},"targetPosition":{"x":35161.53533828581,"y":31992.11486723846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"655cd860-35be-4db4-8786-758133ade2f8","savedPayload":{"position":{"x":35161.53533828581,"y":31992.11486723846},"targetPosition":{"x":34989.99851802312,"y":31606.922286071378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"7b14d5ba-d792-4d0e-9c33-aae6abc015dd","savedPayload":{"position":{"x":34688.90853441315,"y":32393.902044815673},"targetPosition":{"x":34839.54017120311,"y":32000.460775300373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"41486047-0d08-4227-8d03-3e844c75a3ea","savedPayload":{"position":{"x":34839.54017120311,"y":32000.460775300373},"targetPosition":{"x":34989.99851802312,"y":31606.922286071378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"78031caf-041a-4f69-aea1-f9666aef959d","savedPayload":{"position":{"x":34989.99851802312,"y":31606.922286071378},"targetPosition":{"x":34818.416667519436,"y":31221.49527777832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"ad7504d5-49ec-4fed-bc74-44f5f398def7","savedPayload":{"position":{"x":34818.416667519436,"y":31221.49527777832},"targetPosition":{"x":34647.207041214446,"y":30836.09669131313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"f631120e-4f0f-41f4-85b3-74778c8060c0"}}}],"announcements":[],"id":"bee5a88b-489f-48ce-be58-4531f815462a","savedPayload":{"position":{"x":34647.207041214446,"y":30836.09669131313},"targetPosition":{"x":34253.55735010361,"y":30685.388405891084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.23 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.23} else {takeProfit}","id":"6e3648cc-0d59-428a-acc2-afcf2a6e86c4","savedPayload":{"position":{"x":35364.36754637443,"y":30743.79677885484},"targetPosition":{"x":35036.48540989503,"y":31009.357437908086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"d68720e4-049f-46b9-b412-f0378573a413","savedPayload":{"position":{"x":35025.93602050318,"y":36418.753466704875},"targetPosition":{"x":34780.354363777864,"y":36112.85268730106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"609ce0eb-a9ec-495a-9f99-cd5adeaa5824","savedPayload":{"position":{"x":34780.354363777864,"y":36112.85268730106},"targetPosition":{"x":34538.157968652435,"y":35811.39270619528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"49efa579-e07f-432e-ab03-458909afe80a","savedPayload":{"position":{"x":34453.75516050035,"y":36592.785713769365},"targetPosition":{"x":34495.98103573446,"y":36202.207555966874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"70e024f2-8dc4-443b-b7d0-8d979bd7879a","savedPayload":{"position":{"x":34495.98103573446,"y":36202.207555966874},"targetPosition":{"x":34538.157968652435,"y":35811.39270619528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Up || Side, Gentle or Medium","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Up\" || chart.at01hs.bollingerSubChannel.slope === \"Side\" || chart.at01hs.bollingerSubChannel.slope === \"Gentle\" || chart.at01hs.bollingerSubChannel.slope === \"Medium\"","id":"199cc33c-0e13-4de9-910a-c9d356e9d0d6","savedPayload":{"position":{"x":33926.32049835032,"y":36306.55289460314},"targetPosition":{"x":34232.21759903413,"y":36059.063968740695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3621eed7-d3f5-4350-8e53-6eb76377b10a","savedPayload":{"position":{"x":34232.21759903413,"y":36059.063968740695},"targetPosition":{"x":34538.157968652435,"y":35811.39270619528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dede1ba7-70c6-417a-a54a-14177afbd413","savedPayload":{"position":{"x":34538.157968652435,"y":35811.39270619528},"targetPosition":{"x":34588.210715482724,"y":35403.96530795689},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"76a5126e-7d21-4160-b25a-08631b6d519a","savedPayload":{"position":{"x":35302.17787738192,"y":31337.322692776477},"targetPosition":{"x":35036.48540989503,"y":31009.357437908086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"f631120e-4f0f-41f4-85b3-74778c8060c0"}}}],"announcements":[],"id":"1a7c350c-eb3a-4d8a-af57-68aabda6fea7","savedPayload":{"position":{"x":35036.48540989503,"y":31009.357437908086},"targetPosition":{"x":34647.207041214446,"y":30836.09669131313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a3dd2636-1b11-4d0a-8a32-945e790a97e5","savedPayload":{"position":{"x":33863.77572993962,"y":30310.715804922856},"targetPosition":{"x":33446.54561839851,"y":30376.4041629772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"0204092d-3d12-43b7-95e3-f2146a2a0324","savedPayload":{"position":{"x":33695.04809078839,"y":31034.634409852893},"targetPosition":{"x":33632.5,"y":30636.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8096b40e-271b-407a-b75c-7de3136b04a5","savedPayload":{"position":{"x":33788.0138298563,"y":30624.219309845328},"targetPosition":{"x":33446.54561839851,"y":30376.4041629772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6af83cfb-a8f9-4313-8013-495ed37ee6f5","savedPayload":{"position":{"x":33446.54561839851,"y":30376.4041629772},"targetPosition":{"x":33029.75192573155,"y":30442.29103770232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"a0def27f-df31-4c8e-b5de-12cf8376aa64","savedPayload":{"position":{"x":33575.8445053462,"y":31047.439459383855},"targetPosition":{"x":33221.458597344295,"y":30817.50496330991},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"9a31cc2b-bfb0-43b9-8ad7-0d0135c2a593","savedPayload":{"position":{"x":33396.399305638624,"y":31144.805189286868},"targetPosition":{"x":33615.65194935859,"y":30806.396421048194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"952a1b99-cc01-414a-a583-69486a70cde8","savedPayload":{"position":{"x":33309.75440271151,"y":31230.662234131596},"targetPosition":{"x":33221.458597344295,"y":30817.50496330991},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e49340f8-ed08-46a6-b4f8-b1992e7780b4","savedPayload":{"position":{"x":33221.458597344295,"y":30817.50496330991},"targetPosition":{"x":33029.75192573155,"y":30442.29103770232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f1787887-41aa-41d4-80c5-34db452cd148","savedPayload":{"position":{"x":33029.75192573155,"y":30442.29103770232},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3313017d-fdce-481b-9679-fe8e4f67cd45","savedPayload":{"position":{"x":32433.356993272086,"y":31038.668778615298},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}]} \ No newline at end of file diff --git a/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/Commons.js b/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/Commons.js new file mode 100644 index 000000000..f34bae6c7 --- /dev/null +++ b/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/Commons.js @@ -0,0 +1 @@ +// Nothing here to run \ No newline at end of file diff --git a/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/Multi-Period-Daily/User.Bot.js b/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/Multi-Period-Daily/User.Bot.js index 8c27945fd..64b32dfc0 100644 --- a/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/Multi-Period-Daily/User.Bot.js +++ b/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/Multi-Period-Daily/User.Bot.js @@ -88,7 +88,7 @@ /* We look first for Exchange Raw Data in order to get when the market starts. */ - reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -124,7 +124,7 @@ /* Second, we get the report from Candles Volumes, to know when the marted ends. */ - reportKey = "Masters" + "-" + "Candles-Volumes" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Candles-Volumes" + "-" + "Multi-Period-Daily" if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -159,7 +159,7 @@ /* Finally we get our own Status Report. */ - reportKey = "Masters" + "-" + "Bollinger-Bands" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Bollinger-Bands" + "-" + "Multi-Period-Daily" if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -826,7 +826,7 @@ let dataRange = { begin: pBegin.valueOf(), - end: pEnd.valueOf() + end: pEnd.valueOf() + ONE_DAY_IN_MILISECONDS }; let fileContent = JSON.stringify(dataRange); @@ -868,7 +868,7 @@ try { - let reportKey = "Masters" + "-" + "Bollinger-Bands" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; + let reportKey = "Masters" + "-" + "Bollinger-Bands" + "-" + "Multi-Period-Daily" let thisReport = statusDependencies.statusReports.get(reportKey); thisReport.file.lastExecution = bot.processDatetime; diff --git a/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/Multi-Period-Market/User.Bot.js b/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/Multi-Period-Market/User.Bot.js index f5bd3cb5f..820424630 100644 --- a/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/Multi-Period-Market/User.Bot.js +++ b/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/Multi-Period-Market/User.Bot.js @@ -465,7 +465,7 @@ try { - let reportKey = "Masters" + "-" + "Bollinger-Bands" + "-" + "Multi-Period-Market" + "-" + "dataSet.V1"; + let reportKey = "Masters" + "-" + "Bollinger-Bands" + "-" + "Multi-Period-Market" let thisReport = statusDependencies.statusReports.get(reportKey); thisReport.file.lastExecution = bot.processDatetime; diff --git a/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/this.bot.config.json b/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/this.bot.config.json index 3b08b5895..547ac0a0e 100644 --- a/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/this.bot.config.json +++ b/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/this.bot.config.json @@ -9,7 +9,6 @@ }, "dataMine": "Masters", "profilePicture": "Bollinger Bands.png", - "dataSetVersion": "dataSet.V1", "processes": [ { "name": "Multi-Period-Market", @@ -52,22 +51,12 @@ { "dataMine": "Masters", "bot": "Bollinger-Bands", - "botVersion": { - "major": 1, - "minor": 0 - }, - "process": "Multi-Period-Market", - "dataSetVersion": "dataSet.V1" + "process": "Multi-Period-Market" }, { "dataMine": "Masters", "bot": "Candles-Volumes", - "botVersion": { - "major": 1, - "minor": 0 - }, "process": "Multi-Period-Market", - "dataSetVersion": "dataSet.V1", "waitUntilNextUpdate": true } ] @@ -113,33 +102,18 @@ { "dataMine": "Masters", "bot": "Exchange-Raw-Data", - "botVersion": { - "major": 1, - "minor": 0 - }, - "process": "Historic-Trades", - "dataSetVersion": "dataSet.V1" + "process": "Historic-Trades" }, { "dataMine": "Masters", "bot": "Candles-Volumes", - "botVersion": { - "major": 1, - "minor": 0 - }, "process": "Multi-Period-Daily", - "dataSetVersion": "dataSet.V1", "waitUntilNextUpdate": true }, { "dataMine": "Masters", "bot": "Bollinger-Bands", - "botVersion": { - "major": 1, - "minor": 0 - }, - "process": "Multi-Period-Daily", - "dataSetVersion": "dataSet.V1" + "process": "Multi-Period-Daily" } ] } diff --git a/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/Commons.js b/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/Commons.js new file mode 100644 index 000000000..f34bae6c7 --- /dev/null +++ b/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/Commons.js @@ -0,0 +1 @@ +// Nothing here to run \ No newline at end of file diff --git a/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/Multi-Period-Daily/User.Bot.js b/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/Multi-Period-Daily/User.Bot.js index 7ddba27e8..3afe0c7ea 100644 --- a/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/Multi-Period-Daily/User.Bot.js +++ b/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/Multi-Period-Daily/User.Bot.js @@ -87,7 +87,7 @@ Read the candles and volumes from Exchange Raw Data and produce a file for each /* We look first for Exchange Raw Data in order to get when the market starts. */ - reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -123,7 +123,7 @@ Read the candles and volumes from Exchange Raw Data and produce a file for each /* Second, we get the report from Exchange Raw Data, to know when the marted ends. */ - reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" + "-" + "dataSet.V1" + reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -158,7 +158,7 @@ Read the candles and volumes from Exchange Raw Data and produce a file for each /* Finally we get our own Status Report. */ - reportKey = "Masters" + "-" + "Candles-Volumes" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Candles-Volumes" + "-" + "Multi-Period-Daily" if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -738,7 +738,7 @@ Read the candles and volumes from Exchange Raw Data and produce a file for each let dataRange = { begin: pBegin.valueOf(), - end:pEnd.valueOf() + end:pEnd.valueOf() + ONE_DAY_IN_MILISECONDS }; let fileContent = JSON.stringify(dataRange); @@ -786,7 +786,7 @@ Read the candles and volumes from Exchange Raw Data and produce a file for each try { - let reportKey = "Masters" + "-" + "Candles-Volumes" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; + let reportKey = "Masters" + "-" + "Candles-Volumes" + "-" + "Multi-Period-Daily" let thisReport = statusDependencies.statusReports.get(reportKey); thisReport.file.lastExecution = bot.processDatetime; diff --git a/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/Multi-Period-Market/User.Bot.js b/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/Multi-Period-Market/User.Bot.js index 2fb83a2fe..1b1055a6a 100644 --- a/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/Multi-Period-Market/User.Bot.js +++ b/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/Multi-Period-Market/User.Bot.js @@ -96,7 +96,7 @@ /* We look first for Exchange Raw Data in order to get when the market starts. */ - reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -132,7 +132,7 @@ /* Second, we get the report from Exchange Raw Data, to know when the marted ends. */ - reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" + "-" + "dataSet.V1" + reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -167,7 +167,7 @@ /* Finally we get our own Status Report. */ - reportKey = "Masters" + "-" + "Candles-Volumes" + "-" + "Multi-Period-Market" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Candles-Volumes" + "-" + "Multi-Period-Market" if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -904,7 +904,7 @@ try { - let reportKey = "Masters" + "-" + "Candles-Volumes" + "-" + "Multi-Period-Market" + "-" + "dataSet.V1"; + let reportKey = "Masters" + "-" + "Candles-Volumes" + "-" + "Multi-Period-Market" let thisReport = statusDependencies.statusReports.get(reportKey); thisReport.file.lastExecution = bot.processDatetime; diff --git a/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/this.bot.config.json b/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/this.bot.config.json index b1cc979c9..aa1100164 100644 --- a/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/this.bot.config.json +++ b/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/this.bot.config.json @@ -2,14 +2,7 @@ "displayName": "Candles Volumes", "codeName": "Candles-Volumes", "type": "Indicator Bot", - "version": { - "major": 1, - "minor": 0, - "patch": 0 - }, "dataMine": "Masters", - "profilePicture": "Candles Volumes.png", - "dataSetVersion": "dataSet.V1", "processes": [ { "name": "Multi-Period-Market", @@ -52,34 +45,19 @@ { "dataMine": "Masters", "bot": "Exchange-Raw-Data", - "botVersion": { - "major": 1, - "minor": 0 - }, - "process": "Historic-OHLCVs", - "dataSetVersion": "dataSet.V1" + "process": "Historic-OHLCVs" }, { "dataMine": "Masters", "bot": "Exchange-Raw-Data", - "botVersion": { - "major": 1, - "minor": 0 - }, "process": "Historic-OHLCVs", - "dataSetVersion": "dataSet.V1", "dataSetSection": "Month", "waitUntilNextUpdate": true }, { "dataMine": "Masters", "bot": "Candles-Volumes", - "botVersion": { - "major": 1, - "minor": 0 - }, - "process": "Multi-Period-Market", - "dataSetVersion": "dataSet.V1" + "process": "Multi-Period-Market" } ] }, @@ -124,34 +102,19 @@ { "dataMine": "Masters", "bot": "Exchange-Raw-Data", - "botVersion": { - "major": 1, - "minor": 0 - }, - "process": "Historic-OHLCVs", - "dataSetVersion": "dataSet.V1" + "process": "Historic-OHLCVs" }, { "dataMine": "Masters", "bot": "Exchange-Raw-Data", - "botVersion": { - "major": 1, - "minor": 0 - }, "process": "Historic-OHLCVs", - "dataSetVersion": "dataSet.V1", "dataSetSection": "Month", "waitUntilNextUpdate": true }, { "dataMine": "Masters", "bot": "Candles-Volumes", - "botVersion": { - "major": 1, - "minor": 0 - }, - "process": "Multi-Period-Daily", - "dataSetVersion": "dataSet.V1" + "process": "Multi-Period-Daily" } ] } diff --git a/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Historic-OHLCVs/User.Bot.js b/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Historic-OHLCVs/User.Bot.js index 7f73303f2..75f332fca 100644 --- a/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Historic-OHLCVs/User.Bot.js +++ b/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Historic-OHLCVs/User.Bot.js @@ -57,35 +57,35 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, FILE_S exchangeId = bot.exchange.toLowerCase() /* Applying the parameters defined by the user at the Exchange Node Config */ - if (bot.exchangeNode.code.API !== undefined) { - for (let i = 0; i < bot.exchangeNode.code.API.length; i++) { - if (bot.exchangeNode.code.API[i].method === 'fetch_ohlcv') { - if (bot.exchangeNode.code.API[i].class !== undefined) { - exchangeId = bot.exchangeNode.code.API[i].class + if (bot.exchangeNode.config.API !== undefined) { + for (let i = 0; i < bot.exchangeNode.config.API.length; i++) { + if (bot.exchangeNode.config.API[i].method === 'fetch_ohlcv') { + if (bot.exchangeNode.config.API[i].class !== undefined) { + exchangeId = bot.exchangeNode.config.API[i].class } - if (bot.exchangeNode.code.API[i].fetchOHLCVsMethod !== undefined) { + if (bot.exchangeNode.config.API[i].fetchOHLCVsMethod !== undefined) { options = { - 'fetchOHLCVsMethod': bot.exchangeNode.code.API[i].fetchOHLCVsMethod + 'fetchOHLCVsMethod': bot.exchangeNode.config.API[i].fetchOHLCVsMethod } } - if (bot.exchangeNode.code.API[i].firstId !== undefined) { - firstId = bot.exchangeNode.code.API[i].firstId + if (bot.exchangeNode.config.API[i].firstId !== undefined) { + firstId = bot.exchangeNode.config.API[i].firstId } - if (bot.exchangeNode.code.API[i].rateLimit !== undefined) { - rateLimit = bot.exchangeNode.code.API[i].rateLimit + if (bot.exchangeNode.config.API[i].rateLimit !== undefined) { + rateLimit = bot.exchangeNode.config.API[i].rateLimit } - if (bot.exchangeNode.code.API[i].hostname !== undefined) { - hostname = bot.exchangeNode.code.API[i].hostname + if (bot.exchangeNode.config.API[i].hostname !== undefined) { + hostname = bot.exchangeNode.config.API[i].hostname } - if (bot.exchangeNode.code.API[i].fetchType !== undefined) { - fetchType = bot.exchangeNode.code.API[i].fetchType + if (bot.exchangeNode.config.API[i].fetchType !== undefined) { + fetchType = bot.exchangeNode.config.API[i].fetchType } } } } - if (bot.code.fetchLimit !== undefined) { - limit = bot.code.fetchLimit + if (bot.config.fetchLimit !== undefined) { + limit = bot.config.fetchLimit } let key = process.env.KEY @@ -151,7 +151,7 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, FILE_S try { let reportKey; - reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } if (statusDependencies.statusReports.get(reportKey).status === "Status Report is corrupt.") { diff --git a/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Historic-Trades/User.Bot.js b/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Historic-Trades/User.Bot.js index 3b5ddff99..dfa816cf6 100644 --- a/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Historic-Trades/User.Bot.js +++ b/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Historic-Trades/User.Bot.js @@ -52,25 +52,25 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, FILE_S exchangeId = bot.exchange.toLowerCase() /* Applying the parameters defined by the user at the Exchange node */ - if (bot.exchangeNode.code.API !== undefined) { - for (let i = 0; i < bot.exchangeNode.code.API.length; i++) { - if (bot.exchangeNode.code.API[i].method === 'fetchTrades') { - if (bot.exchangeNode.code.API[i].class !== undefined) { - exchangeId = bot.exchangeNode.code.API[i].class + if (bot.exchangeNode.config.API !== undefined) { + for (let i = 0; i < bot.exchangeNode.config.API.length; i++) { + if (bot.exchangeNode.config.API[i].method === 'fetchTrades') { + if (bot.exchangeNode.config.API[i].class !== undefined) { + exchangeId = bot.exchangeNode.config.API[i].class } - if (bot.exchangeNode.code.API[i].fetchType !== undefined) { - fetchType = bot.exchangeNode.code.API[i].fetchType + if (bot.exchangeNode.config.API[i].fetchType !== undefined) { + fetchType = bot.exchangeNode.config.API[i].fetchType } - if (bot.exchangeNode.code.API[i].fetchTradesMethod !== undefined) { + if (bot.exchangeNode.config.API[i].fetchTradesMethod !== undefined) { options = { - 'fetchTradesMethod': bot.exchangeNode.code.API[i].fetchTradesMethod + 'fetchTradesMethod': bot.exchangeNode.config.API[i].fetchTradesMethod } } - if (bot.exchangeNode.code.API[i].firstId !== undefined) { - firstId = bot.exchangeNode.code.API[i].firstId + if (bot.exchangeNode.config.API[i].firstId !== undefined) { + firstId = bot.exchangeNode.config.API[i].firstId } - if (bot.exchangeNode.code.API[i].rateLimit !== undefined) { - rateLimit = bot.exchangeNode.code.API[i].rateLimit + if (bot.exchangeNode.config.API[i].rateLimit !== undefined) { + rateLimit = bot.exchangeNode.config.API[i].rateLimit } } } @@ -136,7 +136,7 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, FILE_S try { let reportKey; - reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-Trades" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-Trades" if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } if (statusDependencies.statusReports.get(reportKey).status === "Status Report is corrupt.") { diff --git a/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/this.bot.config.json b/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/this.bot.config.json index c2ca69340..fcfcc6eaa 100644 --- a/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/this.bot.config.json +++ b/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/this.bot.config.json @@ -2,14 +2,8 @@ "displayName": "Exchange Raw Data", "codeName": "Exchange-Raw-Data", "type": "Sensor Bot", - "version": { - "major": 1, - "minor": 0, - "patch": 0 - }, "dataMine": "Masters", "profilePicture": "Exchange Raw Data.png", - "dataSetVersion": "dataSet.V1", "processes": [ { "name": "Live-Trades", @@ -42,12 +36,7 @@ { "dataMine": "Masters", "bot": "Exchange-Raw-Data", - "botVersion": { - "major": 1, - "minor": 0 - }, - "process": "Live-Trades", - "dataSetVersion": "dataSet.V1" + "process": "Live-Trades" } ] }, @@ -82,22 +71,12 @@ { "dataMine": "Masters", "bot": "Exchange-Raw-Data", - "botVersion": { - "major": 1, - "minor": 0 - }, - "process": "Live-Trades", - "dataSetVersion": "dataSet.V1" + "process": "Live-Trades" }, { "dataMine": "Masters", "bot": "Exchange-Raw-Data", - "botVersion": { - "major": 1, - "minor": 0 - }, - "process": "Historic-Trades", - "dataSetVersion": "dataSet.V1" + "process": "Historic-Trades" } ] }, @@ -132,44 +111,24 @@ { "dataMine": "Masters", "bot": "Exchange-Raw-Data", - "botVersion": { - "major": 1, - "minor": 0 - }, "process": "Live-Trades", - "dataSetVersion": "dataSet.V1", "waitUntilNextUpdate": true }, { "dataMine": "Masters", "bot": "Exchange-Raw-Data", - "botVersion": { - "major": 1, - "minor": 0 - }, - "process": "Historic-Trades", - "dataSetVersion": "dataSet.V1" + "process": "Historic-Trades" }, { "dataMine": "Masters", "bot": "Exchange-Raw-Data", - "botVersion": { - "major": 1, - "minor": 0 - }, "process": "Hole-Fixing", - "dataSetVersion": "dataSet.V1", "dataSetSection": "Month" }, { "dataMine": "Masters", "bot": "Exchange-Raw-Data", - "botVersion": { - "major": 1, - "minor": 0 - }, - "process": "Hole-Fixing", - "dataSetVersion": "dataSet.V1" + "process": "Hole-Fixing" } ] } diff --git a/Legacy-Code/Masters/bots/Webhooks-Sensor-Bot/Check-Webhook/User.Bot.js b/Legacy-Code/Masters/bots/Webhooks-Sensor-Bot/Check-Webhook/User.Bot.js index f447c8b54..4037cb4ca 100644 --- a/Legacy-Code/Masters/bots/Webhooks-Sensor-Bot/Check-Webhook/User.Bot.js +++ b/Legacy-Code/Masters/bots/Webhooks-Sensor-Bot/Check-Webhook/User.Bot.js @@ -50,7 +50,7 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, FILE_S try { let reportKey; - reportKey = "Masters" + "-" + "Webhooks" + "-" + "Check-Webhook" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Webhooks" + "-" + "Check-Webhook" if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } diff --git a/Legacy-Code/Masters/bots/Webhooks-Sensor-Bot/this.bot.config.json b/Legacy-Code/Masters/bots/Webhooks-Sensor-Bot/this.bot.config.json index bf9b802bd..223ff23e8 100644 --- a/Legacy-Code/Masters/bots/Webhooks-Sensor-Bot/this.bot.config.json +++ b/Legacy-Code/Masters/bots/Webhooks-Sensor-Bot/this.bot.config.json @@ -8,7 +8,6 @@ "patch": 0 }, "dataMine": "Masters", - "dataSetVersion": "dataSet.V1", "processes": [ { "name": "Check-Webhook", @@ -41,12 +40,7 @@ { "dataMine": "Masters", "bot": "Webhooks", - "botVersion": { - "major": 1, - "minor": 0 - }, - "process": "Check-Webhook", - "dataSetVersion": "dataSet.V1" + "process": "Check-Webhook" } ] } diff --git a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/Conditions.js b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/Conditions.js deleted file mode 100644 index a9eb8a1c8..000000000 --- a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/Conditions.js +++ /dev/null @@ -1,1131 +0,0 @@ -function newTradingEnginesPlottersTradingSimulationConditions() { - - const MODULE_NAME = "Conditions Plotter"; - const INFO_LOG = false; - const ERROR_LOG = true; - const INTENSIVE_LOG = false; - const logger = newWebDebugLog(); - logger.fileName = MODULE_NAME; - - let thisObject = { - - // Main functions and properties. - - initialize: initialize, - finalize: finalize, - container: undefined, - getContainer: getContainer, - setTimeFrame: setTimeFrame, - setDatetime: setDatetime, - draw: draw, - - /* Events declared outside the plotter. */ - - onDailyFileLoaded: onDailyFileLoaded, - - // Secondary functions and properties. - - currentRecord: undefined - }; - - /* this is part of the module template */ - - let container = newContainer(); // Do not touch this 3 lines, they are just needed. - container.initialize(); - thisObject.container = container; - - let coordinateSystem - - let timeFrame; // This will hold the current Time Frame the user is at. - let datetime; // This will hold the current Datetime the user is at. - - let marketFile; // This is the current Market File being plotted. - let fileCursor; // This is the current File Cursor being used to retrieve Daily Files. - - let marketFiles; // This object will provide the different Market Files at different Time Frames. - let dailyFiles; // This object will provide the different File Cursors at different Time Frames. - - /* these are module specific variables: */ - - let conditions = []; - let headers; - - let noDefinitionOnFocusErrorDisplayed = false - - let onMouseOverEventSuscriptionId - let zoomChangedEventSubscriptionId - let offsetChangedEventSubscriptionId - let dragFinishedEventSubscriptionId - let dimmensionsChangedEventSubscriptionId - let marketFilesUpdatedEventSubscriptionId - let dailyFilesUpdatedEventSubscriptionId - let scaleChangedEventSubscriptionId - - let userPositionDate - return thisObject; - - function finalize() { - try { - - if (INFO_LOG === true) { logger.write("[INFO] finalize -> Entering function."); } - - /* Stop listening to the necesary events. */ - - thisObject.container.eventHandler.stopListening(onMouseOverEventSuscriptionId) - canvas.chartingSpace.viewport.eventHandler.stopListening(zoomChangedEventSubscriptionId); - canvas.chartingSpace.viewport.eventHandler.stopListening(offsetChangedEventSubscriptionId); - canvas.eventHandler.stopListening(dragFinishedEventSubscriptionId); - thisObject.container.eventHandler.stopListening(dimmensionsChangedEventSubscriptionId) - marketFiles.eventHandler.stopListening(marketFilesUpdatedEventSubscriptionId); - dailyFiles.eventHandler.stopListening(dailyFilesUpdatedEventSubscriptionId); - - /* Destroyd References */ - - marketFiles = undefined; - dailyFiles = undefined; - - datetime = undefined; - timeFrame = undefined; - - marketFile = undefined; - fileCursor = undefined; - - finalizeCoordinateSystem() - coordinateSystem = undefined - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] finalize -> err = " + err.stack); } - } - } - - function initialize(pStorage, pDatetime, pTimeFrame, pCoordinateSystem, callBackFunction) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> Entering function."); } - - /* Store the information received. */ - - marketFiles = pStorage.marketFiles[0]; - dailyFiles = pStorage.dailyFiles[0]; - - datetime = pDatetime; - timeFrame = pTimeFrame; - coordinateSystem = pCoordinateSystem - initializeCoordinateSystem() - - /* We need a Market File in order to calculate the Y scale, since this scale depends on actual data. */ - - marketFile = marketFiles.getFile(ONE_DAY_IN_MILISECONDS); // This file is the one processed faster. - - /* Now we set the right files according to current Period. */ - - marketFile = marketFiles.getFile(pTimeFrame); - fileCursor = dailyFiles.getFileCursor(pTimeFrame); - - /* Listen to the necesary events. */ - - zoomChangedEventSubscriptionId = canvas.chartingSpace.viewport.eventHandler.listenToEvent("Zoom Changed", onViewportZoomChanged); - offsetChangedEventSubscriptionId = canvas.chartingSpace.viewport.eventHandler.listenToEvent("Position Changed", onViewportPositionChanged); - dragFinishedEventSubscriptionId = canvas.eventHandler.listenToEvent("Drag Finished", onDragFinished); - marketFilesUpdatedEventSubscriptionId = marketFiles.eventHandler.listenToEvent("Files Updated", onMarketFilesUpdated); - dailyFilesUpdatedEventSubscriptionId = dailyFiles.eventHandler.listenToEvent("Files Updated", onDailyFilesUpdated); - onMouseOverEventSuscriptionId = thisObject.container.eventHandler.listenToEvent('onMouseOver', onMouseOver) - - /* Get ready for plotting. */ - - recalculate(); - - /* Ready for when dimmension changes. */ - - dimmensionsChangedEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('Dimmensions Changed', function () { - recalculate(); - }) - - callBackFunction(); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] initialize -> err = " + err.stack); } - } - } - - function initializeCoordinateSystem() { - scaleChangedEventSubscriptionId = coordinateSystem.eventHandler.listenToEvent('Scale Changed', onScaleChanged) - } - - function finalizeCoordinateSystem() { - coordinateSystem.eventHandler.stopListening(scaleChangedEventSubscriptionId) - } - - function onScaleChanged() { - recalculate(); - } - - function onMouseOver(event) { - let userPosition = getDateFromPointAtBrowserCanvas(event, thisObject.container, coordinateSystem) - userPositionDate = userPosition.valueOf() - } - - function getContainer(point) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] getContainer -> Entering function."); } - - let container; - - /* First we check if this point is inside this space. */ - - if (this.container.frame.isThisPointHere(point) === true) { - - return this.container; - - } else { - - /* This point does not belong to this space. */ - - return undefined; - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] getContainer -> err = " + err.stack); } - } - } - - function onMarketFilesUpdated() { - try { - let newMarketFile = marketFiles.getFile(timeFrame); - if (newMarketFile !== undefined) { - marketFile = newMarketFile; - recalculate(); - } - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] onMarketFilesUpdated -> err = " + err.stack); } - } - } - - function onDailyFilesUpdated() { - try { - let newFileCursor = dailyFiles.getFileCursor(timeFrame); - if (newFileCursor !== undefined) { - fileCursor = newFileCursor; - recalculate(); - } - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] onDailyFilesUpdated -> err = " + err.stack); } - } - } - - function setTimeFrame(pTimeFrame) { - - try { - - if (timeFrame !== pTimeFrame) { - - timeFrame = pTimeFrame; - - if (timeFrame >= _1_HOUR_IN_MILISECONDS) { - - marketFile = marketFiles.getFile(pTimeFrame); - - recalculate(); - - } else { - - let newFileCursor = dailyFiles.getFileCursor(pTimeFrame); - - fileCursor = newFileCursor; // In this case, we explicitly want that if there is no valid cursor, we invalidate the data and show nothing. - recalculate(); - - } - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] setTimeFrame -> err = " + err.stack); } - } - } - - function setDatetime(pDatetime) { - - if (INFO_LOG === true) { logger.write("[INFO] setDatetime -> Entering function."); } - - datetime = pDatetime; - - } - - function setCoordinateSystem(pCoordinateSystem) { - finalizeCoordinateSystem() - coordinateSystem = pCoordinateSystem - initializeCoordinateSystem() - } - - function onDailyFileLoaded(event) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] onDailyFileLoaded -> Entering function."); } - - if (event.currentValue === event.totalValue) { - - /* This happens only when all of the files in the cursor have been loaded. */ - - recalculate(); - - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] onDailyFileLoaded -> err = " + err.stack); } - } - } - - function draw() { - - try { - - if (INTENSIVE_LOG === true) { logger.write("[INFO] draw -> Entering function."); } - - this.container.frame.draw(); - - plotChart(); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] draw -> err = " + err.stack); } - } - } - - function recalculate() { - - try { - - conditions = [] - - if (timeFrame >= _1_HOUR_IN_MILISECONDS) { - - recalculateUsingMarketFiles(); - - } else { - - recalculateUsingDailyFiles(); - - } - - thisObject.container.eventHandler.raiseEvent("Conditions Changed", conditions); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] recalculate -> err = " + err.stack); } - } - } - - function recalculateUsingDailyFiles() { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] recalculateUsingDailyFiles -> Entering function."); } - - if (fileCursor === undefined) { - conditions = []; - return; - } // We need to wait - - if (fileCursor.files.size === 0) { - conditions = []; - return; - } // We need to wait until there are files in the cursor - - let daysOnSides = getSideDays(timeFrame); - - let leftDate = getDateFromPointAtBrowserCanvas(canvas.chartingSpace.viewport.visibleArea.topLeft, thisObject.container, coordinateSystem); - let rightDate = getDateFromPointAtBrowserCanvas(canvas.chartingSpace.viewport.visibleArea.topRight, thisObject.container, coordinateSystem); - - let dateDiff = rightDate.valueOf() - leftDate.valueOf(); - - let farLeftDate = new Date(leftDate.valueOf() - dateDiff * 1.5); - let farRightDate = new Date(rightDate.valueOf() + dateDiff * 1.5); - - let currentDate = new Date(farLeftDate.valueOf()); - - conditions = []; - - - - while (currentDate.valueOf() <= farRightDate.valueOf() + ONE_DAY_IN_MILISECONDS) { - - let stringDate = currentDate.getFullYear() + '-' + pad(currentDate.getMonth() + 1, 2) + '-' + pad(currentDate.getDate(), 2); - - let dailyFile = fileCursor.files.get(stringDate); - - if (dailyFile !== undefined) { - - headers = dailyFile[0]; - - for (let i = 0; i < dailyFile[1].length; i++) { - - let record = { - begin: undefined, - end: undefined, - conditions: undefined - }; - - record.begin = dailyFile[1][i][0]; - record.end = dailyFile[1][i][1]; - record.strategyNumber = dailyFile[1][i][2]; - record.strategyPhase = dailyFile[1][i][3]; - record.stopLossPhase = dailyFile[1][i][4]; - record.takeProfitPhase = dailyFile[1][i][5]; - record.conditions = dailyFile[1][i][6]; - record.formulaErrors = dailyFile[1][i][7]; - record.formulaValues = dailyFile[1][i][8]; - - if ( - (record.begin >= farLeftDate.valueOf() && record.end <= farRightDate.valueOf()) && - (record.begin >= coordinateSystem.min.x && record.end <= coordinateSystem.max.x) - ) { - - conditions.push(record); - - if (datetime.valueOf() >= record.begin && datetime.valueOf() <= record.end) { - - thisObject.currentRecord = record; - thisObject.container.eventHandler.raiseEvent("Current Condition Changed", thisObject.currentRecord); - - } - } - } - } - - currentDate = new Date(currentDate.valueOf() + ONE_DAY_IN_MILISECONDS); - } - - /* Lests check if all the visible screen is going to be covered by conditions. */ - - let lowerEnd = leftDate.valueOf(); - let upperEnd = rightDate.valueOf(); - - setTimeout(recalculate, 2000); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] recalculateUsingDailyFiles -> err = " + err.stack); } - } - } - - function recalculateUsingMarketFiles() { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] recalculateUsingMarketFiles -> Entering function."); } - - if (marketFile === undefined) { return; } // Initialization not complete yet. - - let daysOnSides = getSideDays(timeFrame); - - let leftDate = getDateFromPointAtBrowserCanvas(canvas.chartingSpace.viewport.visibleArea.topLeft, thisObject.container, coordinateSystem); - let rightDate = getDateFromPointAtBrowserCanvas(canvas.chartingSpace.viewport.visibleArea.topRight, thisObject.container, coordinateSystem); - - let dateDiff = rightDate.valueOf() - leftDate.valueOf(); - - leftDate = new Date(leftDate.valueOf() - dateDiff * 1.5); - rightDate = new Date(rightDate.valueOf() + dateDiff * 1.5); - - conditions = []; - headers = marketFile[0]; - - for (let i = 0; i < marketFile[1].length; i++) { - - let record = { - begin: undefined, - end: undefined, - conditions: undefined - }; - - record.begin = marketFile[1][i][0]; - record.end = marketFile[1][i][1]; - record.strategyNumber = marketFile[1][i][2]; - record.strategyPhase = marketFile[1][i][3]; - record.stopLossPhase = marketFile[1][i][4]; - record.takeProfitPhase = marketFile[1][i][5]; - record.conditions = marketFile[1][i][6]; - record.formulaErrors = marketFile[1][i][7]; - record.formulaValues = marketFile[1][i][8]; - - if ( - (record.begin >= leftDate.valueOf() && record.end <= rightDate.valueOf()) && - (record.begin >= coordinateSystem.min.x && record.end <= coordinateSystem.max.x) - ) { - - conditions.push(record); - - if (datetime.valueOf() >= record.begin && datetime.valueOf() <= record.end) { - - thisObject.currentRecord = record; - thisObject.container.eventHandler.raiseEvent("Current Condition Changed", thisObject.currentRecord); - - } - } - } - - //console.log("Olivia > recalculateUsingMarketFiles > total conditions generated : " + conditions.length); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] recalculateUsingMarketFiles -> err = " + err.stack); } - } - } - - function plotChart() { - - try { - - thisObject.container.eventHandler.raiseEvent("Current Condition Record Changed", undefined); - - let conditionRecord; - - for (let i = 0; i < conditions.length; i++) { - - conditionRecord = conditions[i]; - - /* Send the current record to the panel */ - - if (userPositionDate >= conditionRecord.begin && userPositionDate <= conditionRecord.end) { - - let currentRecord = { - conditionsNames: headers, - strategyNumber: conditionRecord.strategyNumber, - strategyPhase: conditionRecord.strategyPhase, - stopLossPhase: conditionRecord.stopLossPhase, - takeProfitPhase: conditionRecord.takeProfitPhase, - conditionsValues: conditionRecord.conditions, - formulaErrors: conditionRecord.formulaErrors, - formulaValues: conditionRecord.formulaValues - }; - - sendRecordInfoToDesignerSpace(currentRecord) - } - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] plotChart -> err = " + err.stack); } - } - } - - function sendRecordInfoToDesignerSpace(currentRecord) { - - if (currentRecord === undefined) { return; } - if (currentRecord.conditionsNames === undefined) { return; } - if (canvas.designSpace.workspace === undefined) { return; } - - /* We will get now the designer trading system */ - let designerTradingSystem - let fileTradingSystem = currentRecord.conditionsNames; - - for (let i = 0; i < canvas.designSpace.workspace.workspaceNode.rootNodes.length; i++) { - let rootNode = canvas.designSpace.workspace.workspaceNode.rootNodes[i] - if (rootNode.type === 'Trading System') { - if (rootNode.id === fileTradingSystem.id) { - designerTradingSystem = rootNode - } - } - } - - if (designerTradingSystem === undefined) { return; } - - try { - - browserCanvasContext.beginPath(); - - - let conditionIndex = 0; - let formulaErrorsIndex = 0; - let formulaValuesIndex = 0; - - designerTradingSystem.payload.uiObject.setErrorMessage(fileTradingSystem.error) - - if (fileTradingSystem.parameters !== undefined) { - designerTradingSystem.parameters.payload.uiObject.setErrorMessage(fileTradingSystem.parameters.error) - if (fileTradingSystem.parameters.baseAsset !== undefined) { - designerTradingSystem.parameters.baseAsset.payload.uiObject.setErrorMessage(fileTradingSystem.parameters.baseAsset.error) - } - if (fileTradingSystem.parameters.timeRange !== undefined) { - designerTradingSystem.parameters.timeRange.payload.uiObject.setErrorMessage(fileTradingSystem.parameters.timeRange.error) - } - if (fileTradingSystem.parameters.slippage !== undefined) { - designerTradingSystem.parameters.slippage.payload.uiObject.setErrorMessage(fileTradingSystem.parameters.slippage.error) - } - if (fileTradingSystem.parameters.feeStructure !== undefined) { - designerTradingSystem.parameters.feeStructure.payload.uiObject.setErrorMessage(fileTradingSystem.parameters.feeStructure.error) - } - } - - for (let j = 0; j < fileTradingSystem.strategies.length; j++) { - - let strategy = fileTradingSystem.strategies[j]; - designerTradingSystem.strategies[j].payload.uiObject.setErrorMessage(strategy.error) - - if (currentRecord.strategyNumber === j) { - designerTradingSystem.strategies[j].payload.uiObject.isExecuting = true - } else { - designerTradingSystem.strategies[j].payload.uiObject.isExecuting = false - } - - let triggerStage = strategy.triggerStage - - if (triggerStage !== undefined) { - designerTradingSystem.strategies[j].triggerStage.payload.uiObject.setErrorMessage(triggerStage.error) - - if (triggerStage.triggerOn !== undefined) { - designerTradingSystem.strategies[j].triggerStage.triggerOn.payload.uiObject.setErrorMessage(triggerStage.triggerOn.error) - - for (let k = 0; k < triggerStage.triggerOn.situations.length; k++) { - - let situation = triggerStage.triggerOn.situations[k]; - designerTradingSystem.strategies[j].triggerStage.triggerOn.situations[k].payload.uiObject.setErrorMessage(triggerStage.triggerOn.situations[k].error) - processSituation(situation, designerTradingSystem.strategies[j].triggerStage.triggerOn.situations[k]); - } - - for (let k = 0; k < triggerStage.triggerOn.announcements.length; k++) { - - let announcement = triggerStage.triggerOn.announcements[k]; - designerTradingSystem.strategies[j].triggerStage.triggerOn.announcements[k].payload.uiObject.setErrorMessage(announcement.error) - if (announcement.formula !== undefined) { - designerTradingSystem.strategies[j].triggerStage.triggerOn.announcements[k].formula.payload.uiObject.setErrorMessage(announcement.formula.error) - } - } - } - - if (triggerStage.triggerOff !== undefined) { - - for (let k = 0; k < triggerStage.triggerOff.situations.length; k++) { - - let situation = triggerStage.triggerOff.situations[k]; - designerTradingSystem.strategies[j].triggerStage.triggerOff.situations[k].payload.uiObject.setErrorMessage(triggerStage.triggerOff.situations[k].error) - processSituation(situation, designerTradingSystem.strategies[j].triggerStage.triggerOff.situations[k]); - } - - for (let k = 0; k < triggerStage.triggerOff.announcements.length; k++) { - - let announcement = triggerStage.triggerOff.announcements[k]; - designerTradingSystem.strategies[j].triggerStage.triggerOff.announcements[k].payload.uiObject.setErrorMessage(announcement.error) - if (announcement.formula !== undefined) { - designerTradingSystem.strategies[j].triggerStage.triggerOff.announcements[k].formula.payload.uiObject.setErrorMessage(announcement.formula.error) - } - } - } - - if (triggerStage.takePosition !== undefined) { - - for (let k = 0; k < triggerStage.takePosition.situations.length; k++) { - - let situation = triggerStage.takePosition.situations[k]; - designerTradingSystem.strategies[j].triggerStage.takePosition.situations[k].payload.uiObject.setErrorMessage(triggerStage.takePosition.situations[k].error) - processSituation(situation, designerTradingSystem.strategies[j].triggerStage.takePosition.situations[k]); - } - - for (let k = 0; k < triggerStage.takePosition.announcements.length; k++) { - - let announcement = triggerStage.takePosition.announcements[k]; - designerTradingSystem.strategies[j].triggerStage.takePosition.announcements[k].payload.uiObject.setErrorMessage(announcement.error) - if (announcement.formula !== undefined) { - designerTradingSystem.strategies[j].triggerStage.takePosition.announcements[k].formula.payload.uiObject.setErrorMessage(announcement.formula.error) - } - } - } - } - - let openStage = strategy.openStage - - if (openStage !== undefined) { - designerTradingSystem.strategies[j].openStage.payload.uiObject.setErrorMessage(openStage.error) - - let initialDefinition = openStage.initialDefinition - - if (initialDefinition !== undefined) { - designerTradingSystem.strategies[j].openStage.initialDefinition.payload.uiObject.setErrorMessage(openStage.initialDefinition.error) - - if (initialDefinition.stopLoss !== undefined) { - designerTradingSystem.strategies[j].openStage.initialDefinition.stopLoss.payload.uiObject.setErrorMessage(openStage.initialDefinition.stopLoss.error) - - for (let p = 0; p < initialDefinition.stopLoss.phases.length; p++) { - - if (currentRecord.strategyNumber === j && currentRecord.stopLossPhase === p) { - designerTradingSystem.strategies[j].openStage.initialDefinition.stopLoss.phases[p].payload.uiObject.isExecuting = true - } else { - designerTradingSystem.strategies[j].openStage.initialDefinition.stopLoss.phases[p].payload.uiObject.isExecuting = false - } - - let phase = initialDefinition.stopLoss.phases[p]; - designerTradingSystem.strategies[j].openStage.initialDefinition.stopLoss.phases[p].payload.uiObject.setErrorMessage(openStage.initialDefinition.stopLoss.phases[p].error) - - if (phase.formula !== undefined) { - designerTradingSystem.strategies[j].openStage.initialDefinition.stopLoss.phases[p].formula.payload.uiObject.setErrorMessage(openStage.initialDefinition.stopLoss.phases[p].formula.error) - - if (currentRecord.formulaErrors[formulaErrorsIndex] !== "") { - if (currentRecord.strategyNumber === j && currentRecord.stopLossPhase === p) { - designerTradingSystem.strategies[j].openStage.initialDefinition.stopLoss.phases[p].formula.payload.uiObject.setErrorMessage(currentRecord.formulaErrors[formulaErrorsIndex]) - } - } - formulaErrorsIndex++ - - if (currentRecord.strategyNumber === j && currentRecord.stopLossPhase === p) { - designerTradingSystem.strategies[j].openStage.initialDefinition.stopLoss.phases[p].formula.payload.uiObject.setValue(currentRecord.formulaValues[formulaValuesIndex]) - } - formulaValuesIndex++ - } - - for (let k = 0; k < phase.announcements.length; k++) { - - let announcement = phase.announcements[k]; - designerTradingSystem.strategies[j].openStage.initialDefinition.stopLoss.phases[p].announcements[k].payload.uiObject.setErrorMessage(announcement.error) - if (announcement.formula !== undefined) { - designerTradingSystem.strategies[j].openStage.initialDefinition.stopLoss.phases[p].announcements[k].formula.payload.uiObject.setErrorMessage(announcement.formula.error) - } - } - - let nextPhaseEvent = phase.nextPhaseEvent; - if (nextPhaseEvent !== undefined) { - designerTradingSystem.strategies[j].openStage.initialDefinition.stopLoss.phases[p].nextPhaseEvent.payload.uiObject.setErrorMessage(openStage.initialDefinition.stopLoss.phases[p].nextPhaseEvent.error) - - for (let k = 0; k < nextPhaseEvent.situations.length; k++) { - - let situation = nextPhaseEvent.situations[k]; - - processSituation(situation, designerTradingSystem.strategies[j].openStage.initialDefinition.stopLoss.phases[p].nextPhaseEvent.situations[k]); - } - - for (let k = 0; k < nextPhaseEvent.announcements.length; k++) { - - let announcement = nextPhaseEvent.announcements[k]; - designerTradingSystem.strategies[j].openStage.initialDefinition.stopLoss.phases[p].nextPhaseEvent.announcements[k].payload.uiObject.setErrorMessage(announcement.error) - if (announcement.formula !== undefined) { - designerTradingSystem.strategies[j].openStage.initialDefinition.stopLoss.phases[p].nextPhaseEvent.announcements[k].formula.payload.uiObject.setErrorMessage(announcement.formula.error) - } - } - } - - for (let n = 0; n < phase.moveToPhaseEvents.length; n++) { - let moveToPhaseEvent = phase.moveToPhaseEvents[n]; - if (moveToPhaseEvent !== undefined) { - designerTradingSystem.strategies[j].openStage.initialDefinition.stopLoss.phases[p].moveToPhaseEvents[n].payload.uiObject.setErrorMessage(openStage.initialDefinition.stopLoss.phases[p].moveToPhaseEvents[n].error) - - for (let k = 0; k < moveToPhaseEvent.situations.length; k++) { - - let situation = moveToPhaseEvent.situations[k]; - - processSituation(situation, designerTradingSystem.strategies[j].openStage.initialDefinition.stopLoss.phases[p].moveToPhaseEvents[n].situations[k]); - } - - for (let k = 0; k < moveToPhaseEvent.announcements.length; k++) { - - let announcement = moveToPhaseEvent.announcements[k]; - designerTradingSystem.strategies[j].openStage.initialDefinition.stopLoss.phases[p].moveToPhaseEvents[n].announcements[k].payload.uiObject.setErrorMessage(announcement.error) - if (announcement.formula !== undefined) { - designerTradingSystem.strategies[j].openStage.initialDefinition.stopLoss.phases[p].moveToPhaseEvents[n].announcements[k].formula.payload.uiObject.setErrorMessage(announcement.formula.error) - } - } - } - } - } - } - - if (initialDefinition.takeProfit !== undefined) { - designerTradingSystem.strategies[j].openStage.initialDefinition.takeProfit.payload.uiObject.setErrorMessage(openStage.initialDefinition.takeProfit.error) - - for (let p = 0; p < initialDefinition.takeProfit.phases.length; p++) { - - if (currentRecord.strategyNumber === j && currentRecord.takeProfitPhase === p) { - designerTradingSystem.strategies[j].openStage.initialDefinition.takeProfit.phases[p].payload.uiObject.isExecuting = true - } else { - designerTradingSystem.strategies[j].openStage.initialDefinition.takeProfit.phases[p].payload.uiObject.isExecuting = false - } - - let phase = initialDefinition.takeProfit.phases[p]; - designerTradingSystem.strategies[j].openStage.initialDefinition.takeProfit.phases[p].payload.uiObject.setErrorMessage(openStage.initialDefinition.takeProfit.phases[p].error) - - if (phase.formula !== undefined) { - designerTradingSystem.strategies[j].openStage.initialDefinition.takeProfit.phases[p].formula.payload.uiObject.setErrorMessage(openStage.initialDefinition.takeProfit.phases[p].formula.error) - - if (currentRecord.formulaErrors[formulaErrorsIndex] !== "") { - if (currentRecord.strategyNumber === j && currentRecord.takeProfitPhase === p) { - designerTradingSystem.strategies[j].openStage.initialDefinition.takeProfit.phases[p].formula.payload.uiObject.setErrorMessage(currentRecord.formulaErrors[formulaErrorsIndex]) - } - } - formulaErrorsIndex++ - - if (currentRecord.strategyNumber === j && currentRecord.takeProfitPhase === p) { - designerTradingSystem.strategies[j].openStage.initialDefinition.takeProfit.phases[p].formula.payload.uiObject.setValue(currentRecord.formulaValues[formulaValuesIndex]) - } - formulaValuesIndex++ - } - - for (let k = 0; k < phase.announcements.length; k++) { - - let announcement = phase.announcements[k]; - designerTradingSystem.strategies[j].openStage.initialDefinition.takeProfit.phases[p].announcements[k].payload.uiObject.setErrorMessage(announcement.error) - if (announcement.formula !== undefined) { - designerTradingSystem.strategies[j].openStage.initialDefinition.takeProfit.phases[p].announcements[k].formula.payload.uiObject.setErrorMessage(announcement.formula.error) - } - } - - let nextPhaseEvent = phase.nextPhaseEvent; - if (nextPhaseEvent !== undefined) { - designerTradingSystem.strategies[j].openStage.initialDefinition.takeProfit.phases[p].nextPhaseEvent.payload.uiObject.setErrorMessage(openStage.initialDefinition.takeProfit.phases[p].nextPhaseEvent.error) - - for (let k = 0; k < nextPhaseEvent.situations.length; k++) { - - let situation = nextPhaseEvent.situations[k]; - - processSituation(situation, designerTradingSystem.strategies[j].openStage.initialDefinition.takeProfit.phases[p].nextPhaseEvent.situations[k]); - } - - for (let k = 0; k < nextPhaseEvent.announcements.length; k++) { - - let announcement = nextPhaseEvent.announcements[k]; - designerTradingSystem.strategies[j].openStage.initialDefinition.takeProfit.phases[p].nextPhaseEvent.announcements[k].payload.uiObject.setErrorMessage(announcement.error) - if (announcement.formula !== undefined) { - designerTradingSystem.strategies[j].openStage.initialDefinition.takeProfit.phases[p].nextPhaseEvent.announcements[k].formula.payload.uiObject.setErrorMessage(announcement.formula.error) - } - } - } - - for (let n = 0; n < phase.moveToPhaseEvents.length; n++) { - let moveToPhaseEvent = phase.moveToPhaseEvents[n]; - if (moveToPhaseEvent !== undefined) { - designerTradingSystem.strategies[j].openStage.initialDefinition.takeProfit.phases[p].moveToPhaseEvents[n].payload.uiObject.setErrorMessage(openStage.initialDefinition.takeProfit.phases[p].moveToPhaseEvent[n].error) - - for (let k = 0; k < moveToPhaseEvent.situations.length; k++) { - - let situation = moveToPhaseEvent.situations[k]; - - processSituation(situation, designerTradingSystem.strategies[j].openStage.initialDefinition.takeProfit.phases[p].moveToPhaseEvents[n].situations[k]); - } - - for (let k = 0; k < moveToPhaseEvent.announcements.length; k++) { - - let announcement = moveToPhaseEvent.announcements[k]; - designerTradingSystem.strategies[j].openStage.initialDefinition.takeProfit.phases[p].moveToPhaseEvents[n].announcements[k].payload.uiObject.setErrorMessage(announcement.error) - if (announcement.formula !== undefined) { - designerTradingSystem.strategies[j].openStage.initialDefinition.takeProfit.phases[p].moveToPhaseEvents[n].announcements[k].formula.payload.uiObject.setErrorMessage(announcement.formula.error) - } - } - } - } - } - } - } - - let openExecution = openStage.openExecution - - if (openExecution !== undefined) { - designerTradingSystem.strategies[j].openStage.openExecution.payload.uiObject.setErrorMessage(openStage.openExecution.error) - } - } - - let manageStage = strategy.manageStage - - if (manageStage !== undefined) { - designerTradingSystem.strategies[j].manageStage.payload.uiObject.setErrorMessage(manageStage.error) - - if (manageStage.stopLoss !== undefined) { - designerTradingSystem.strategies[j].manageStage.stopLoss.payload.uiObject.setErrorMessage(manageStage.stopLoss.error) - - for (let p = 0; p < manageStage.stopLoss.phases.length; p++) { - - if (currentRecord.strategyNumber === j && currentRecord.stopLossPhase - 1 === p) { - designerTradingSystem.strategies[j].manageStage.stopLoss.phases[p].payload.uiObject.isExecuting = true - } else { - designerTradingSystem.strategies[j].manageStage.stopLoss.phases[p].payload.uiObject.isExecuting = false - } - - let phase = manageStage.stopLoss.phases[p]; - designerTradingSystem.strategies[j].manageStage.stopLoss.phases[p].payload.uiObject.setErrorMessage(manageStage.stopLoss.phases[p].error) - - if (phase.formula !== undefined) { - designerTradingSystem.strategies[j].manageStage.stopLoss.phases[p].formula.payload.uiObject.setErrorMessage(manageStage.stopLoss.phases[p].formula.error) - - if (currentRecord.formulaErrors[formulaErrorsIndex] !== "") { - if (currentRecord.strategyNumber === j && currentRecord.stopLossPhase - 1 === p) { - designerTradingSystem.strategies[j].manageStage.stopLoss.phases[p].formula.payload.uiObject.setErrorMessage(currentRecord.formulaErrors[formulaErrorsIndex]) - } - } - formulaErrorsIndex++ - if (currentRecord.strategyNumber === j && currentRecord.stopLossPhase - 1 === p) { - designerTradingSystem.strategies[j].manageStage.stopLoss.phases[p].formula.payload.uiObject.setValue(currentRecord.formulaValues[formulaValuesIndex]) - } - formulaValuesIndex++ - } - - for (let k = 0; k < phase.announcements.length; k++) { - - let announcement = phase.announcements[k]; - designerTradingSystem.strategies[j].manageStage.stopLoss.phases[p].announcements[k].payload.uiObject.setErrorMessage(announcement.error) - if (announcement.formula !== undefined) { - designerTradingSystem.strategies[j].manageStage.stopLoss.phases[p].announcements[k].formula.payload.uiObject.setErrorMessage(announcement.formula.error) - } - } - - let nextPhaseEvent = phase.nextPhaseEvent; - if (nextPhaseEvent !== undefined) { - designerTradingSystem.strategies[j].manageStage.stopLoss.phases[p].nextPhaseEvent.payload.uiObject.setErrorMessage(manageStage.stopLoss.phases[p].nextPhaseEvent.error) - - for (let k = 0; k < nextPhaseEvent.situations.length; k++) { - - let situation = nextPhaseEvent.situations[k]; - - processSituation(situation, designerTradingSystem.strategies[j].manageStage.stopLoss.phases[p].nextPhaseEvent.situations[k]); - } - - for (let k = 0; k < nextPhaseEvent.announcements.length; k++) { - - let announcement = nextPhaseEvent.announcements[k]; - designerTradingSystem.strategies[j].manageStage.stopLoss.phases[p].nextPhaseEvent.announcements[k].payload.uiObject.setErrorMessage(announcement.error) - if (announcement.formula !== undefined) { - designerTradingSystem.strategies[j].manageStage.stopLoss.phases[p].nextPhaseEvent.announcements[k].formula.payload.uiObject.setErrorMessage(announcement.formula.error) - } - } - } - - for (let n = 0; n < phase.moveToPhaseEvents.length; n++) { - let moveToPhaseEvent = phase.moveToPhaseEvents[n]; - if (moveToPhaseEvent !== undefined) { - designerTradingSystem.strategies[j].manageStage.stopLoss.phases[p].moveToPhaseEvent[n].payload.uiObject.setErrorMessage(manageStage.stopLoss.phases[p].moveToPhaseEvent[n].error) - - for (let k = 0; k < moveToPhaseEvent.situations.length; k++) { - - let situation = moveToPhaseEvent.situations[k]; - - processSituation(situation, designerTradingSystem.strategies[j].manageStage.stopLoss.phases[p].moveToPhaseEvent[n].situations[k]); - } - - for (let k = 0; k < moveToPhaseEvent.announcements.length; k++) { - - let announcement = moveToPhaseEvent.announcements[k]; - designerTradingSystem.strategies[j].manageStage.stopLoss.phases[p].moveToPhaseEvent[n].announcements[k].payload.uiObject.setErrorMessage(announcement.error) - if (announcement.formula !== undefined) { - designerTradingSystem.strategies[j].manageStage.stopLoss.phases[p].moveToPhaseEvent[n].announcements[k].formula.payload.uiObject.setErrorMessage(announcement.formula.error) - } - } - } - } - } - } - - if (manageStage.takeProfit !== undefined) { - designerTradingSystem.strategies[j].manageStage.takeProfit.payload.uiObject.setErrorMessage(manageStage.takeProfit.error) - - for (let p = 0; p < manageStage.takeProfit.phases.length; p++) { - - if (currentRecord.strategyNumber === j && currentRecord.takeProfitPhase - 1 === p) { - designerTradingSystem.strategies[j].manageStage.takeProfit.phases[p].payload.uiObject.isExecuting = true - } else { - designerTradingSystem.strategies[j].manageStage.takeProfit.phases[p].payload.uiObject.isExecuting = false - } - - let phase = manageStage.takeProfit.phases[p]; - designerTradingSystem.strategies[j].manageStage.takeProfit.phases[p].payload.uiObject.setErrorMessage(manageStage.takeProfit.phases[p].error) - - if (phase.formula !== undefined) { - designerTradingSystem.strategies[j].manageStage.takeProfit.phases[p].formula.payload.uiObject.setErrorMessage(manageStage.takeProfit.phases[p].formula.error) - - if (currentRecord.formulaErrors[formulaErrorsIndex] !== "") { - if (currentRecord.strategyNumber === j && currentRecord.takeProfitPhase - 1 === p) { - designerTradingSystem.strategies[j].manageStage.takeProfit.phases[p].formula.payload.uiObject.setErrorMessage(currentRecord.formulaErrors[formulaErrorsIndex]) - } - } - formulaErrorsIndex++ - - if (currentRecord.strategyNumber === j && currentRecord.takeProfitPhase - 1 === p) { - designerTradingSystem.strategies[j].manageStage.takeProfit.phases[p].formula.payload.uiObject.setValue(currentRecord.formulaValues[formulaValuesIndex]) - } - formulaValuesIndex++ - } - - for (let k = 0; k < phase.announcements.length; k++) { - - let announcement = phase.announcements[k]; - designerTradingSystem.strategies[j].manageStage.takeProfit.phases[p].announcements[k].payload.uiObject.setErrorMessage(announcement.error) - if (announcement.formula !== undefined) { - designerTradingSystem.strategies[j].manageStage.takeProfit.phases[p].announcements[k].formula.payload.uiObject.setErrorMessage(announcement.formula.error) - } - } - - let nextPhaseEvent = phase.nextPhaseEvent; - if (nextPhaseEvent !== undefined) { - designerTradingSystem.strategies[j].manageStage.takeProfit.phases[p].nextPhaseEvent.payload.uiObject.setErrorMessage(manageStage.takeProfit.phases[p].nextPhaseEvent.error) - - for (let k = 0; k < nextPhaseEvent.situations.length; k++) { - - let situation = nextPhaseEvent.situations[k]; - - processSituation(situation, designerTradingSystem.strategies[j].manageStage.takeProfit.phases[p].nextPhaseEvent.situations[k]); - } - - for (let k = 0; k < nextPhaseEvent.announcements.length; k++) { - - let announcement = nextPhaseEvent.announcements[k]; - designerTradingSystem.strategies[j].manageStage.takeProfit.phases[p].nextPhaseEvent.announcements[k].payload.uiObject.setErrorMessage(announcement.error) - if (announcement.formula !== undefined) { - designerTradingSystem.strategies[j].manageStage.takeProfit.phases[p].nextPhaseEvent.announcements[k].formula.payload.uiObject.setErrorMessage(announcement.formula.error) - } - } - } - for (let n = 0; n < phase.moveToPhaseEvents.length; n++) { - let moveToPhaseEvent = phase.moveToPhaseEvents[n]; - if (moveToPhaseEvent !== undefined) { - designerTradingSystem.strategies[j].manageStage.takeProfit.phases[p].moveToPhaseEvents[n].payload.uiObject.setErrorMessage(manageStage.takeProfit.phases[p].moveToPhaseEvents[n].error) - - for (let k = 0; k < moveToPhaseEvent.situations.length; k++) { - - let situation = moveToPhaseEvent.situations[k]; - - processSituation(situation, designerTradingSystem.strategies[j].manageStage.takeProfit.phases[p].moveToPhaseEvents[n].situations[k]); - } - - for (let k = 0; k < moveToPhaseEvent.announcements.length; k++) { - - let announcement = moveToPhaseEvent.announcements[k]; - designerTradingSystem.strategies[j].manageStage.takeProfit.phases[p].moveToPhaseEvents[n].announcements[k].payload.uiObject.setErrorMessage(announcement.error) - if (announcement.formula !== undefined) { - designerTradingSystem.strategies[j].manageStage.takeProfit.phases[p].moveToPhaseEvents[n].announcements[k].formula.payload.uiObject.setErrorMessage(announcement.formula.error) - } - } - } - } - } - } - } - - - let closeStage = strategy.closeStage - - if (closeStage !== undefined) { - designerTradingSystem.strategies[j].closeStage.payload.uiObject.setErrorMessage(closeStage.error) - - let closeExecution = closeStage.closeExecution - - if (closeExecution !== undefined) { - designerTradingSystem.strategies[j].closeStage.closeExecution.payload.uiObject.setErrorMessage(closeStage.closeExecution.error) - } - } - } - - function processSituation(situation, node) { - - node.payload.uiObject.setErrorMessage(situation.error) - - let highlightSituation = true - - for (let m = 0; m < situation.conditions.length; m++) { - - let condition = node.conditions[m] - if (condition !== undefined) { - condition.payload.uiObject.setErrorMessage(situation.conditions[m].error) - - if (situation.conditions[m].javascriptCode !== undefined) { - if (condition.javascriptCode !== undefined) { - condition.javascriptCode.payload.uiObject.setErrorMessage(situation.conditions[m].javascriptCode.error) - } - } - - if (currentRecord.conditionsValues[conditionIndex] === 1) { - condition.payload.uiObject.highlight() - } else { - highlightSituation = false - } - conditionIndex++; - } - } - - if (highlightSituation === true) { - node.payload.uiObject.highlight() - } - } - - - browserCanvasContext.closePath(); - browserCanvasContext.fill(); - - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] sendRecordInfoToDesignerSpace -> err = " + err.stack); } - } - } - - - - function onViewportZoomChanged(event) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] onViewportZoomChanged -> Entering function."); } - - recalculate(); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] onViewportZoomChanged -> err = " + err.stack); } - } - } - - function onViewportPositionChanged(event) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] onViewportPositionChanged -> Entering function."); } - - if (event !== undefined) { - if (event.recalculate === true) { - recalculate() - return - } - } - if (Math.random() * 100 > 95) { - recalculate() - }; - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] onViewportPositionChanged -> err = " + err.stack); } - } - } - - function onDragFinished() { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] onDragFinished -> Entering function."); } - - recalculate(); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] onDragFinished -> err = " + err.stack); } - } - } -} - - - - - - - - - - - - - - - - - - - - - - diff --git a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/FinalResults.js b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/FinalResults.js deleted file mode 100644 index dcc9ce8d2..000000000 --- a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/FinalResults.js +++ /dev/null @@ -1,348 +0,0 @@ -function newAAMastersPlottersTradingSimulationFinalResults() { - - const MODULE_NAME = "Final Results Plotter"; - const ERROR_LOG = true; - const INTENSIVE_LOG = false; - const logger = newWebDebugLog(); - logger.fileName = MODULE_NAME; - - let thisObject = { - - // Main functions and properties. - - initialize: initialize, - finalize: finalize, - container: undefined, - getContainer: getContainer, - setTimePeriod: setTimePeriod, - setDatetime: setDatetime, - draw: draw, - recalculateScale: recalculateScale, - currentRecord: undefined - }; - - /* this is part of the module template */ - - let container = newContainer(); // Do not touch this 3 lines, they are just needed. - container.initialize(); - thisObject.container = container; - - let timeLineCoordinateSystem = newTimeLineCoordinateSystem(); // Needed to be able to plot on the timeline, otherwise not. - - let timePeriod; // This will hold the current Time Period the user is at. - let datetime; // This will hold the current Datetime the user is at. - - let dataFile; // This is the current Market File being plotted. - let fileCursor; // This is the current File Cursor being used to retrieve Daily Files. - - let singleFile; // This object will provide the different Market Files at different Time Periods. - - /* these are module specific variables: */ - - let records = []; // Here we keep the records to be ploted every time the Draw() function is called by the AAWebPlatform. - - let imageStopLossPhase; - let imageTakeProfitPhase; - let imageRecord; - - let zoomChangedEventSubscriptionId - let offsetChangedEventSubscriptionId - let filesUpdatedEventSubscriptionId - let dragFinishedEventSubscriptionId - let dimmensionsChangedEventSubscriptionId - - return thisObject; - - function finalize() { - try { - - /* Stop listening to the necesary events. */ - - viewPort.eventHandler.stopListening(zoomChangedEventSubscriptionId); - viewPort.eventHandler.stopListening(offsetChangedEventSubscriptionId); - singleFile.eventHandler.stopListening(filesUpdatedEventSubscriptionId); - canvas.eventHandler.stopListening(dragFinishedEventSubscriptionId); - thisObject.container.eventHandler.stopListening(dimmensionsChangedEventSubscriptionId) - - /* icons */ - - imageStopLossPhase = undefined; - imageTakeProfitPhase = undefined; - imageRecord = undefined; - - /* Destroy References */ - - singleFile = undefined; - - datetime = undefined; - timePeriod = undefined; - - dataFile = undefined; - fileCursor = undefined; - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] finalize -> err = " + err.stack); } - } - } - - function initialize(pStorage, pExchange, pMarket, pDatetime, pTimePeriod, callBackFunction) { - - try { - - /* Store the information received. */ - - singleFile = pStorage.singleFile; - - datetime = pDatetime; - timePeriod = pTimePeriod; - - dataFile = singleFile.getFile(timePeriod); - - /* Listen to the necesary events. */ - - zoomChangedEventSubscriptionId = viewPort.eventHandler.listenToEvent("Zoom Changed", onZoomChanged); - offsetChangedEventSubscriptionId = viewPort.eventHandler.listenToEvent("Offset Changed", onOffsetChanged); - filesUpdatedEventSubscriptionId = singleFile.eventHandler.listenToEvent("Files Updated", onFilesUpdated); - dragFinishedEventSubscriptionId = canvas.eventHandler.listenToEvent("Drag Finished", onDragFinished); - - /* Get ready for plotting. */ - - recalculate(); - - /* Ready for when dimmension changes. */ - - dimmensionsChangedEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('Dimmensions Changed', function () { - recalculate(); - }) - - callBackFunction(); - - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] initialize -> err = " + err.stack); } - } - } - - function getContainer(point) { - let container; - /* First we check if this point is inside this space. */ - if (this.container.frame.isThisPointHere(point) === true) { - return this.container; - } else { - /* This point does not belong to this space. */ - return undefined; - } - } - - function onFilesUpdated() { - try { - dataFile = singleFile.getFile(timePeriod); - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] onFilesUpdated -> err = " + err.stack); } - } - } - - function setTimePeriod(pTimePeriod) { - try { - if (timePeriod !== pTimePeriod) { - timePeriod = pTimePeriod; - dataFile = singleFile.getFile(timePeriod); - recalculate(); - } - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] setTimePeriod -> err = " + err.stack); } - } - } - - function setDatetime(pDatetime) { - datetime = pDatetime; - } - - function draw() { - try { - // Nothing to draw for now - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] draw -> err = " + err.stack); } - } - } - - function recalculate() { - - try { - - records = [] - - if (timePeriod >= _1_HOUR_IN_MILISECONDS) { - - recalculateUsingMarketFiles(); - - } else { - - recalculateUsingDailyFiles(); - - } - - thisObject.container.eventHandler.raiseEvent("Records Changed", records); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] recalculate -> err = " + err.stack); } - } - } - - function recalculate() { - - try { - - if (dataFile === undefined) { return; } // Initialization not complete yet. - - records = []; - - for (let i = 0; i < dataFile.length; i++) { - - let record = {}; - - record.begin = dataFile[i][0]; - record.end = dataFile[i][1]; - record.type = dataFile[i][2]; - record.rate = dataFile[i][3]; - record.amount = dataFile[i][4]; - record.balanceA = dataFile[i][5]; - record.balanceB = dataFile[i][6]; - record.profit = dataFile[i][7]; - record.lastTradeProfitLoss = dataFile[i][8]; - record.stopLoss = dataFile[i][9]; - record.roundtrips = dataFile[i][10]; - record.hits = dataFile[i][11]; - record.fails = dataFile[i][12]; - record.hitRatio = dataFile[i][13]; - record.ROI = dataFile[i][14]; - record.periods = dataFile[i][15]; - record.days = dataFile[i][16]; - record.anualizedRateOfReturn = dataFile[i][17]; - record.sellRate = dataFile[i][18]; - record.lastTradeROI = dataFile[i][19]; - record.strategy = dataFile[i][20]; - record.strategyPhase = dataFile[i][21]; - record.takeProfit = dataFile[i][22]; - record.stopLossPhase = dataFile[i][23]; - record.takeProfitPhase = dataFile[i][24]; - record.positionSize = dataFile[i][26]; // 25 is the message for the executor - record.initialBalanceA = dataFile[i][27]; - record.minimunBalanceA = dataFile[i][28]; - record.maximunBalanceA = dataFile[i][29]; - record.initialBalanceB = dataFile[i][30]; - record.minimunBalanceB = dataFile[i][31]; - record.maximunBalanceB = dataFile[i][32]; - record.baseAsset = dataFile[i][33]; - record.positionPeriods = dataFile[i][34]; - record.positionDays = dataFile[i][35]; - - thisObject.currentRecord = record; - thisObject.container.eventHandler.raiseEvent("Current Record Changed", thisObject.currentRecord); - } - - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] recalculate -> err = " + err.stack); } - } - } - - function recalculateScale() { - try { - // No scale needed - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] recalculateScale -> err = " + err.stack); } - } - } - - function plotChart() { - try { - let userPosition = getUserPosition() - let userPositionDate = userPosition.point.x - - let record; - - /* Now we calculate and plot the records */ - for (let i = 0; i < records.length; i++) { // We do not start in 0 so as to be able to read the previous record i - 1 - - record = records[i]; - - /* Send the current record to the panel */ - - if (userPositionDate >= record.begin && userPositionDate <= record.end) { - - let eventRecords = { - currentRecord: record, - lastRecord: records[records.length - 1] - }; - thisObject.container.eventHandler.raiseEvent("Current Record Changed", eventRecords); - } - } - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] plotChart -> err = " + err.stack); } - } - } - - function onZoomChanged(event) { - try { - recalculate(); - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] onZoomChanged -> err = " + err.stack); } - } - } - - function onOffsetChanged() { - try { - if (Math.random() * 100 > 95) { - recalculate() - }; - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] onOffsetChanged -> err = " + err.stack); } - } - } - - function onDragFinished() { - try { - recalculate(); - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] onDragFinished -> err = " + err.stack); } - } - } -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/FinalResultsPanel.js b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/FinalResultsPanel.js deleted file mode 100644 index 0907ae991..000000000 --- a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/FinalResultsPanel.js +++ /dev/null @@ -1,360 +0,0 @@ - -function newAAMastersPlottersTradingSimulationTradingSimulationFinalResultsPanel() { - - let thisObject = { - fitFunction: undefined, - onEventRaised: onEventRaised, - container: undefined, - draw: draw, - getContainer: getContainer, - initialize: initialize, - finalize: finalize - }; - - let container = newContainer(); - container.initialize(); - thisObject.container = container; - - container.displacement.containerName = "Final Results"; - container.frame.containerName = "Final Results"; - - let currentRecord; - let lastRecord; - let panelTabButton - - - return thisObject; - - function initialize() { - - thisObject.container.frame.width = UI_PANEL.WIDTH.NORMAL * 2; - thisObject.container.frame.height = UI_PANEL.HEIGHT.NORMAL * 2.5; - - thisObject.container.frame.position.x = viewPort.visibleArea.topLeft.x + thisObject.container.frame.width * 1; - thisObject.container.frame.position.y = viewPort.visibleArea.topRight.y; - - panelTabButton = newPanelTabButton() - panelTabButton.parentContainer = thisObject.container - panelTabButton.container.frame.parentFrame = thisObject.container.frame - panelTabButton.fitFunction = thisObject.fitFunction - panelTabButton.initialize() - - } - - function finalize() { - - } - - function getContainer(point) { - - let container; - - container = panelTabButton.getContainer(point) - if (container !== undefined) { return container } - - if (thisObject.container.frame.isThisPointHere(point, true) === true) { - - let checkPoint = { - x: point.x, - y: point.y - } - - checkPoint = thisObject.fitFunction(checkPoint) - - if (point.x === checkPoint.x && point.y === checkPoint.y) { - return thisObject.container; - } - } - } - - - function onEventRaised(records) { - - currentRecord = records.currentRecord; - lastRecord = records.lastRecord - - } - - - function draw() { - - thisObject.container.frame.draw(false, false, true, thisObject.fitFunction); - - plotCurrentRecordInfo(); - - panelTabButton.draw() - } - - - function plotCurrentRecordInfo() { - - if (currentRecord === undefined) { return; } - if (lastRecord === undefined) { return; } - - const frameBodyHeight = thisObject.container.frame.getBodyHeight(); - const frameTitleHeight = thisObject.container.frame.height - frameBodyHeight; - - const X_AXIS = thisObject.container.frame.width / 2; - const Y_AXIS = frameTitleHeight + frameBodyHeight / 2; - - - /* put the labels with the records values */ - - browserCanvasContext.beginPath(); - - let y = 0; - let increment = 0.024; - - y = y + increment; - y = y + increment; - printLabel('Current Position', X_AXIS, frameTitleHeight + frameBodyHeight * y, '1', 14); - - y = y + increment; - printLabel('Size', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel(currentRecord.positionSize, X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('Rate', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel(currentRecord.sellRate, X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('Stop', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel(currentRecord.stopLoss, X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('Take Profit', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel(currentRecord.takeProfit, X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('Periods', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel((currentRecord.positionPeriods), X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('Days', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel((currentRecord.positionDays).toFixed(2), X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - y = y + increment; - printLabel('Latest Position', X_AXIS, frameTitleHeight + frameBodyHeight * y, '1', 14); - - y = y + increment; - printLabel('Profit / Loss', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel((currentRecord.lastTradeProfitLoss), X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('ROI', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel((currentRecord.lastTradeROI).toFixed(2) + ' % ', X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - - - let bifurcationLevel = y - y = y + increment; - y = y + increment; - printLabel('Partial Results', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1', 14); - - y = y + increment; - printLabel('Profit / Loss', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel(currentRecord.profit, X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('Trades', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel(currentRecord.roundtrips, X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('Hits', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel(currentRecord.hits, X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('Fails', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel(currentRecord.fails, X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('Hit Ratio', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel((currentRecord.hitRatio * 100).toFixed(2) + ' %', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('ROI', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel((currentRecord.ROI * 100).toFixed(2) + ' %', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('Periods', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel(currentRecord.periods, X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('Days', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel(currentRecord.days, X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('Anualized Rate of Return', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel((currentRecord.anualizedRateOfReturn * 100).toFixed(2) + ' %', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - - y = bifurcationLevel - - y = y + increment; - y = y + increment; - printLabel('Final Results', X_AXIS + thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1', 14); - - y = y + increment; - printLabel('Profit / Loss', X_AXIS + thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel(lastRecord.profit, X_AXIS + thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('Trades', X_AXIS + thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel(lastRecord.roundtrips, X_AXIS + thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('Hits', X_AXIS + thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel(lastRecord.hits, X_AXIS + thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('Fails', X_AXIS + thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel(lastRecord.fails, X_AXIS + thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('Hit Ratio', X_AXIS + thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel((lastRecord.hitRatio * 100).toFixed(2) + ' %', X_AXIS + thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('ROI', X_AXIS + thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel((lastRecord.ROI * 100).toFixed(2) + ' %', X_AXIS + thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('Periods', X_AXIS + thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel(lastRecord.periods, X_AXIS + thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('Days', X_AXIS + thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel(lastRecord.days, X_AXIS + thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - y = y + increment; - printLabel('Anualized Rate of Return', X_AXIS + thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); - y = y + increment; - printLabel((lastRecord.anualizedRateOfReturn * 100).toFixed(2) + ' %', X_AXIS + thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); - - - - function printLabel(labelToPrint, x, y, opacity, fontSize) { - - let labelPoint; - if (fontSize === undefined) { fontSize = 10 }; - - browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY; - - let label = '' + labelToPrint; - if (isNaN(label) === false) { - label = Number(label).toLocaleString(); - if ((label === "-0" || label === "0") && (labelToPrint !== 0) && (labelToPrint !== "0.00")) { - label = Number(labelToPrint).toFixed(6); - } - } - let xOffset = label.length / 2 * fontSize * FONT_ASPECT_RATIO; - - labelPoint = { - x: x - xOffset, - y: y - }; - - labelPoint = thisObject.container.frame.frameThisPoint(labelPoint); - labelPoint = thisObject.fitFunction(labelPoint) - - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.DARK + ', ' + opacity + ')'; - browserCanvasContext.fillText(label, labelPoint.x, labelPoint.y); - - } - - browserCanvasContext.closePath(); - browserCanvasContext.fill(); - - /* Parameters */ - let params - let paramsArray = [] - let positionTaken = false - - if (currentRecord.positionSize > 0) { - positionTaken = true - } - - params = {} - params.VALUE = currentRecord.balanceA; - params.INIT_VALUE = currentRecord.initialBalanceA - params.MIN_VALUE = currentRecord.minimunBalanceA - params.MAX_VALUE = currentRecord.maximunBalanceA - params.ASSET_LABEL = 'Asset A' - params.ASSET_NAME = DEFAULT_MARKET.assetB - params.LEFT_OFFSET = 100 - params.POSITION_TAKEN = positionTaken - params.BASE_ASSET = currentRecord.baseAsset - params.DECIMALS = 4 - - paramsArray.push(params) - - params = {} - params.VALUE = currentRecord.balanceB; - params.MIN_VALUE = currentRecord.minimunBalanceB - params.INIT_VALUE = currentRecord.initialBalanceB - params.MAX_VALUE = currentRecord.maximunBalanceB - params.ASSET_LABEL = 'Asset B' - params.ASSET_NAME = DEFAULT_MARKET.assetA - params.LEFT_OFFSET = 220 - params.POSITION_TAKEN = positionTaken - params.BASE_ASSET = currentRecord.baseAsset - params.DECIMALS = 2 - - paramsArray.push(params) - - canvas.cockpitSpace.assetBalances.setParamsArray(paramsArray) - } -} - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/SimulationExecution.js b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/SimulationExecution.js deleted file mode 100644 index 9db58a633..000000000 --- a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/SimulationExecution.js +++ /dev/null @@ -1,799 +0,0 @@ -function newTradingEnginesPlottersTradingSimulationSimulationExecution() { - - const MODULE_NAME = "Simulation Execution Plotter"; - const INTENSIVE_LOG = false; - const ERROR_LOG = true; - const logger = newWebDebugLog(); - logger.fileName = MODULE_NAME; - - let thisObject = { - - // Main functions and properties. - - initialize: initialize, - finalize: finalize, - container: undefined, - fitFunction: undefined, - getContainer: getContainer, - setTimeFrame: setTimeFrame, - setDatetime: setDatetime, - setCoordinateSystem: setCoordinateSystem, - draw: draw - }; - - /* this is part of the module template */ - - let container = newContainer(); // Do not touch this 3 lines, they are just needed. - container.initialize(); - thisObject.container = container; - - let coordinateSystem - - let timeFrame; // This will hold the current Time Frame the user is at. - let datetime; // This will hold the current Datetime the user is at. - - /* these are module specific variables: */ - - let fileSequence; - let plotElements = []; // This is where the elements to be plotted are stored before plotting. - let plotLines = []; // Here we store the lines of open positions. - - let previousNotesSetKey; - - let onMouseOverEventSuscriptionId - let offsetChangedEventSubscriptionId - let filesUpdatedEventSubscriptionId - let dimmensionsChangedEventSubscriptionId - let scaleChangedEventSubscriptionId - - let userPositionDate - return thisObject; - - function finalize() { - try { - - /* Stop listening to the necesary events. */ - thisObject.container.eventHandler.stopListening(onMouseOverEventSuscriptionId) - canvas.chartingSpace.viewport.eventHandler.stopListening(offsetChangedEventSubscriptionId); - fileSequence.eventHandler.stopListening(filesUpdatedEventSubscriptionId); - thisObject.container.eventHandler.stopListening(dimmensionsChangedEventSubscriptionId) - - /* Destroyd References */ - - datetime = undefined; - timeFrame = undefined; - - fileSequence = undefined; - plotElements = undefined; - plotLines = undefined; - - thisObject.fitFunction = undefined - - finalizeCoordinateSystem() - coordinateSystem = undefined - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] ' + MODULE_NAME + ' -> finalize -> err = " + err.stack.stack); } - } - } - - function initialize(pStorage, pDatetime, pTimeFrame, pCoordinateSystem, callBackFunction) { - - try { - - datetime = pDatetime; - timeFrame = pTimeFrame; - coordinateSystem = pCoordinateSystem - initializeCoordinateSystem() - - fileSequence = pStorage.fileSequences[0]; - - recalculate(); - - filesUpdatedEventSubscriptionId = fileSequence.eventHandler.listenToEvent("Files Updated", onFilesUpdated); // Only the first sequence is supported right now. - offsetChangedEventSubscriptionId = canvas.chartingSpace.viewport.eventHandler.listenToEvent("Position Changed", onViewportPositionChanged); - onMouseOverEventSuscriptionId = thisObject.container.eventHandler.listenToEvent('onMouseOver', onMouseOver) - - /* Ready for when dimmension changes. */ - - dimmensionsChangedEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('Dimmensions Changed', function () { - recalculate(); - }) - callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE); - - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] ' + MODULE_NAME + ' -> initialize -> err = " + err.stack); } - callBackFunction(GLOBAL.CUSTOM_FAIL_RESPONSE); - } - } - - function initializeCoordinateSystem() { - scaleChangedEventSubscriptionId = coordinateSystem.eventHandler.listenToEvent('Scale Changed', onScaleChanged) - } - - function finalizeCoordinateSystem() { - coordinateSystem.eventHandler.stopListening(scaleChangedEventSubscriptionId) - } - - function onScaleChanged() { - recalculate(); - } - - function onMouseOver(event) { - let userPosition = getDateFromPointAtBrowserCanvas(event, thisObject.container, coordinateSystem) - userPositionDate = userPosition.valueOf() - } - - function getContainer(point) { - try { - let container; - /* First we check if this point is inside this space. */ - if (this.container.frame.isThisPointHere(point) === true) { - return this.container; - } else { - /* This point does not belong to this space. */ - return undefined; - } - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] ' + MODULE_NAME + ' -> initialize -> err = " + err.stack); } - } - } - - function onFilesUpdated() { - recalculate(); - } - - function setTimeFrame(pTimeFrame) { - timeFrame = pTimeFrame; - recalculate(); - } - - function setDatetime(pDatetime) { - datetime = pDatetime; - } - - function setCoordinateSystem(pCoordinateSystem) { - finalizeCoordinateSystem() - coordinateSystem = pCoordinateSystem - initializeCoordinateSystem() - } - - function onViewportPositionChanged() { - if (Math.random() * 100 > 95) { - recalculate() - } - } - - function recalculate() { - try { - if (fileSequence === undefined) { return; } - /* - - We are going to filter the records depending on the Time Frame. We want that for a 1 min time peroid all the records appears on screen, - but for higher periods, we will filter out some records, so that they do not overlap ever. - - */ - plotElements = []; - plotLines = []; - - let lastSellRate; - let lastSellDate; - let sellExecRate; - - let lastBuyRate; - let lastBuyDate; - let buyExecRate; - - let maxSequence = fileSequence.getFilesLoaded(); - - for (let j = 0; j < maxSequence; j++) { - - let file = fileSequence.getFile(j); - - let history = []; - let lines = []; - - /* First the small balls */ - - const ONE_MIN_IN_MILISECONDS = 60 * 1000; - let step = timeFrame / ONE_MIN_IN_MILISECONDS; - step = 1; // For now we dont discard records depending on the zoom level. - - let i = 0; - let lastRecordPushed = 0; - - for (i = 0; i < file.length; i = i + step) { - - let newHistoryRecord = { - - date: Math.trunc(file[i][0] / 60000) * 60000 + 30000, - buyAvgRate: file[i][1], - sellAvgRate: file[i][2], - - lastSellRate: file[i][3], - sellExecRate: file[i][4], - lastBuyRate: file[i][5], - buyExecRate: file[i][6], - - marketRate: file[i][7], - newPositions: file[i][8], - newTrades: file[i][9], - movedPositions: file[i][10], - profitsAssetA: file[i][11], - profitsAssetB: file[i][12], - combinedProfitsA: file[i][13], - combinedProfitsB: file[i][14], - datetime: file[i][0] - }; - - /* Finally we add this History Record to the Array */ - - history.push(newHistoryRecord); - lastRecordPushed = i; - - /* Here we build the lines. */ - - //if (timeFrame <= 1 * 60 * 1000) { - - if (newHistoryRecord.lastSellRate > 0) { - lastSellRate = newHistoryRecord.lastSellRate; - lastSellDate = newHistoryRecord.date; - } - - if (newHistoryRecord.sellExecRate > 0) { - let newLine = { - type: "sell", - x1: lastSellDate, - y1: lastSellRate, - x2: newHistoryRecord.date, - y2: newHistoryRecord.sellExecRate - }; - lines.push(newLine); - } - - if (newHistoryRecord.lastBuyRate > 0) { - lastBuyRate = newHistoryRecord.lastBuyRate; - lastBuyDate = newHistoryRecord.date; - } - - if (newHistoryRecord.buyExecRate > 0) { - let newLine = { - type: "buy", - x1: lastBuyDate, - y1: lastBuyRate, - x2: newHistoryRecord.date, - y2: newHistoryRecord.buyExecRate - }; - lines.push(newLine); - } - //} - } - - /* We allways want to put the last record of the file on the filterd dataset, so as to allways show the latest advance of the bot. */ - - i = file.length - 1; - - if (lastRecordPushed !== i) { - - let newHistoryRecord = { - - date: Math.trunc(file[i][0] / 60000) * 60000 + 30000, - buyAvgRate: file[i][1], - sellAvgRate: file[i][2], - - lastSellRate: file[i][3], - sellExecRate: file[i][4], - lastBuyRate: file[i][5], - buyExecRate: file[i][6], - - marketRate: file[i][7], - newPositions: file[i][8], - newTrades: file[i][9], - movedPositions: file[i][10], - profitsAssetA: file[i][11], - profitsAssetB: file[i][12], - combinedProfitsA: file[i][13], - combinedProfitsB: file[i][14] - }; - - history.push(newHistoryRecord); - - } - - - for (let i = 0; i < file.length; i++) { - - let newHistoryRecord = { - - date: Math.trunc(file[i][0] / 60000) * 60000 + 30000, - buyAvgRate: file[i][1], - sellAvgRate: file[i][2], - - lastSellRate: file[i][3], - sellExecRate: file[i][4], - lastBuyRate: file[i][5], - buyExecRate: file[i][6], - - marketRate: file[i][7], - newPositions: file[i][8], - newTrades: file[i][9], - movedPositions: file[i][10], - profitsAssetA: file[i][11], - profitsAssetB: file[i][12], - combinedProfitsA: file[i][13], - combinedProfitsB: file[i][14] - }; - - } - plotElements.push(history); - plotLines.push(lines); - } - - thisObject.container.eventHandler.raiseEvent("History Changed", history); - - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] ' + MODULE_NAME + ' -> recalculate -> err = " + err.stack); } - } - } - - function draw() { - plotChart(); - } - - function plotChart() { - try { - - let currentRecord - - let point = { - x: 0, - y: 0 - }; - - let history; - - for (let j = 0; j < plotElements.length; j++) { - - let history = plotElements[j]; - - for (let i = 0; i < history.length; i++) { - - record = history[i]; - currentRecord = record - - let timestamp = record.date // Math.trunc(record.date / timeFrame) * timeFrame + timeFrame / 2; - - point = { - x: timestamp, - y: record.marketRate - }; - - point = coordinateSystem.transformThisPoint(point); - point = transformThisPoint(point, thisObject.container); - - if (point.x < canvas.chartingSpace.viewport.visibleArea.bottomLeft.x || point.x > canvas.chartingSpace.viewport.visibleArea.bottomRight.x) { continue; } - - point = canvas.chartingSpace.viewport.fitIntoVisibleArea(point); - point = thisObject.fitFunction(point); - - let isCurrentRecord = false; - - if (userPositionDate >= record.date - 30000 && userPositionDate <= record.date + 30000 - 1) { - isCurrentRecord = true; - } - - let opacity = '1'; - let currentRadius = 10 - - /* Draw a red inverted triangle on exec sell */ - if (record.sellExecRate > 0) { - - opacity = '1'; - - let normalSize = 5 - let extraSize = 0 - if (isCurrentRecord) { extraSize = 5 } - - let point1 = { - x: record.date, - y: record.sellExecRate - }; - - let point2 = { - x: record.date + timeFrame / 7 * (normalSize + extraSize), - y: record.sellExecRate - }; - - let point3 = { - x: record.date - timeFrame / 7 * (normalSize + extraSize), - y: record.sellExecRate - }; - - point1 = coordinateSystem.transformThisPoint(point1); - point1 = transformThisPoint(point1, thisObject.container); - point1 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point1); - point1 = thisObject.fitFunction(point1); - - point2 = coordinateSystem.transformThisPoint(point2); - point2 = transformThisPoint(point2, thisObject.container); - point2 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point2); - point2 = thisObject.fitFunction(point2); - - point3 = coordinateSystem.transformThisPoint(point3); - point3 = transformThisPoint(point3, thisObject.container); - point3 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point3); - point3 = thisObject.fitFunction(point3); - - let diff = point2.x - point3.x; - point2.y = point2.y - diff; - point3.y = point3.y - diff; - - currentRecord.timeFrame = diff - - point2 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point2); - point3 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point3); - point2 = thisObject.fitFunction(point2); - point3 = thisObject.fitFunction(point3); - - browserCanvasContext.beginPath(); - - browserCanvasContext.moveTo(point1.x, point1.y); - browserCanvasContext.lineTo(point2.x, point2.y); - browserCanvasContext.lineTo(point3.x, point3.y); - browserCanvasContext.lineTo(point1.x, point1.y); - - browserCanvasContext.closePath(); - - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.RUSTED_RED + ', ' + opacity + ')'; - - if (isCurrentRecord === false) { - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RED + ', ' + opacity + ')'; - } else { - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', ' + opacity + ')'; /* highlight the current record */ - } - - browserCanvasContext.fill(); - - browserCanvasContext.setLineDash([0, 0]) - browserCanvasContext.lineWidth = 0.25; - browserCanvasContext.stroke(); - - } - - /* Draw a green triangle on exec buy */ - if (record.buyExecRate > 0) { - - opacity = '1'; - - let normalSize = 5 - let extraSize = 0 - if (isCurrentRecord) { extraSize = 5 } - - let point1 = { - x: record.date, - y: record.buyExecRate - }; - - let point2 = { - x: record.date + timeFrame / 7 * (normalSize + extraSize), - y: record.buyExecRate - }; - - let point3 = { - x: record.date - timeFrame / 7 * (normalSize + extraSize), - y: record.buyExecRate - }; - - point1 = coordinateSystem.transformThisPoint(point1); - point1 = transformThisPoint(point1, thisObject.container); - point1 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point1); - point1 = thisObject.fitFunction(point1); - - point2 = coordinateSystem.transformThisPoint(point2); - point2 = transformThisPoint(point2, thisObject.container); - point2 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point2); - point2 = thisObject.fitFunction(point2); - - point3 = coordinateSystem.transformThisPoint(point3); - point3 = transformThisPoint(point3, thisObject.container); - point3 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point3); - point3 = thisObject.fitFunction(point3); - - let diff = point2.x - point3.x; - point2.y = point2.y + diff; - point3.y = point3.y + diff; - - currentRecord.timeFrame = diff - - point2 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point2); - point3 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point3); - point2 = thisObject.fitFunction(point2); - point3 = thisObject.fitFunction(point3); - - browserCanvasContext.beginPath(); - - browserCanvasContext.moveTo(point1.x, point1.y); - browserCanvasContext.lineTo(point2.x, point2.y); - browserCanvasContext.lineTo(point3.x, point3.y); - browserCanvasContext.lineTo(point1.x, point1.y); - - browserCanvasContext.closePath(); - - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.GREEN + ', ' + opacity + ')'; - - if (isCurrentRecord === false) { - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.PATINATED_TURQUOISE + ', ' + opacity + ')'; - } else { - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', ' + opacity + ')'; /* highlight the current record */ - } - - browserCanvasContext.fill(); - - browserCanvasContext.setLineDash([0, 0]) - browserCanvasContext.lineWidth = 0.25; - browserCanvasContext.stroke(); - } - - /* Draw a red inverted triangle on sell */ - if (record.lastSellRate > 0) { - opacity = '1'; - - let normalSize = 5 - let extraSize = 0 - if (isCurrentRecord) { extraSize = 5 } - - let point1 = { - x: record.date, - y: record.lastSellRate - }; - - let point2 = { - x: record.date + timeFrame / 7 * (normalSize + extraSize), - y: record.lastSellRate - }; - - let point3 = { - x: record.date - timeFrame / 7 * (normalSize + extraSize), - y: record.lastSellRate - }; - - point1 = coordinateSystem.transformThisPoint(point1); - point1 = transformThisPoint(point1, thisObject.container); - point1 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point1); - point1 = thisObject.fitFunction(point1); - - point2 = coordinateSystem.transformThisPoint(point2); - point2 = transformThisPoint(point2, thisObject.container); - point2 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point2); - point2 = thisObject.fitFunction(point2); - - point3 = coordinateSystem.transformThisPoint(point3); - point3 = transformThisPoint(point3, thisObject.container); - point3 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point3); - point3 = thisObject.fitFunction(point3); - - let diff = point2.x - point3.x; - point2.y = point2.y - diff; - point3.y = point3.y - diff; - - currentRecord.timeFrame = diff - - point2 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point2); - point3 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point3); - point2 = thisObject.fitFunction(point2); - point3 = thisObject.fitFunction(point3); - - browserCanvasContext.beginPath(); - - browserCanvasContext.moveTo(point1.x, point1.y); - browserCanvasContext.lineTo(point2.x, point2.y); - browserCanvasContext.lineTo(point3.x, point3.y); - browserCanvasContext.lineTo(point1.x, point1.y); - - browserCanvasContext.closePath(); - - if (isCurrentRecord === false) { - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.WHITE + ', ' + opacity + ')'; - } else { - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', ' + opacity + ')'; /* highlight the current record */ - } - - browserCanvasContext.fill(); - - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RED + ', ' + opacity + ')'; - - browserCanvasContext.setLineDash([0, 0]) - browserCanvasContext.lineWidth = 0.25; - browserCanvasContext.stroke(); - } - - /* Draw a green triangle on buy */ - if (record.lastBuyRate > 0) { - - opacity = '1'; - - let normalSize = 5 - let extraSize = 0 - if (isCurrentRecord) { extraSize = 5 } - - let point1 = { - x: record.date, - y: record.lastBuyRate - }; - - let point2 = { - x: record.date + timeFrame / 7 * (normalSize + extraSize), - y: record.lastBuyRate - }; - - let point3 = { - x: record.date - timeFrame / 7 * (normalSize + extraSize), - y: record.lastBuyRate - }; - - point1 = coordinateSystem.transformThisPoint(point1); - point1 = transformThisPoint(point1, thisObject.container); - point1 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point1); - point1 = thisObject.fitFunction(point1); - - point2 = coordinateSystem.transformThisPoint(point2); - point2 = transformThisPoint(point2, thisObject.container); - point2 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point2); - point2 = thisObject.fitFunction(point2); - - point3 = coordinateSystem.transformThisPoint(point3); - point3 = transformThisPoint(point3, thisObject.container); - point3 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point3); - point3 = thisObject.fitFunction(point3); - - let diff = point2.x - point3.x; - point2.y = point2.y + diff; - point3.y = point3.y + diff; - - currentRecord.timeFrame = diff - - point2 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point2); - point3 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point3); - point2 = thisObject.fitFunction(point2); - point3 = thisObject.fitFunction(point3); - - browserCanvasContext.beginPath(); - - browserCanvasContext.moveTo(point1.x, point1.y); - browserCanvasContext.lineTo(point2.x, point2.y); - browserCanvasContext.lineTo(point3.x, point3.y); - browserCanvasContext.lineTo(point1.x, point1.y); - - browserCanvasContext.closePath(); - - if (isCurrentRecord === false) { - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.WHITE + ', ' + opacity + ')'; - } else { - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', ' + opacity + ')'; /* highlight the current record */ - } - - browserCanvasContext.fill(); - - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.PATINATED_TURQUOISE + ', ' + opacity + ')'; - - browserCanvasContext.setLineDash([0, 0]) - browserCanvasContext.lineWidth = 0.25; - browserCanvasContext.stroke(); - } - - /* Send the current record to the panel */ - - if (userPositionDate >= record.date - 30000 && userPositionDate < record.date + 30000) { - thisObject.container.eventHandler.raiseEvent("Current Record Changed", currentRecord); - } - - /* Circles */ - - let radius = 2; - currentRadius = 10 - - /* Outer Circle */ - - if (isCurrentRecord === true) { - - browserCanvasContext.beginPath(); - - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RUSTED_RED + ', ' + opacity + ')'; - - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', ' + opacity + ')'; /* highlight the current record */ - - browserCanvasContext.arc(point.x, point.y, currentRadius, 0, Math.PI * 2, true); - browserCanvasContext.closePath(); - - if (point.x < canvas.chartingSpace.viewport.visibleArea.topLeft.x + 50 || point.x > canvas.chartingSpace.viewport.visibleArea.bottomRight.x - 50) {/*we leave this history without fill. */ } else { - browserCanvasContext.fill(); - } - - browserCanvasContext.setLineDash([0, 0]) - browserCanvasContext.lineWidth = 0.25; - browserCanvasContext.stroke(); - } - - /* Inner Circle */ - - browserCanvasContext.beginPath(); - - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RUSTED_RED + ', ' + opacity + ')'; - - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.GOLDEN_ORANGE + ', ' + opacity + ')'; - - browserCanvasContext.arc(point.x, point.y, radius, 0, Math.PI * 2, true); - browserCanvasContext.closePath(); - - if (point.x < canvas.chartingSpace.viewport.visibleArea.topLeft.x + 50 || point.x > canvas.chartingSpace.viewport.visibleArea.bottomRight.x - 50) {/*we leave this history without fill. */ } else { - browserCanvasContext.fill(); - } - - browserCanvasContext.setLineDash([0, 0]) - browserCanvasContext.lineWidth = 0.25; - browserCanvasContext.stroke(); - - } - - /* Draw the lines connecting plot elements. */ - let lines = plotLines[j]; - - for (let i = 0; i < lines.length; i++) { - - let line = lines[i]; - - opacity = '1'; - - let point1 = { - x: line.x1, - y: line.y1 - }; - - let point2 = { - x: line.x2, - y: line.y2 - }; - - point1 = coordinateSystem.transformThisPoint(point1); - point1 = transformThisPoint(point1, thisObject.container); - point1 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point1); - point1 = thisObject.fitFunction(point1); - - point2 = coordinateSystem.transformThisPoint(point2); - point2 = transformThisPoint(point2, thisObject.container); - point2 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point2); - point2 = thisObject.fitFunction(point2); - - browserCanvasContext.beginPath(); - - browserCanvasContext.moveTo(point1.x, point1.y); - browserCanvasContext.lineTo(point2.x, point2.y); - - browserCanvasContext.closePath(); - - if (line.type === "sell") { - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RED + ', ' + opacity + ')'; - } else { - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.PATINATED_TURQUOISE + ', ' + opacity + ')'; - } - - browserCanvasContext.setLineDash([4, 1]) - browserCanvasContext.lineWidth = 0.25; - browserCanvasContext.stroke(); - } - - - } - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] ' + MODULE_NAME + ' -> plotChart -> err = " + err.stack); } - } - } -} - - - - - - - - - diff --git a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/SimulationExecutionPanel.js b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/SimulationExecutionPanel.js deleted file mode 100644 index 48410e698..000000000 --- a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/SimulationExecutionPanel.js +++ /dev/null @@ -1,465 +0,0 @@ - -function newTradingEnginesPlottersTradingSimulationSimulationExecutionSimulationExecutionPanel() { - - - let thisObject = { - fitFunction: undefined, - container: undefined, - isVisible: true, - onRecordChange: onRecordChange, - draw: draw, - getContainer: getContainer, - initialize: initialize, - finalize: finalize - }; - - let container = newContainer(); - container.initialize(); - thisObject.container = container; - - container.frame.containerName = "Trading Execution"; - - let currentRecord; - let upDownButton - - return thisObject; - - function finalize() { - thisObject.container.finalize() - thisObject.container = undefined - thisObject.fitFunction = undefined - thisObject.isVisible = undefined - - currentRecord = undefined - upDownButton.finalize() - upDownButton = undefined - } - - function initialize() { - - thisObject.container.frame.width = UI_PANEL.WIDTH.NORMAL; - thisObject.container.frame.height = UI_PANEL.HEIGHT.NORMAL * 2.5; - - thisObject.container.frame.position.x = canvas.chartingSpace.viewport.visibleArea.topLeft.x + thisObject.container.frame.width * 4; - thisObject.container.frame.position.y = canvas.chartingSpace.viewport.visibleArea.topRight.y; - - upDownButton = newUpDownButton() - upDownButton.parentContainer = thisObject.container - upDownButton.container.frame.parentFrame = thisObject.container.frame - upDownButton.fitFunction = thisObject.fitFunction - upDownButton.initialize() - } - - function getContainer(point) { - if (thisObject.isVisible !== true) { return } - let container; - - container = upDownButton.getContainer(point) - if (container !== undefined) { return container } - - if (thisObject.container.frame.isThisPointHere(point, true) === true) { - - let checkPoint = { - x: point.x, - y: point.y - } - - checkPoint = thisObject.fitFunction(checkPoint) - - if (point.x === checkPoint.x && point.y === checkPoint.y) { - return thisObject.container; - } - } - } - - - function onRecordChange(lastCurrentCandle) { - - currentRecord = lastCurrentCandle; - - } - - - function draw() { - if (thisObject.isVisible !== true) { return } - thisObject.container.frame.draw(false, false, true, thisObject.fitFunction); - - plot(); - - upDownButton.draw() - - } - - - function plot() { - - if (currentRecord === undefined) { return; } - - const frameBodyHeight = thisObject.container.frame.getBodyHeight(); - const frameTitleHeight = thisObject.container.frame.height - frameBodyHeight; - - const X_AXIS = thisObject.container.frame.width / 2; - const Y_AXIS = frameTitleHeight + frameBodyHeight / 2; - - record = currentRecord - - point = { - x: X_AXIS, - y: Y_AXIS - }; - - point = thisObject.container.frame.frameThisPoint(point); - point = thisObject.fitFunction(point); - - let isCurrentRecord = true; - - let radius = 2; - let currentRadius = 10 - let opacity = '1'; - - /* Draw a red inverted triangle on exec sell */ - if (record.sellExecRate > 0) { - - opacity = '1'; - - let point1 = { - x: X_AXIS, - y: Y_AXIS - }; - - let point2 = { - x: X_AXIS + record.timeFrame / 4, - y: Y_AXIS - }; - - let point3 = { - x: X_AXIS - record.timeFrame / 4, - y: Y_AXIS - }; - - point1 = thisObject.container.frame.frameThisPoint(point1); - point1 = thisObject.fitFunction(point1); - - point2 = thisObject.container.frame.frameThisPoint(point2); - point2 = thisObject.fitFunction(point2); - - point3 = thisObject.container.frame.frameThisPoint(point3); - point3 = thisObject.fitFunction(point3); - - let diff = point2.x - point3.x; - point2.y = point2.y - diff; - point3.y = point3.y - diff; - - point2 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point2); - point3 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point3); - - browserCanvasContext.beginPath(); - - browserCanvasContext.moveTo(point1.x, point1.y); - browserCanvasContext.lineTo(point2.x, point2.y); - browserCanvasContext.lineTo(point3.x, point3.y); - browserCanvasContext.lineTo(point1.x, point1.y); - - browserCanvasContext.closePath(); - - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.RUSTED_RED + ', ' + opacity + ')'; - - if (isCurrentRecord === false) { - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RED + ', ' + opacity + ')'; - } else { - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', ' + opacity + ')'; /* highlight the current record */ - } - - browserCanvasContext.fill(); - - browserCanvasContext.setLineDash([0, 0]) - browserCanvasContext.stroke(); - - } - - /* Draw a green triangle on exec buy */ - if (record.buyExecRate > 0) { - - opacity = '1'; - - let point1 = { - x: X_AXIS, - y: Y_AXIS - }; - - let point2 = { - x: X_AXIS + record.timeFrame / 4, - y: Y_AXIS - }; - - let point3 = { - x: X_AXIS - record.timeFrame / 4, - y: Y_AXIS - }; - - point1 = thisObject.container.frame.frameThisPoint(point1); - point1 = thisObject.fitFunction(point1); - - point2 = thisObject.container.frame.frameThisPoint(point2); - point2 = thisObject.fitFunction(point2); - - point3 = thisObject.container.frame.frameThisPoint(point3); - point3 = thisObject.fitFunction(point3); - - let diff = point2.x - point3.x; - point2.y = point2.y + diff; - point3.y = point3.y + diff; - - point2 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point2); - point3 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point3); - - browserCanvasContext.beginPath(); - - browserCanvasContext.moveTo(point1.x, point1.y); - browserCanvasContext.lineTo(point2.x, point2.y); - browserCanvasContext.lineTo(point3.x, point3.y); - browserCanvasContext.lineTo(point1.x, point1.y); - - browserCanvasContext.closePath(); - - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.GREEN + ', ' + opacity + ')'; - - if (isCurrentRecord === false) { - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.PATINATED_TURQUOISE + ', ' + opacity + ')'; - } else { - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', ' + opacity + ')'; /* highlight the current record */ - } - - browserCanvasContext.fill(); - - browserCanvasContext.setLineDash([0, 0]) - browserCanvasContext.stroke(); - } - - /* Draw a red inverted triangle on sell */ - if (record.lastSellRate > 0) { - opacity = '1'; - - let point1 = { - x: X_AXIS, - y: Y_AXIS - }; - - let point2 = { - x: X_AXIS + record.timeFrame / 4, - y: Y_AXIS - }; - - let point3 = { - x: X_AXIS - record.timeFrame / 4, - y: Y_AXIS - }; - - point1 = thisObject.container.frame.frameThisPoint(point1); - point1 = thisObject.fitFunction(point1); - - point2 = thisObject.container.frame.frameThisPoint(point2); - point2 = thisObject.fitFunction(point2); - - point3 = thisObject.container.frame.frameThisPoint(point3); - point3 = thisObject.fitFunction(point3); - - let diff = point2.x - point3.x; - point2.y = point2.y - diff; - point3.y = point3.y - diff; - - point2 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point2); - point3 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point3); - - browserCanvasContext.beginPath(); - - browserCanvasContext.moveTo(point1.x, point1.y); - browserCanvasContext.lineTo(point2.x, point2.y); - browserCanvasContext.lineTo(point3.x, point3.y); - browserCanvasContext.lineTo(point1.x, point1.y); - - browserCanvasContext.closePath(); - - if (isCurrentRecord === false) { - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.WHITE + ', ' + opacity + ')'; - } else { - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', ' + opacity + ')'; /* highlight the current record */ - } - - browserCanvasContext.fill(); - - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RED + ', ' + opacity + ')'; - browserCanvasContext.setLineDash([0, 0]) - browserCanvasContext.stroke(); - } - - /* Draw a green triangle on buy */ - if (record.lastBuyRate > 0) { - - opacity = '1'; - - let point1 = { - x: X_AXIS, - y: Y_AXIS - }; - - let point2 = { - x: X_AXIS + record.timeFrame / 4, - y: Y_AXIS - }; - - let point3 = { - x: X_AXIS - record.timeFrame / 4, - y: Y_AXIS - }; - - point1 = thisObject.container.frame.frameThisPoint(point1); - point1 = thisObject.fitFunction(point1); - - point2 = thisObject.container.frame.frameThisPoint(point2); - point2 = thisObject.fitFunction(point2); - - point3 = thisObject.container.frame.frameThisPoint(point3); - point3 = thisObject.fitFunction(point3); - - let diff = point2.x - point3.x; - point2.y = point2.y + diff; - point3.y = point3.y + diff; - - point2 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point2); - point3 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point3); - - browserCanvasContext.beginPath(); - - browserCanvasContext.moveTo(point1.x, point1.y); - browserCanvasContext.lineTo(point2.x, point2.y); - browserCanvasContext.lineTo(point3.x, point3.y); - browserCanvasContext.lineTo(point1.x, point1.y); - - browserCanvasContext.closePath(); - - if (isCurrentRecord === false) { - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.WHITE + ', ' + opacity + ')'; - } else { - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', ' + opacity + ')'; /* highlight the current record */ - } - - browserCanvasContext.fill(); - - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.PATINATED_TURQUOISE + ', ' + opacity + ')'; - browserCanvasContext.setLineDash([0, 0]) - browserCanvasContext.stroke(); - } - - browserCanvasContext.lineWidth = 0.25; - - /* Outer Circle */ - - if (isCurrentRecord === true) { - - browserCanvasContext.beginPath(); - - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RUSTED_RED + ', ' + opacity + ')'; - - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', ' + opacity + ')'; /* highlight the current record */ - - browserCanvasContext.arc(point.x, point.y, currentRadius, 0, Math.PI * 2, true); - browserCanvasContext.closePath(); - - if (point.x < canvas.chartingSpace.viewport.visibleArea.topLeft.x + 50 || point.x > canvas.chartingSpace.viewport.visibleArea.bottomRight.x - 50) {/*we leave this history without fill. */ } else { - browserCanvasContext.fill(); - } - browserCanvasContext.setLineDash([0, 0]) - browserCanvasContext.stroke(); - } - - /* Inner Circle */ - - browserCanvasContext.beginPath(); - - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RUSTED_RED + ', ' + opacity + ')'; - - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.GOLDEN_ORANGE + ', ' + opacity + ')'; - - browserCanvasContext.arc(point.x, point.y, radius, 0, Math.PI * 2, true); - browserCanvasContext.closePath(); - - if (point.x < canvas.chartingSpace.viewport.visibleArea.topLeft.x + 50 || point.x > canvas.chartingSpace.viewport.visibleArea.bottomRight.x - 50) {/*we leave this history without fill. */ } else { - browserCanvasContext.fill(); - } - browserCanvasContext.setLineDash([0, 0]) - browserCanvasContext.stroke(); - - /* put the labels */ - - browserCanvasContext.beginPath(); - - let y; - let recordDate = new Date(currentRecord.datetime) - - printLabel('Market Rate', X_AXIS, frameTitleHeight + frameBodyHeight * 0.05 / 2, '1'); - printLabel(currentRecord.marketRate, X_AXIS, frameTitleHeight + frameBodyHeight * 0.10 / 2, '0.50'); - - printLabel('Sell Rate', X_AXIS, frameTitleHeight + frameBodyHeight * 0.15 / 2, '1'); - printLabel(currentRecord.lastSellRate, X_AXIS, frameTitleHeight + frameBodyHeight * 0.20 / 2, '0.50'); - - printLabel('Sell Executed Rate', X_AXIS, frameTitleHeight + frameBodyHeight * 0.25 / 2, '1'); - printLabel(currentRecord.sellExecRate, X_AXIS, frameTitleHeight + frameBodyHeight * 0.30 / 2, '0.50'); - - printLabel('Buy Rate', X_AXIS, frameTitleHeight + frameBodyHeight * 0.35 / 2, '1'); - printLabel(currentRecord.lastBuyRate, X_AXIS, frameTitleHeight + frameBodyHeight * 0.40 / 2, '0.40'); - - printLabel('Buy Executed Rate', X_AXIS, frameTitleHeight + frameBodyHeight * 0.45 / 2, '1'); - printLabel(currentRecord.buyExecRate, X_AXIS, frameTitleHeight + frameBodyHeight * 0.50 / 2, '0.50'); - - printLabel('ROI Asset A', X_AXIS, frameTitleHeight + frameBodyHeight * (1 - 0.25 / 2), '1'); - printLabel((currentRecord.combinedProfitsB).toFixed(2) + '%', X_AXIS, frameTitleHeight + frameBodyHeight * (1 - 0.30 / 2), '0.50'); - - printLabel('ROI Asset B', X_AXIS, frameTitleHeight + frameBodyHeight * (1 - 0.15 / 2), '1'); - printLabel((currentRecord.combinedProfitsA).toFixed(2) + '%', X_AXIS, frameTitleHeight + frameBodyHeight * (1 - 0.20 / 2), '0.50'); - - printLabel('Datetime', X_AXIS, frameTitleHeight + frameBodyHeight * (1 - 0.05 / 2), '1'); - printLabel(recordDate.toUTCString(), X_AXIS, frameTitleHeight + frameBodyHeight * (1 - 0.1 / 2), '0.50'); - - - function printLabel(labelToPrint, x, y, opacity) { - - let labelPoint; - let fontSize = 10; - - browserCanvasContext.font = fontSize + 'px ' + UI_FONT.SECONDARY + ' Saira'; - - let label = '' + labelToPrint; - if (isNaN(label) === false) { - label = Number(label).toLocaleString(); - } - let xOffset = label.length / 2 * fontSize * FONT_ASPECT_RATIO; - - labelPoint = { - x: x - xOffset, - y: y - }; - - labelPoint = thisObject.container.frame.frameThisPoint(labelPoint); - labelPoint = thisObject.fitFunction(labelPoint) - - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.DARK + ', ' + opacity + ')'; - browserCanvasContext.fillText(label, labelPoint.x, labelPoint.y); - - } - - browserCanvasContext.closePath(); - browserCanvasContext.fill(); - - } - - -} - - - - - - - - diff --git a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/Strategies.js b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/Strategies.js deleted file mode 100644 index 2e82c2267..000000000 --- a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/Strategies.js +++ /dev/null @@ -1,718 +0,0 @@ -function newTradingEnginesPlottersTradingSimulationStrategies() { - - const MODULE_NAME = "Strategies Plotter"; - const INFO_LOG = false; - const ERROR_LOG = true; - const INTENSIVE_LOG = false; - const logger = newWebDebugLog(); - logger.fileName = MODULE_NAME; - - let thisObject = { - - // Main functions and properties. - - initialize: initialize, - finalize: finalize, - container: undefined, - fitFunction: undefined, - getContainer: getContainer, - setTimeFrame: setTimeFrame, - setDatetime: setDatetime, - setCoordinateSystem: setCoordinateSystem, - draw: draw, - - /* Events declared outside the plotter. */ - - onDailyFileLoaded: onDailyFileLoaded, - - // Secondary functions and properties. - - currentRecord: undefined - }; - - /* this is part of the module template */ - - let container = newContainer(); // Do not touch this 3 lines, they are just needed. - container.initialize(); - thisObject.container = container; - - let coordinateSystem - - let timeFrame; // This will hold the current Time Frame the user is at. - let datetime; // This will hold the current Datetime the user is at. - - let marketFile; // This is the current Market File being plotted. - let fileCursor; // This is the current File Cursor being used to retrieve Daily Files. - - let marketFiles; // This object will provide the different Market Files at different Time Frames. - let dailyFiles; // This object will provide the different File Cursors at different Time Frames. - - /* these are module specific variables: */ - - let strategies = []; - let strategyImages = []; - - let onMouseOverEventSuscriptionId - let zoomChangedEventSubscriptionId - let offsetChangedEventSubscriptionId - let dragFinishedEventSubscriptionId - let dimmensionsChangedEventSubscriptionId - let marketFilesUpdatedEventSubscriptionId - let dailyFilesUpdatedEventSubscriptionId - let scaleChangedEventSubscriptionId - - let userPositionDate - return thisObject; - - function finalize() { - try { - - if (INFO_LOG === true) { logger.write("[INFO] finalize -> Entering function."); } - - /* Stop listening to the necesary events. */ - thisObject.container.eventHandler.stopListening(onMouseOverEventSuscriptionId) - canvas.chartingSpace.viewport.eventHandler.stopListening(zoomChangedEventSubscriptionId); - canvas.chartingSpace.viewport.eventHandler.stopListening(offsetChangedEventSubscriptionId); - canvas.eventHandler.stopListening(dragFinishedEventSubscriptionId); - thisObject.container.eventHandler.stopListening(dimmensionsChangedEventSubscriptionId) - marketFiles.eventHandler.stopListening(marketFilesUpdatedEventSubscriptionId); - dailyFiles.eventHandler.stopListening(dailyFilesUpdatedEventSubscriptionId); - - /* Destroyd References */ - - marketFiles = undefined; - dailyFiles = undefined; - - datetime = undefined; - timeFrame = undefined; - - marketFile = undefined; - fileCursor = undefined; - - strategyImages = undefined; - - thisObject.fitFunction = undefined - - finalizeCoordinateSystem() - coordinateSystem = undefined - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] finalize -> err = " + err.stack); } - } - } - - function initialize(pStorage, pDatetime, pTimeFrame, pCoordinateSystem, callBackFunction) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> Entering function."); } - - /* Store the information received. */ - - marketFiles = pStorage.marketFiles[0]; - dailyFiles = pStorage.dailyFiles[0]; - - datetime = pDatetime; - timeFrame = pTimeFrame; - coordinateSystem = pCoordinateSystem - initializeCoordinateSystem() - - /* We need a Market File in order to calculate the Y scale, since this scale depends on actual data. */ - - marketFile = marketFiles.getFile(ONE_DAY_IN_MILISECONDS); // This file is the one processed faster. - - /* Now we set the right files according to current Period. */ - - marketFile = marketFiles.getFile(pTimeFrame); - fileCursor = dailyFiles.getFileCursor(pTimeFrame); - - /* Listen to the necesary events. */ - - zoomChangedEventSubscriptionId = canvas.chartingSpace.viewport.eventHandler.listenToEvent("Zoom Changed", onViewportZoomChanged); - offsetChangedEventSubscriptionId = canvas.chartingSpace.viewport.eventHandler.listenToEvent("Position Changed", onViewportPositionChanged); - dragFinishedEventSubscriptionId = canvas.eventHandler.listenToEvent("Drag Finished", onDragFinished); - marketFilesUpdatedEventSubscriptionId = marketFiles.eventHandler.listenToEvent("Files Updated", onMarketFilesUpdated); - dailyFilesUpdatedEventSubscriptionId = dailyFiles.eventHandler.listenToEvent("Files Updated", onDailyFilesUpdated); - onMouseOverEventSuscriptionId = thisObject.container.eventHandler.listenToEvent('onMouseOver', onMouseOver) - - /* Get ready for plotting. */ - - recalculate(); - - /* Ready for when dimmension changes. */ - - dimmensionsChangedEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('Dimmensions Changed', function () { - recalculate(); - }) - - for (let i = 1; i < 15; i++) { - let strategyImage = canvas.designSpace.iconByUiObjectType.get('Strategy'); - strategyImages.push(strategyImage); - } - - callBackFunction(); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] initialize -> err = " + err.stack); } - } - } - - function initializeCoordinateSystem() { - scaleChangedEventSubscriptionId = coordinateSystem.eventHandler.listenToEvent('Scale Changed', onScaleChanged) - } - - function finalizeCoordinateSystem() { - coordinateSystem.eventHandler.stopListening(scaleChangedEventSubscriptionId) - } - - function onScaleChanged() { - recalculate(); - } - - function onMouseOver(event) { - let userPosition = getDateFromPointAtBrowserCanvas(event, thisObject.container, coordinateSystem) - userPositionDate = userPosition.valueOf() - } - - function getContainer(point) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] getContainer -> Entering function."); } - - let container; - - /* First we check if this point is inside this space. */ - - if (this.container.frame.isThisPointHere(point) === true) { - - return this.container; - - } else { - - /* This point does not belong to this space. */ - - return undefined; - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] getContainer -> err = " + err.stack); } - } - } - - function onMarketFilesUpdated() { - try { - let newMarketFile = marketFiles.getFile(timeFrame); - if (newMarketFile !== undefined) { - marketFile = newMarketFile; - recalculate(); - } - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] onMarketFilesUpdated -> err = " + err.stack); } - } - } - - function onDailyFilesUpdated() { - try { - let newFileCursor = dailyFiles.getFileCursor(timeFrame); - if (newFileCursor !== undefined) { - fileCursor = newFileCursor; - recalculate(); - } - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] onDailyFilesUpdated -> err = " + err.stack); } - } - } - - function setTimeFrame(pTimeFrame) { - - try { - - if (timeFrame !== pTimeFrame) { - - timeFrame = pTimeFrame; - - if (timeFrame >= _1_HOUR_IN_MILISECONDS) { - - marketFile = marketFiles.getFile(pTimeFrame); - - recalculate(); - - } else { - - let newFileCursor = dailyFiles.getFileCursor(pTimeFrame); - - fileCursor = newFileCursor; // In this case, we explicitly want that if there is no valid cursor, we invalidate the data and show nothing. - recalculate(); - - } - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] setTimeFrame -> err = " + err.stack); } - } - } - - function setDatetime(pDatetime) { - datetime = pDatetime; - } - - function setCoordinateSystem(pCoordinateSystem) { - finalizeCoordinateSystem() - coordinateSystem = pCoordinateSystem - initializeCoordinateSystem() - } - - function onDailyFileLoaded(event) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] onDailyFileLoaded -> Entering function."); } - - if (event.currentValue === event.totalValue) { - - /* This happens only when all of the files in the cursor have been loaded. */ - - recalculate(); - - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] onDailyFileLoaded -> err = " + err.stack); } - } - } - - function draw() { - - try { - - if (INTENSIVE_LOG === true) { logger.write("[INFO] draw -> Entering function."); } - - this.container.frame.draw(); - - plotChart(); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] draw -> err = " + err.stack); } - } - } - - function recalculate() { - - try { - - strategies = [] - - if (timeFrame >= _1_HOUR_IN_MILISECONDS) { - - recalculateUsingMarketFiles(); - - } else { - - recalculateUsingDailyFiles(); - - } - - thisObject.container.eventHandler.raiseEvent("Strategies Changed", strategies); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] recalculate -> err = " + err.stack); } - } - } - - function recalculateUsingDailyFiles() { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] recalculateUsingDailyFiles -> Entering function."); } - - if (fileCursor === undefined) { - strategies = []; - return; - } // We need to wait - - if (fileCursor.files.size === 0) { - strategies = []; - return; - } // We need to wait until there are files in the cursor - - let daysOnSides = getSideDays(timeFrame); - - let leftDate = getDateFromPointAtBrowserCanvas(canvas.chartingSpace.viewport.visibleArea.topLeft, thisObject.container, coordinateSystem); - let rightDate = getDateFromPointAtBrowserCanvas(canvas.chartingSpace.viewport.visibleArea.topRight, thisObject.container, coordinateSystem); - - let dateDiff = rightDate.valueOf() - leftDate.valueOf(); - - let farLeftDate = new Date(leftDate.valueOf() - dateDiff * 1.5); - let farRightDate = new Date(rightDate.valueOf() + dateDiff * 1.5); - - let currentDate = new Date(farLeftDate.valueOf()); - - strategies = []; - - - - while (currentDate.valueOf() <= farRightDate.valueOf() + ONE_DAY_IN_MILISECONDS) { - - let stringDate = currentDate.getFullYear() + '-' + pad(currentDate.getMonth() + 1, 2) + '-' + pad(currentDate.getDate(), 2); - - let dailyFile = fileCursor.files.get(stringDate); - - if (dailyFile !== undefined) { - - for (let i = 0; i < dailyFile.length; i++) { - - let record = { - begin: undefined, - end: undefined, - status: undefined, - number: undefined, - beginRate: undefined, - endRate: undefined - }; - - record.begin = dailyFile[i][0]; - record.end = dailyFile[i][1]; - record.status = dailyFile[i][2]; - record.number = dailyFile[i][3]; - record.beginRate = dailyFile[i][4]; - record.endRate = dailyFile[i][5]; - record.triggerOnSituation = dailyFile[i][6]; - record.name = dailyFile[i][7]; - - if ( - (record.begin >= farLeftDate.valueOf() && record.end <= farRightDate.valueOf()) && - (record.begin >= coordinateSystem.min.x && record.end <= coordinateSystem.max.x) - ) { - - strategies.push(record); - - if (datetime.valueOf() >= record.begin && datetime.valueOf() <= record.end) { - - thisObject.currentRecord = record; - thisObject.container.eventHandler.raiseEvent("Current Strategy Changed", thisObject.currentRecord); - - } - } - } - } - - currentDate = new Date(currentDate.valueOf() + ONE_DAY_IN_MILISECONDS); - } - - /* Lests check if all the visible screen is going to be covered by strategies. */ - - let lowerEnd = leftDate.valueOf(); - let upperEnd = rightDate.valueOf(); - - setTimeout(recalculate, 2000); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] recalculateUsingDailyFiles -> err = " + err.stack); } - } - } - - function recalculateUsingMarketFiles() { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] recalculateUsingMarketFiles -> Entering function."); } - - if (marketFile === undefined) { return; } // Initialization not complete yet. - - let daysOnSides = getSideDays(timeFrame); - - let leftDate = getDateFromPointAtBrowserCanvas(canvas.chartingSpace.viewport.visibleArea.topLeft, thisObject.container, coordinateSystem); - let rightDate = getDateFromPointAtBrowserCanvas(canvas.chartingSpace.viewport.visibleArea.topRight, thisObject.container, coordinateSystem); - - let dateDiff = rightDate.valueOf() - leftDate.valueOf(); - - leftDate = new Date(leftDate.valueOf() - dateDiff * 1.5); - rightDate = new Date(rightDate.valueOf() + dateDiff * 1.5); - - strategies = []; - - for (let i = 0; i < marketFile.length; i++) { - - let record = { - begin: undefined, - end: undefined, - status: undefined, - number: undefined, - beginRate: undefined, - endRate: undefined - }; - - record.begin = marketFile[i][0]; - record.end = marketFile[i][1]; - record.status = marketFile[i][2]; - record.number = marketFile[i][3]; - record.beginRate = marketFile[i][4]; - record.endRate = marketFile[i][5]; - record.triggerOnSituation = marketFile[i][6]; - record.name = marketFile[i][7]; - - if (record.begin >= leftDate.valueOf() && record.end <= rightDate.valueOf()) { - - strategies.push(record); - - if ( - (record.begin >= leftDate.valueOf() && record.end <= rightDate.valueOf()) && - (record.begin >= coordinateSystem.min.x && record.end <= coordinateSystem.max.x) - ) { - - thisObject.currentRecord = record; - thisObject.container.eventHandler.raiseEvent("Current Strategy Changed", thisObject.currentRecord); - - } - } - } - - //console.log("Olivia > recalculateUsingMarketFiles > total strategies generated : " + strategies.length); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] recalculateUsingMarketFiles -> err = " + err.stack); } - } - } - - function plotChart() { - - try { - - thisObject.container.eventHandler.raiseEvent("Current Strategy Record Changed", undefined); - - let record; - - for (let i = 0; i < strategies.length; i++) { - - record = strategies[i]; - - let recordPoint1 = { - x: record.begin, - y: record.beginRate - }; - - let recordPoint2 = { - x: record.end, - y: record.endRate - }; - - let recordPoint3 = { - x: record.begin, - y: record.beginRate - }; - - let recordPoint4 = { - x: record.end, - y: record.endRate - }; - - recordPoint1 = coordinateSystem.transformThisPoint(recordPoint1); - recordPoint2 = coordinateSystem.transformThisPoint(recordPoint2); - recordPoint3 = coordinateSystem.transformThisPoint(recordPoint3); - recordPoint4 = coordinateSystem.transformThisPoint(recordPoint4); - - recordPoint1 = transformThisPoint(recordPoint1, thisObject.container); - recordPoint2 = transformThisPoint(recordPoint2, thisObject.container); - recordPoint3 = transformThisPoint(recordPoint3, thisObject.container); - recordPoint4 = transformThisPoint(recordPoint4, thisObject.container); - - if (recordPoint2.x < canvas.chartingSpace.viewport.visibleArea.bottomLeft.x || recordPoint1.x > canvas.chartingSpace.viewport.visibleArea.bottomRight.x) { - continue; - } - - recordPoint3.y = recordPoint1.y + 2000; - recordPoint4.y = recordPoint1.y + 2000; - - recordPoint1 = canvas.chartingSpace.viewport.fitIntoVisibleArea(recordPoint1); - recordPoint2 = canvas.chartingSpace.viewport.fitIntoVisibleArea(recordPoint2); - recordPoint3 = canvas.chartingSpace.viewport.fitIntoVisibleArea(recordPoint3); - recordPoint4 = canvas.chartingSpace.viewport.fitIntoVisibleArea(recordPoint4); - - recordPoint1 = thisObject.fitFunction(recordPoint1, undefined, 30); - recordPoint2 = thisObject.fitFunction(recordPoint2, undefined, 30); - recordPoint3 = thisObject.fitFunction(recordPoint3, undefined, 30); - recordPoint4 = thisObject.fitFunction(recordPoint4, undefined, 30); - - let imageSize = 20; - let imageToDraw = strategyImages[record.number]; - - - /* Draw the line that represents the duration of closed strategy */ - - browserCanvasContext.beginPath(); - - browserCanvasContext.moveTo(recordPoint3.x + imageSize / 2, recordPoint3.y); - browserCanvasContext.lineTo(recordPoint4.x - imageSize / 2, recordPoint4.y); - - browserCanvasContext.closePath(); - - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.MANGANESE_PURPLE + ', 1)'; - browserCanvasContext.lineWidth = 1 - - if (record.status === 1) { - browserCanvasContext.setLineDash([0, 0]) - } else { - browserCanvasContext.setLineDash([2, 4]) - } - browserCanvasContext.stroke() - - /* Draw the Area */ - /* - browserCanvasContext.beginPath(); - - browserCanvasContext.moveTo(recordPoint1.x, recordPoint2.y); - browserCanvasContext.lineTo(recordPoint3.x, recordPoint3.y); - browserCanvasContext.lineTo(recordPoint4.x, recordPoint4.y); - browserCanvasContext.lineTo(recordPoint2.x, recordPoint2.y); - - browserCanvasContext.closePath(); - - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.LIGHT_GREY + ', ' + 0.5 + ')'; - browserCanvasContext.fill(); - */ - - /* Situation Name */ - let digit = record.begin.toFixed(0).substring(7,8) - let positionY = recordPoint3.y - (recordPoint3.y - recordPoint1.y) / 2 + (Number(digit) * 10 - 50) - - if (canvas.chartingSpace.viewport.zoomLevel >= ZOOM_OUT_THRESHOLD_FOR_HIDDING_CHARTS_LABELS) { - if (record.name !== "New Strategy") { - printLabel(record.name, recordPoint1.x + 5, positionY - 15, '1', 12); - } - if (record.triggerOnSituation !== "New Situation") { - printLabel(record.triggerOnSituation, recordPoint1.x + 5, positionY, '1', 12); - } - } - - /* Draw the Sticks */ - - drawStick(recordPoint1, recordPoint3); - drawStick(recordPoint2, recordPoint4); - - if (imageToDraw.canDrawIcon === true) { - browserCanvasContext.drawImage(imageToDraw, recordPoint3.x - imageSize / 2, recordPoint3.y - imageSize / 2, imageSize, imageSize); - if (record.status === 1) { - browserCanvasContext.drawImage(imageToDraw, recordPoint4.x - imageSize / 2, recordPoint4.y - imageSize / 2, imageSize, imageSize); - } - } - - /* Send the current record to the panel */ - - if (userPositionDate >= record.begin && userPositionDate <= record.end) { - - let currentRecord = { - }; - thisObject.container.eventHandler.raiseEvent("Current Strategy Record Changed", currentRecord); - } - - function drawStick(point1, point2) { - - browserCanvasContext.beginPath(); - - browserCanvasContext.moveTo(point1.x, point1.y); - browserCanvasContext.lineTo(point2.x, point2.y); - - browserCanvasContext.closePath(); - - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.DARK + ', 0.25)'; - - if (userPositionDate >= record.begin && userPositionDate <= record.end) { - - /* highlight the current record */ - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', 1)'; // Current record accroding to time - } - - browserCanvasContext.setLineDash([4, 3]) - browserCanvasContext.lineWidth = 0.5 - browserCanvasContext.stroke() - browserCanvasContext.setLineDash([0, 0]) - - } - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] plotChart -> err = " + err.stack); } - } - } - - - function onViewportZoomChanged(event) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] onViewportZoomChanged -> Entering function."); } - - recalculate(); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] onViewportZoomChanged -> err = " + err.stack); } - } - } - - function onViewportPositionChanged(event) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] onViewportPositionChanged -> Entering function."); } - - if (event !== undefined) { - if (event.recalculate === true) { - recalculate() - return - } - } - if (Math.random() * 100 > 95) { - recalculate() - }; - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] onViewportPositionChanged -> err = " + err.stack); } - } - } - - function onDragFinished() { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] onDragFinished -> Entering function."); } - - recalculate(); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] onDragFinished -> err = " + err.stack); } - } - } -} - - - - - - - - - - - - - - - - - - - - diff --git a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/Trades.js b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/Trades.js deleted file mode 100644 index 9da7b37b6..000000000 --- a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/Trades.js +++ /dev/null @@ -1,690 +0,0 @@ -function newTradingEnginesPlottersTradingSimulationTrades() { - - const MODULE_NAME = "Trades Plotter"; - const INFO_LOG = false; - const ERROR_LOG = true; - const INTENSIVE_LOG = false; - const logger = newWebDebugLog(); - logger.fileName = MODULE_NAME; - - let thisObject = { - - // Main functions and properties. - - initialize: initialize, - finalize: finalize, - container: undefined, - fitFunction: undefined, - getContainer: getContainer, - setTimeFrame: setTimeFrame, - setDatetime: setDatetime, - setCoordinateSystem: setCoordinateSystem, - draw: draw, - - /* Events declared outside the plotter. */ - - onDailyFileLoaded: onDailyFileLoaded, - - // Secondary functions and properties. - - currentRecord: undefined - }; - - /* this is part of the module template */ - - let container = newContainer(); // Do not touch this 3 lines, they are just needed. - container.initialize(); - thisObject.container = container; - - let coordinateSystem - - let timeFrame; // This will hold the current Time Frame the user is at. - let datetime; // This will hold the current Datetime the user is at. - - let marketFile; // This is the current Market File being plotted. - let fileCursor; // This is the current File Cursor being used to retrieve Daily Files. - - let marketFiles; // This object will provide the different Market Files at different Time Frames. - let dailyFiles; // This object will provide the different File Cursors at different Time Frames. - - /* these are module specific variables: */ - - let trades = []; - let headers; - - let onMouseOverEventSuscriptionId - let zoomChangedEventSubscriptionId - let offsetChangedEventSubscriptionId - let dragFinishedEventSubscriptionId - let dimmensionsChangedEventSubscriptionId - let marketFilesUpdatedEventSubscriptionId - let dailyFilesUpdatedEventSubscriptionId - let scaleChangedEventSubscriptionId - - let userPositionDate - return thisObject; - - function finalize() { - try { - - if (INFO_LOG === true) { logger.write("[INFO] finalize -> Entering function."); } - - /* Stop listening to the necesary events. */ - thisObject.container.eventHandler.stopListening(onMouseOverEventSuscriptionId) - canvas.chartingSpace.viewport.eventHandler.stopListening(zoomChangedEventSubscriptionId); - canvas.chartingSpace.viewport.eventHandler.stopListening(offsetChangedEventSubscriptionId); - canvas.eventHandler.stopListening(dragFinishedEventSubscriptionId); - thisObject.container.eventHandler.stopListening(dimmensionsChangedEventSubscriptionId) - marketFiles.eventHandler.stopListening(marketFilesUpdatedEventSubscriptionId); - dailyFiles.eventHandler.stopListening(dailyFilesUpdatedEventSubscriptionId); - - /* Destroyd References */ - - marketFiles = undefined; - dailyFiles = undefined; - - datetime = undefined; - timeFrame = undefined; - - marketFile = undefined; - fileCursor = undefined; - - thisObject.fitFunction = undefined - - finalizeCoordinateSystem() - coordinateSystem = undefined - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] finalize -> err = " + err.stack); } - } - } - - function initialize(pStorage, pDatetime, pTimeFrame, pCoordinateSystem, callBackFunction) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> Entering function."); } - - /* Store the information received. */ - - marketFiles = pStorage.marketFiles[0]; - dailyFiles = pStorage.dailyFiles[0]; - - datetime = pDatetime; - timeFrame = pTimeFrame; - coordinateSystem = pCoordinateSystem - initializeCoordinateSystem() - - /* We need a Market File in order to calculate the Y scale, since this scale depends on actual data. */ - - marketFile = marketFiles.getFile(ONE_DAY_IN_MILISECONDS); // This file is the one processed faster. - - /* Now we set the right files according to current Period. */ - - marketFile = marketFiles.getFile(pTimeFrame); - fileCursor = dailyFiles.getFileCursor(pTimeFrame); - - /* Listen to the necesary events. */ - - zoomChangedEventSubscriptionId = canvas.chartingSpace.viewport.eventHandler.listenToEvent("Zoom Changed", onViewportZoomChanged); - offsetChangedEventSubscriptionId = canvas.chartingSpace.viewport.eventHandler.listenToEvent("Position Changed", onViewportPositionChanged); - dragFinishedEventSubscriptionId = canvas.eventHandler.listenToEvent("Drag Finished", onDragFinished); - marketFilesUpdatedEventSubscriptionId = marketFiles.eventHandler.listenToEvent("Files Updated", onMarketFilesUpdated); - dailyFilesUpdatedEventSubscriptionId = dailyFiles.eventHandler.listenToEvent("Files Updated", onDailyFilesUpdated); - onMouseOverEventSuscriptionId = thisObject.container.eventHandler.listenToEvent('onMouseOver', onMouseOver) - - /* Get ready for plotting. */ - - recalculate(); - - /* Ready for when dimmension changes. */ - - dimmensionsChangedEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('Dimmensions Changed', function () { - recalculate(); - }) - - callBackFunction(); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] initialize -> err = " + err.stack); } - } - } - - function initializeCoordinateSystem() { - scaleChangedEventSubscriptionId = coordinateSystem.eventHandler.listenToEvent('Scale Changed', onScaleChanged) - } - - function finalizeCoordinateSystem() { - coordinateSystem.eventHandler.stopListening(scaleChangedEventSubscriptionId) - } - - function onScaleChanged() { - recalculate(); - } - - function onMouseOver(event) { - let userPosition = getDateFromPointAtBrowserCanvas(event, thisObject.container, coordinateSystem) - userPositionDate = userPosition.valueOf() - } - - function getContainer(point) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] getContainer -> Entering function."); } - - let container; - - /* First we check if this point is inside this space. */ - - if (this.container.frame.isThisPointHere(point) === true) { - - return this.container; - - } else { - - /* This point does not belong to this space. */ - - return undefined; - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] getContainer -> err = " + err.stack); } - } - } - - function onMarketFilesUpdated() { - try { - let newMarketFile = marketFiles.getFile(timeFrame); - if (newMarketFile !== undefined) { - marketFile = newMarketFile; - recalculate(); - } - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] onMarketFilesUpdated -> err = " + err.stack); } - } - } - - function onDailyFilesUpdated() { - try { - let newFileCursor = dailyFiles.getFileCursor(timeFrame); - if (newFileCursor !== undefined) { - fileCursor = newFileCursor; - recalculate(); - } - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] onDailyFilesUpdated -> err = " + err.stack); } - } - } - - function setTimeFrame(pTimeFrame) { - - try { - - if (timeFrame !== pTimeFrame) { - - timeFrame = pTimeFrame; - - if (timeFrame >= _1_HOUR_IN_MILISECONDS) { - - marketFile = marketFiles.getFile(pTimeFrame); - - recalculate(); - - } else { - - let newFileCursor = dailyFiles.getFileCursor(pTimeFrame); - - fileCursor = newFileCursor; // In this case, we explicitly want that if there is no valid cursor, we invalidate the data and show nothing. - recalculate(); - - } - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] setTimeFrame -> err = " + err.stack); } - } - } - - function setDatetime(pDatetime) { - datetime = pDatetime; - } - - function setCoordinateSystem(pCoordinateSystem) { - finalizeCoordinateSystem() - coordinateSystem = pCoordinateSystem - initializeCoordinateSystem() - } - - function onDailyFileLoaded(event) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] onDailyFileLoaded -> Entering function."); } - - if (event.currentValue === event.totalValue) { - - /* This happens only when all of the files in the cursor have been loaded. */ - - recalculate(); - - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] onDailyFileLoaded -> err = " + err.stack); } - } - } - - function draw() { - - try { - - if (INTENSIVE_LOG === true) { logger.write("[INFO] draw -> Entering function."); } - - this.container.frame.draw(); - - plotChart(); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] draw -> err = " + err.stack); } - } - } - - function recalculate() { - - try { - - trades = [] - - if (timeFrame >= _1_HOUR_IN_MILISECONDS) { - - recalculateUsingMarketFiles(); - - } else { - - recalculateUsingDailyFiles(); - - } - - thisObject.container.eventHandler.raiseEvent("Trades Changed", trades); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] recalculate -> err = " + err.stack); } - } - } - - function recalculateUsingDailyFiles() { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] recalculateUsingDailyFiles -> Entering function."); } - - if (fileCursor === undefined) { - trades = []; - return; - } // We need to wait - - if (fileCursor.files.size === 0) { - trades = []; - return; - } // We need to wait until there are files in the cursor - - let daysOnSides = getSideDays(timeFrame); - - let leftDate = getDateFromPointAtBrowserCanvas(canvas.chartingSpace.viewport.visibleArea.topLeft, thisObject.container, coordinateSystem); - let rightDate = getDateFromPointAtBrowserCanvas(canvas.chartingSpace.viewport.visibleArea.topRight, thisObject.container, coordinateSystem); - - let dateDiff = rightDate.valueOf() - leftDate.valueOf(); - - let farLeftDate = new Date(leftDate.valueOf() - dateDiff * 1.5); - let farRightDate = new Date(rightDate.valueOf() + dateDiff * 1.5); - - let currentDate = new Date(farLeftDate.valueOf()); - - trades = []; - - - - while (currentDate.valueOf() <= farRightDate.valueOf() + ONE_DAY_IN_MILISECONDS) { - - let stringDate = currentDate.getFullYear() + '-' + pad(currentDate.getMonth() + 1, 2) + '-' + pad(currentDate.getDate(), 2); - - let dailyFile = fileCursor.files.get(stringDate); - - if (dailyFile !== undefined) { - - for (let i = 0; i < dailyFile.length; i++) { - - let record = {}; - - record.begin = dailyFile[i][0]; - record.end = dailyFile[i][1]; - record.status = dailyFile[i][2]; - record.lastTradeROI = dailyFile[i][3]; - record.beginRate = dailyFile[i][4]; - record.endRate = dailyFile[i][5]; - record.exitType = dailyFile[i][6]; - record.takePositionSituation = dailyFile[i][7]; - - if ( - (record.begin >= farLeftDate.valueOf() && record.end <= farRightDate.valueOf()) && - (record.begin >= coordinateSystem.min.x && record.end <= coordinateSystem.max.x) - ) { - - trades.push(record); - - if (datetime.valueOf() >= record.begin && datetime.valueOf() <= record.end) { - - thisObject.currentRecord = record; - thisObject.container.eventHandler.raiseEvent("Current Trade Changed", thisObject.currentRecord); - - } - } - } - } - - currentDate = new Date(currentDate.valueOf() + ONE_DAY_IN_MILISECONDS); - } - - /* Lests check if all the visible screen is going to be covered by trades. */ - - let lowerEnd = leftDate.valueOf(); - let upperEnd = rightDate.valueOf(); - - setTimeout(recalculate, 2000); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] recalculateUsingDailyFiles -> err = " + err.stack); } - } - } - - function recalculateUsingMarketFiles() { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] recalculateUsingMarketFiles -> Entering function."); } - - if (marketFile === undefined) { return; } // Initialization not complete yet. - - let daysOnSides = getSideDays(timeFrame); - - let leftDate = getDateFromPointAtBrowserCanvas(canvas.chartingSpace.viewport.visibleArea.topLeft, thisObject.container, coordinateSystem); - let rightDate = getDateFromPointAtBrowserCanvas(canvas.chartingSpace.viewport.visibleArea.topRight, thisObject.container, coordinateSystem); - - let dateDiff = rightDate.valueOf() - leftDate.valueOf(); - - leftDate = new Date(leftDate.valueOf() - dateDiff * 1.5); - rightDate = new Date(rightDate.valueOf() + dateDiff * 1.5); - - trades = []; - - for (let i = 0; i < marketFile.length; i++) { - - let record = {}; - - record.begin = marketFile[i][0]; - record.end = marketFile[i][1]; - record.status = marketFile[i][2]; - record.lastTradeROI = marketFile[i][3]; - record.beginRate = marketFile[i][4]; - record.endRate = marketFile[i][5]; - record.exitType = marketFile[i][6]; - record.takePositionSituation = marketFile[i][7]; - - if ( - (record.begin >= leftDate.valueOf() && record.end <= rightDate.valueOf()) && - (record.begin >= coordinateSystem.min.x && record.end <= coordinateSystem.max.x) - ) { - - trades.push(record); - - if (datetime.valueOf() >= record.begin && datetime.valueOf() <= record.end) { - - thisObject.currentRecord = record; - thisObject.container.eventHandler.raiseEvent("Current Trade Changed", thisObject.currentRecord); - - } - } - } - - //console.log("Olivia > recalculateUsingMarketFiles > total trades generated : " + trades.length); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] recalculateUsingMarketFiles -> err = " + err.stack); } - } - } - - function plotChart() { - - try { - - thisObject.container.eventHandler.raiseEvent("Current Trade Record Changed", undefined); - - let record; - - for (let i = 0; i < trades.length; i++) { - - record = trades[i]; - - /* Send the current record to the panel */ - - if (userPositionDate >= record.begin && userPositionDate <= record.end) { - - let currentRecord = { - }; - thisObject.container.eventHandler.raiseEvent("Current Trade Record Changed", currentRecord); - } - - let recordPoint1 = { - x: record.begin, - y: record.beginRate - }; - - let recordPoint2 = { - x: record.end, - y: record.beginRate - }; - - let recordPoint3 = { - x: record.end, - y: record.endRate - }; - - recordPoint1 = coordinateSystem.transformThisPoint(recordPoint1); - recordPoint2 = coordinateSystem.transformThisPoint(recordPoint2); - recordPoint3 = coordinateSystem.transformThisPoint(recordPoint3); - - recordPoint1 = transformThisPoint(recordPoint1, thisObject.container); - recordPoint2 = transformThisPoint(recordPoint2, thisObject.container); - recordPoint3 = transformThisPoint(recordPoint3, thisObject.container); - - if (recordPoint2.x < canvas.chartingSpace.viewport.visibleArea.bottomLeft.x || recordPoint1.x > canvas.chartingSpace.viewport.visibleArea.bottomRight.x) { - continue; - } - - recordPoint1 = canvas.chartingSpace.viewport.fitIntoVisibleArea(recordPoint1); - recordPoint2 = canvas.chartingSpace.viewport.fitIntoVisibleArea(recordPoint2); - recordPoint3 = canvas.chartingSpace.viewport.fitIntoVisibleArea(recordPoint3); - - recordPoint1 = thisObject.fitFunction(recordPoint1); - recordPoint2 = thisObject.fitFunction(recordPoint2); - recordPoint3 = thisObject.fitFunction(recordPoint3); - - let line0 = record.takePositionSituation - let line1 = ''; - let line2 = ''; - - if (line0 === 'New Situation') { - line0 = '' - } - - if (record.status === 1) { - switch (record.exitType) { - case 1: { - line1 = 'Stop Loss'; - break; - } - case 2: { - line1 = 'Take Profit'; - break; - } - } - } else { - line1 = 'Open Position'; - } - - if (record.lastTradeROI < 0) { - line2 = 'ROI:' + (record.lastTradeROI).toFixed(2) + ' %'; - } else { - line2 = 'ROI:' + (record.lastTradeROI).toFixed(2) + ' %'; - } - - /* Draw the triangle that represents the trade. */ - - browserCanvasContext.beginPath(); - - browserCanvasContext.moveTo(recordPoint1.x, recordPoint1.y); - browserCanvasContext.lineTo(recordPoint2.x, recordPoint2.y); - browserCanvasContext.lineTo(recordPoint3.x, recordPoint3.y); - - browserCanvasContext.closePath(); - - let opacity = '0.25'; - - if (record.lastTradeROI > 0) { - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.PATINATED_TURQUOISE + ', ' + opacity + ')'; - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.GREEN + ', ' + opacity + ')'; - } else { - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RED + ', ' + opacity + ')'; - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.RUSTED_RED + ', ' + opacity + ')'; - } - - if (userPositionDate >= record.begin && userPositionDate <= record.end) { - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', ' + opacity + ')'; - } - - browserCanvasContext.fill(); - - browserCanvasContext.lineWidth = 1; - browserCanvasContext.setLineDash([0, 0]) - browserCanvasContext.stroke(); - - let point = {} - - if (record.beginRate > record.endRate) { - point.x = recordPoint3.x - point.y = recordPoint3.y + 100 - } else { - point.x = recordPoint3.x - point.y = recordPoint3.y - 100 - } - - point = canvas.chartingSpace.viewport.fitIntoVisibleArea(point); - point = thisObject.fitFunction(point, undefined, 50); - - if ( - recordPoint3.x < canvas.chartingSpace.viewport.visibleArea.topLeft.x + 250 - || - recordPoint3.x > canvas.chartingSpace.viewport.visibleArea.bottomRight.x - 250 - || - recordPoint3.y > canvas.chartingSpace.viewport.visibleArea.bottomRight.y - 150 - || - recordPoint3.y < canvas.chartingSpace.viewport.visibleArea.topLeft.y + 150 - ) { - // we do not write any text - } else { - - if (canvas.chartingSpace.viewport.zoomLevel >= ZOOM_OUT_THRESHOLD_FOR_HIDDING_CHARTS_LABELS) { - printLabel(line0, recordPoint2.x - (recordPoint2.x - recordPoint1.x) / 2 - line1.length * FONT_ASPECT_RATIO, point.y - 15, '1', 12); - printLabel(line1, recordPoint2.x - (recordPoint2.x - recordPoint1.x) / 2 - line1.length * FONT_ASPECT_RATIO, point.y, '1', 12); - printLabel(line2, recordPoint2.x - (recordPoint2.x - recordPoint1.x) / 2 - line2.length * FONT_ASPECT_RATIO, point.y + 15, '1', 12); - } - } - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] plotChart -> err = " + err.stack); } - } - } - - - function onViewportZoomChanged(event) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] onViewportZoomChanged -> Entering function."); } - - recalculate(); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] onViewportZoomChanged -> err = " + err.stack); } - } - } - - function onViewportPositionChanged(event) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] onViewportPositionChanged -> Entering function."); } - - if (event !== undefined) { - if (event.recalculate === true) { - recalculate() - return - } - } - if (Math.random() * 100 > 95) { - recalculate() - }; - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] onViewportPositionChanged -> err = " + err.stack); } - } - } - - function onDragFinished() { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] onDragFinished -> Entering function."); } - - recalculate(); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] onDragFinished -> err = " + err.stack); } - } - } -} - - - - - - - - - - - - - - - - - - - - - diff --git a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/TradingSimulation.js b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/TradingSimulation.js deleted file mode 100644 index f9b3b5787..000000000 --- a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/TradingSimulation.js +++ /dev/null @@ -1,873 +0,0 @@ -function newTradingEnginesPlottersTradingSimulationTradingSimulation() { - - const MODULE_NAME = "Simulation Plotter"; - const ERROR_LOG = true; - const INTENSIVE_LOG = false; - const logger = newWebDebugLog(); - logger.fileName = MODULE_NAME; - - let thisObject = { - - // Main functions and properties. - - initialize: initialize, - finalize: finalize, - container: undefined, - fitFunction: undefined, - getContainer: getContainer, - setTimeFrame: setTimeFrame, - setDatetime: setDatetime, - setCoordinateSystem: setCoordinateSystem, - draw: draw, - - /* Events declared outside the plotter. */ - - onDailyFileLoaded: onDailyFileLoaded, - - // Secondary functions and properties. - - currentRecord: undefined - }; - - /* this is part of the module template */ - - let container = newContainer(); // Do not touch this 3 lines, they are just needed. - container.initialize(); - thisObject.container = container; - - let coordinateSystem - - let timeFrame; // This will hold the current Time Frame the user is at. - let datetime; // This will hold the current Datetime the user is at. - - let marketFile; // This is the current Market File being plotted. - let fileCursor; // This is the current File Cursor being used to retrieve Daily Files. - - let marketFiles; // This object will provide the different Market Files at different Time Frames. - let dailyFiles; // This object will provide the different File Cursors at different Time Frames. - - /* these are module specific variables: */ - - let records = []; // Here we keep the records to be ploted every time the Draw() function is called by the AAWebPlatform. - - let imageStopLossPhase; - let imageTakeProfitPhase; - let imageRecord; - - let onMouseOverEventSuscriptionId - let zoomChangedEventSubscriptionId - let offsetChangedEventSubscriptionId - let dragFinishedEventSubscriptionId - let dimmensionsChangedEventSubscriptionId - let marketFilesUpdatedEventSubscriptionId - let dailyFilesUpdatedEventSubscriptionId - let scaleChangedEventSubscriptionId - - let userPositionDate - return thisObject; - - function finalize() { - try { - - /* Stop listening to the necesary events. */ - thisObject.container.eventHandler.stopListening(onMouseOverEventSuscriptionId) - canvas.chartingSpace.viewport.eventHandler.stopListening(zoomChangedEventSubscriptionId); - canvas.chartingSpace.viewport.eventHandler.stopListening(offsetChangedEventSubscriptionId); - canvas.eventHandler.stopListening(dragFinishedEventSubscriptionId); - thisObject.container.eventHandler.stopListening(dimmensionsChangedEventSubscriptionId) - marketFiles.eventHandler.stopListening(marketFilesUpdatedEventSubscriptionId); - dailyFiles.eventHandler.stopListening(dailyFilesUpdatedEventSubscriptionId); - - /* icons */ - - imageStopLossPhase = undefined; - imageTakeProfitPhase = undefined; - imageRecord = undefined; - - /* Destroy References */ - - marketFiles = undefined; - dailyFiles = undefined; - - datetime = undefined; - timeFrame = undefined; - - marketFile = undefined; - fileCursor = undefined; - - thisObject.fitFunction = undefined - - finalizeCoordinateSystem() - coordinateSystem = undefined - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] finalize -> err = " + err.stack); } - } - } - - function initialize(pStorage, pDatetime, pTimeFrame, pCoordinateSystem, callBackFunction) { - - try { - - /* Store the information received. */ - - marketFiles = pStorage.marketFiles[0]; - dailyFiles = pStorage.dailyFiles[0]; - - datetime = pDatetime; - timeFrame = pTimeFrame; - coordinateSystem = pCoordinateSystem - initializeCoordinateSystem() - - /* We need a Market File in order to calculate the Y scale, since this scale depends on actual data. */ - - marketFile = marketFiles.getFile(ONE_DAY_IN_MILISECONDS); // This file is the one processed faster. - - /* Now we set the right files according to current Period. */ - - marketFile = marketFiles.getFile(pTimeFrame); - fileCursor = dailyFiles.getFileCursor(pTimeFrame); - - /* Listen to the necesary events. */ - - zoomChangedEventSubscriptionId = canvas.chartingSpace.viewport.eventHandler.listenToEvent("Zoom Changed", onViewportZoomChanged); - offsetChangedEventSubscriptionId = canvas.chartingSpace.viewport.eventHandler.listenToEvent("Position Changed", onViewportPositionChanged); - dragFinishedEventSubscriptionId = canvas.eventHandler.listenToEvent("Drag Finished", onDragFinished); - marketFilesUpdatedEventSubscriptionId = marketFiles.eventHandler.listenToEvent("Files Updated", onMarketFilesUpdated); - dailyFilesUpdatedEventSubscriptionId = dailyFiles.eventHandler.listenToEvent("Files Updated", onDailyFilesUpdated); - onMouseOverEventSuscriptionId = thisObject.container.eventHandler.listenToEvent('onMouseOver', onMouseOver) - - /* Get ready for plotting. */ - - recalculate(); - - /* Ready for when dimmension changes. */ - - dimmensionsChangedEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('Dimmensions Changed', function () { - recalculate(); - }) - - /* Loading a few icons */ - - imageStopLossPhase = canvas.designSpace.iconByUiObjectType.get('Stop'); - imageTakeProfitPhase = canvas.designSpace.iconByUiObjectType.get('Phase'); - imageRecord = canvas.designSpace.iconByUiObjectType.get('Trading System'); - - callBackFunction(); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] initialize -> err = " + err.stack); } - } - } - - function initializeCoordinateSystem() { - scaleChangedEventSubscriptionId = coordinateSystem.eventHandler.listenToEvent('Scale Changed', onScaleChanged) - } - - function finalizeCoordinateSystem() { - coordinateSystem.eventHandler.stopListening(scaleChangedEventSubscriptionId) - } - - function onScaleChanged() { - recalculate(); - } - - function onMouseOver(event) { - let userPosition = getDateFromPointAtBrowserCanvas(event, thisObject.container, coordinateSystem) - userPositionDate = userPosition.valueOf() - } - - function getContainer(point) { - let container; - /* First we check if this point is inside this space. */ - if (this.container.frame.isThisPointHere(point) === true) { - return this.container; - } else { - /* This point does not belong to this space. */ - return undefined; - } - } - - function onMarketFilesUpdated() { - try { - let newMarketFile = marketFiles.getFile(timeFrame); - if (newMarketFile !== undefined) { - marketFile = newMarketFile; - recalculate(); - } - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] onMarketFilesUpdated -> err = " + err.stack); } - } - } - - function onDailyFilesUpdated() { - try { - let newFileCursor = dailyFiles.getFileCursor(timeFrame); - if (newFileCursor !== undefined) { - fileCursor = newFileCursor; - recalculate(); - } - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] onDailyFilesUpdated -> err = " + err.stack); } - } - } - - function setTimeFrame(pTimeFrame) { - - try { - - if (timeFrame !== pTimeFrame) { - - timeFrame = pTimeFrame; - - if (timeFrame >= _1_HOUR_IN_MILISECONDS) { - - marketFile = marketFiles.getFile(pTimeFrame); - - recalculate(); - - } else { - - let newFileCursor = dailyFiles.getFileCursor(pTimeFrame); - - fileCursor = newFileCursor; // In this case, we explicitly want that if there is no valid cursor, we invalidate the data and show nothing. - recalculate(); - - } - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] setTimeFrame -> err = " + err.stack); } - } - } - - function setDatetime(pDatetime) { - datetime = pDatetime; - } - - function setCoordinateSystem(pCoordinateSystem) { - finalizeCoordinateSystem() - coordinateSystem = pCoordinateSystem - initializeCoordinateSystem() - } - - function onDailyFileLoaded(event) { - - try { - - if (event.currentValue === event.totalValue) { - - /* This happens only when all of the files in the cursor have been loaded. */ - - recalculate(); - - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] onDailyFileLoaded -> err = " + err.stack); } - } - } - - function draw() { - - try { - - if (INTENSIVE_LOG === true) { logger.write("[INFO] draw -> Entering function."); } - - this.container.frame.draw(); - - plotChart(); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] draw -> err = " + err.stack); } - } - } - - function recalculate() { - - try { - - records = [] - - if (timeFrame >= _1_HOUR_IN_MILISECONDS) { - - recalculateUsingMarketFiles(); - - } else { - - recalculateUsingDailyFiles(); - - } - - thisObject.container.eventHandler.raiseEvent("Records Changed", records); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] recalculate -> err = " + err.stack); } - } - } - - function recalculateUsingDailyFiles() { - - try { - - if (fileCursor === undefined) { - records = []; - return; - } // We need to wait - - if (fileCursor.files.size === 0) { - records = []; - return; - } // We need to wait until there are files in the cursor - - let daysOnSides = getSideDays(timeFrame); - - let leftDate = getDateFromPointAtBrowserCanvas(canvas.chartingSpace.viewport.visibleArea.topLeft, thisObject.container, coordinateSystem); - let rightDate = getDateFromPointAtBrowserCanvas(canvas.chartingSpace.viewport.visibleArea.topRight, thisObject.container, coordinateSystem); - - let dateDiff = rightDate.valueOf() - leftDate.valueOf(); - - let farLeftDate = new Date(leftDate.valueOf() - dateDiff * 1.5); - let farRightDate = new Date(rightDate.valueOf() + dateDiff * 1.5); - - let currentDate = new Date(farLeftDate.valueOf()); - - records = []; - - while (currentDate.valueOf() <= farRightDate.valueOf() + ONE_DAY_IN_MILISECONDS) { - - let stringDate = currentDate.getFullYear() + '-' + pad(currentDate.getMonth() + 1, 2) + '-' + pad(currentDate.getDate(), 2); - - let dailyFile = fileCursor.files.get(stringDate); - - if (dailyFile !== undefined) { - - for (let i = 0; i < dailyFile.length; i++) { - - let record = {}; - - record.begin = dailyFile[i][0]; - record.end = dailyFile[i][1]; - record.type = dailyFile[i][2]; - record.rate = dailyFile[i][3]; - record.amount = dailyFile[i][4]; - record.balanceA = dailyFile[i][5]; - record.balanceB = dailyFile[i][6]; - record.profit = dailyFile[i][7]; - record.lastTradeProfitLoss = dailyFile[i][8]; - record.stopLoss = dailyFile[i][9]; - record.roundtrips = dailyFile[i][10]; - record.hits = dailyFile[i][11]; - record.fails = dailyFile[i][12]; - record.hitRatio = dailyFile[i][13]; - record.ROI = dailyFile[i][14]; - record.periods = dailyFile[i][15]; - record.days = dailyFile[i][16]; - record.anualizedRateOfReturn = dailyFile[i][17]; - record.sellRate = dailyFile[i][18]; - record.lastTradeROI = dailyFile[i][19]; - record.strategy = dailyFile[i][20]; - record.strategyPhase = dailyFile[i][21]; - record.takeProfit = dailyFile[i][22]; - record.stopLossPhase = dailyFile[i][23]; - record.takeProfitPhase = dailyFile[i][24]; - record.positionSize = dailyFile[i][26]; // 25 is the message for the executor - record.initialBalanceA = dailyFile[i][27]; - record.minimunBalanceA = dailyFile[i][28]; - record.maximunBalanceA = dailyFile[i][29]; - record.initialBalanceB = dailyFile[i][30]; - record.minimunBalanceB = dailyFile[i][31]; - record.maximunBalanceB = dailyFile[i][32]; - record.baseAsset = dailyFile[i][33]; - record.quotedAsset = dailyFile[i][34]; - record.marketBaseAsset = dailyFile[i][35]; - record.marketQuotedAsset = dailyFile[i][36]; - record.positionPeriods = dailyFile[i][37]; - record.positionDays = dailyFile[i][38]; - - if ( - (record.begin >= farLeftDate.valueOf() && record.end <= farRightDate.valueOf()) && - (record.begin >= coordinateSystem.min.x && record.end <= coordinateSystem.max.x) - ) { - - records.push(record); - - if (datetime.valueOf() >= record.begin && datetime.valueOf() <= record.end) { - - thisObject.currentRecord = record; - thisObject.container.eventHandler.raiseEvent("Current Record Changed", thisObject.currentRecord); - - } - } - } - } - - currentDate = new Date(currentDate.valueOf() + ONE_DAY_IN_MILISECONDS); - } - - /* Lests check if all the visible screen is going to be covered by records. */ - - let lowerEnd = leftDate.valueOf(); - let upperEnd = rightDate.valueOf(); - - setTimeout(recalculate, 2000); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] recalculateUsingDailyFiles -> err = " + err.stack); } - } - } - - function recalculateUsingMarketFiles() { - - try { - - if (marketFile === undefined) { return; } // Initialization not complete yet. - - let daysOnSides = getSideDays(timeFrame); - - let leftDate = getDateFromPointAtBrowserCanvas(canvas.chartingSpace.viewport.visibleArea.topLeft, thisObject.container, coordinateSystem); - let rightDate = getDateFromPointAtBrowserCanvas(canvas.chartingSpace.viewport.visibleArea.topRight, thisObject.container, coordinateSystem); - - let dateDiff = rightDate.valueOf() - leftDate.valueOf(); - - leftDate = new Date(leftDate.valueOf() - dateDiff * 1.5); - rightDate = new Date(rightDate.valueOf() + dateDiff * 1.5); - - records = []; - - for (let i = 0; i < marketFile.length; i++) { - - let record = {}; - - record.begin = marketFile[i][0]; - record.end = marketFile[i][1]; - record.type = marketFile[i][2]; - record.rate = marketFile[i][3]; - record.amount = marketFile[i][4]; - record.balanceA = marketFile[i][5]; - record.balanceB = marketFile[i][6]; - record.profit = marketFile[i][7]; - record.lastTradeProfitLoss = marketFile[i][8]; - record.stopLoss = marketFile[i][9]; - record.roundtrips = marketFile[i][10]; - record.hits = marketFile[i][11]; - record.fails = marketFile[i][12]; - record.hitRatio = marketFile[i][13]; - record.ROI = marketFile[i][14]; - record.periods = marketFile[i][15]; - record.days = marketFile[i][16]; - record.anualizedRateOfReturn = marketFile[i][17]; - record.sellRate = marketFile[i][18]; - record.lastTradeROI = marketFile[i][19]; - record.strategy = marketFile[i][20]; - record.strategyPhase = marketFile[i][21]; - record.takeProfit = marketFile[i][22]; - record.stopLossPhase = marketFile[i][23]; - record.takeProfitPhase = marketFile[i][24]; - record.positionSize = marketFile[i][26]; // 25 is the message for the executor - record.initialBalanceA = marketFile[i][27]; - record.minimunBalanceA = marketFile[i][28]; - record.maximunBalanceA = marketFile[i][29]; - record.initialBalanceB = marketFile[i][30]; - record.minimunBalanceB = marketFile[i][31]; - record.maximunBalanceB = marketFile[i][32]; - record.baseAsset = marketFile[i][33]; - record.quotedAsset = marketFile[i][34]; - record.marketBaseAsset = marketFile[i][35]; - record.marketQuotedAsset = marketFile[i][36]; - record.positionPeriods = marketFile[i][37]; - record.positionDays = marketFile[i][38]; - - if ( - (record.begin >= leftDate.valueOf() && record.end <= rightDate.valueOf()) && - (record.begin >= coordinateSystem.min.x && record.end <= coordinateSystem.max.x) - ) { - - records.push(record); - - if (datetime.valueOf() >= record.begin && datetime.valueOf() <= record.end) { - - thisObject.currentRecord = record; - thisObject.container.eventHandler.raiseEvent("Current Record Changed", thisObject.currentRecord); - - } - } - } - - //console.log("Olivia > recalculateUsingMarketFiles > total records generated : " + records.length); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] recalculateUsingMarketFiles -> err = " + err.stack); } - } - } - - function plotChart() { - - try { - - let record; - - /* Now we calculate and plot the records */ - - for (let i = 0; i < records.length; i++) { // We do not start in 0 so as to be able to read the previous record i - 1 - - record = records[i]; - - /* Contributing to Auto-Scale*/ - if (record.stopLoss !== 0) { - coordinateSystem.reportYValue(record.stopLoss) - } - if (record.takeProfit !== 0) { - coordinateSystem.reportYValue(record.takeProfit) - } - - /* Send the current record to the panel */ - - if (userPositionDate >= record.begin && userPositionDate <= record.end) { - - let eventRecords = { - currentRecord: record - }; - thisObject.container.eventHandler.raiseEvent("Current Record Changed", eventRecords); - } - - let stopLossPhase = -1; - let takeProfitPhase = -1; - - if (i > 0) { - if (record.stopLossPhase !== records[i - 1].stopLossPhase) { - stopLossPhase = record.stopLossPhase; - } - - if (record.takeProfitPhase !== records[i - 1].takeProfitPhase) { - takeProfitPhase = record.takeProfitPhase; - } - } - - let recordPoint1 = { - x: record.begin + timeFrame / 7 * 1.5, - y: thisObject.container.frame.height - }; - - let recordPoint2 = { - x: record.end + timeFrame / 7 * 5.5, - y: thisObject.container.frame.height - }; - - let recordPoint3 = { - x: recordPoint1.x + (recordPoint2.x - recordPoint1.x) / 2, - y: 0 - }; - - let recordPoint4 = { - x: record.begin + timeFrame / 7 * 1.5, - y: thisObject.container.frame.height * 100 - }; - - let recordPoint5 = { - x: record.begin, - y: record.stopLoss - }; - - let recordPoint6 = { - x: record.end, - y: record.stopLoss - }; - - if (record.stopLoss === 0) { // Put these points out of range if stopLoss is zero. - - recordPoint5.x = 0; - recordPoint6.x = 0; - } - - let recordPoint7 = { - x: record.begin, - y: record.sellRate - }; - - let recordPoint8 = { - x: record.end, - y: record.sellRate - }; - - if (record.sellRate === 0) { // Put these points out of range if sellRate is zero. - - recordPoint7.x = 0; - recordPoint8.x = 0; - } - - let recordPoint9 = { - x: record.begin, - y: record.takeProfit - }; - - let recordPoint10 = { - x: record.end, - y: record.takeProfit - }; - - if (record.takeProfit === 0) { // Put these points out of range if takeProfit is zero. - - recordPoint9.x = 0; - recordPoint10.x = 0; - } - - recordPoint1 = coordinateSystem.transformThisPoint(recordPoint1); - recordPoint2 = coordinateSystem.transformThisPoint(recordPoint2); - recordPoint3 = coordinateSystem.transformThisPoint(recordPoint3); - recordPoint4 = coordinateSystem.transformThisPoint(recordPoint4); - recordPoint5 = coordinateSystem.transformThisPoint(recordPoint5); - recordPoint6 = coordinateSystem.transformThisPoint(recordPoint6); - recordPoint7 = coordinateSystem.transformThisPoint(recordPoint7); - recordPoint8 = coordinateSystem.transformThisPoint(recordPoint8); - recordPoint9 = coordinateSystem.transformThisPoint(recordPoint9); - recordPoint10 = coordinateSystem.transformThisPoint(recordPoint10); - - recordPoint1 = transformThisPoint(recordPoint1, thisObject.container); - recordPoint2 = transformThisPoint(recordPoint2, thisObject.container); - recordPoint3 = transformThisPoint(recordPoint3, thisObject.container); - recordPoint4 = transformThisPoint(recordPoint4, thisObject.container); - recordPoint5 = transformThisPoint(recordPoint5, thisObject.container); - recordPoint6 = transformThisPoint(recordPoint6, thisObject.container); - recordPoint7 = transformThisPoint(recordPoint7, thisObject.container); - recordPoint8 = transformThisPoint(recordPoint8, thisObject.container); - recordPoint9 = transformThisPoint(recordPoint9, thisObject.container); - recordPoint10 = transformThisPoint(recordPoint10, thisObject.container); - - recordPoint1 = canvas.chartingSpace.viewport.fitIntoVisibleArea(recordPoint1); - recordPoint2 = canvas.chartingSpace.viewport.fitIntoVisibleArea(recordPoint2); - recordPoint3 = canvas.chartingSpace.viewport.fitIntoVisibleArea(recordPoint3); - recordPoint4 = canvas.chartingSpace.viewport.fitIntoVisibleArea(recordPoint4); - recordPoint5 = canvas.chartingSpace.viewport.fitIntoVisibleArea(recordPoint5); - recordPoint6 = canvas.chartingSpace.viewport.fitIntoVisibleArea(recordPoint6); - recordPoint7 = canvas.chartingSpace.viewport.fitIntoVisibleArea(recordPoint7); - recordPoint8 = canvas.chartingSpace.viewport.fitIntoVisibleArea(recordPoint8); - recordPoint9 = canvas.chartingSpace.viewport.fitIntoVisibleArea(recordPoint9); - recordPoint10 = canvas.chartingSpace.viewport.fitIntoVisibleArea(recordPoint10); - - recordPoint1 = thisObject.fitFunction(recordPoint1); - recordPoint2 = thisObject.fitFunction(recordPoint2); - recordPoint3 = thisObject.fitFunction(recordPoint3); - recordPoint4 = thisObject.fitFunction(recordPoint4); - recordPoint5 = thisObject.fitFunction(recordPoint5); - recordPoint6 = thisObject.fitFunction(recordPoint6); - recordPoint7 = thisObject.fitFunction(recordPoint7); - recordPoint8 = thisObject.fitFunction(recordPoint8); - recordPoint9 = thisObject.fitFunction(recordPoint9); - recordPoint10 = thisObject.fitFunction(recordPoint10); - - /* Image representing a Record */ - - let imageOffset = { - x: 0, - y: -30 - } - let imageSize = (recordPoint2.x - recordPoint1.x) / 2; - let recordLabel = record.periods.toLocaleString() - if (imageSize < 8) { - if (recordLabel[recordLabel.length - 1] !== '0' || imageSize < 4) - recordLabel = '' - } - let labelOffset = { - x: 0 - imageSize / 2 + 3 + imageOffset.x, - y: -2 - imageOffset.y - } - - let imagePosition = { - x: recordPoint4.x + imageOffset.x, - y: 0 - } - - imagePosition = canvas.chartingSpace.viewport.fitIntoVisibleArea(imagePosition) - imagePosition = thisObject.fitFunction(imagePosition, undefined, 0, 0, imageSize) - - if (imageRecord.canDrawIcon === true) { - browserCanvasContext.drawImage(imageRecord, imagePosition.x, imagePosition.y, imageSize, imageSize); - browserCanvasContext.save(); - browserCanvasContext.translate(recordPoint3.x + labelOffset.x, recordPoint3.y + labelOffset.y); - browserCanvasContext.rotate(-Math.PI / 2); - printLabel(recordLabel, 0, 0, '1', 8, undefined, undefined, undefined, undefined, true); - browserCanvasContext.restore(); - } - - if (recordPoint5.x < canvas.chartingSpace.viewport.visibleArea.bottomLeft.x || recordPoint5.x > canvas.chartingSpace.viewport.visibleArea.bottomRight.x) { - continue; - } - - /* Next we are drawing the position Rate */ - - browserCanvasContext.beginPath(); - - browserCanvasContext.moveTo(recordPoint7.x, recordPoint7.y); - browserCanvasContext.lineTo(recordPoint8.x, recordPoint8.y); - - browserCanvasContext.closePath(); - - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.MANGANESE_PURPLE + ', 1)'; - browserCanvasContext.lineWidth = 1 - browserCanvasContext.setLineDash([1, 4]) - - if (userPositionDate >= record.begin && userPositionDate <= record.end) { - browserCanvasContext.lineWidth = 5 - browserCanvasContext.setLineDash([3, 4]) - - /* highlight the current record */ - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', 1)'; // Current record accroding to time - } - - browserCanvasContext.stroke() - browserCanvasContext.setLineDash([0, 0]) - - imageSize = 20; - let imageToDraw; - - /* Depending on what is on top, it is also the text and image of the take profit / stop loss */ - - let yOffset = 0 - if (record.takeProfit > record.stopLoss) { yOffset = imageSize * 2 } - - /* Next we are drawing the stopLoss floor / ceilling */ - - browserCanvasContext.beginPath(); - - - browserCanvasContext.moveTo(recordPoint5.x, recordPoint5.y); - browserCanvasContext.lineTo(recordPoint6.x, recordPoint6.y); - - - browserCanvasContext.closePath(); - - let opacity = 1 - - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RUSTED_RED + ', ' + opacity + ''; - - if (userPositionDate >= record.begin && userPositionDate <= record.end) { - - /* highlight the current record */ - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', 1)'; // Current record accroding to time - } - - browserCanvasContext.lineWidth = 1 - browserCanvasContext.stroke() - - imagePosition = { - x: recordPoint6.x - imageSize, - y: recordPoint6.y - imageSize * 1.25 + yOffset - } - - imagePosition = canvas.chartingSpace.viewport.fitIntoVisibleArea(imagePosition) - imagePosition = thisObject.fitFunction(imagePosition, undefined, 0, 0, imageSize) - - let labelPosition = { - x: recordPoint6.x - imageSize / 2 - 3, - y: recordPoint6.y - imageSize * 1.5 + yOffset * 2 - } - labelPosition = canvas.chartingSpace.viewport.fitIntoVisibleArea(labelPosition) - labelPosition = thisObject.fitFunction(labelPosition, undefined, 30) - - if (imageStopLossPhase.canDrawIcon === true && stopLossPhase > -1) { - browserCanvasContext.drawImage(imageStopLossPhase, imagePosition.x, imagePosition.y, imageSize, imageSize); - printLabel(stopLossPhase, labelPosition.x, labelPosition.y, '1', 9); - } - - /* Next we are drawing the Take Profit */ - - browserCanvasContext.beginPath(); - - browserCanvasContext.moveTo(recordPoint9.x, recordPoint9.y); - browserCanvasContext.lineTo(recordPoint10.x, recordPoint10.y); - - browserCanvasContext.closePath(); - - opacity = 1 - - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.GREEN + ', ' + opacity + ''; - - if (userPositionDate >= record.begin && userPositionDate <= record.end) { - - /* highlight the current record */ - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', 1)'; // Current record accroding to time - } - - browserCanvasContext.lineWidth = 1 - browserCanvasContext.stroke() - - imagePosition = { - x: recordPoint10.x - imageSize * 2 / 3, - y: recordPoint10.y + imageSize / 4 - yOffset - } - imagePosition = canvas.chartingSpace.viewport.fitIntoVisibleArea(imagePosition) - imagePosition = thisObject.fitFunction(imagePosition, undefined, 0, 0, imageSize) - - labelPosition = { - x: recordPoint10.x - imageSize * 1 / 3, - y: recordPoint10.y + imageSize * 1.9 - yOffset * 2 - } - labelPosition = canvas.chartingSpace.viewport.fitIntoVisibleArea(labelPosition) - labelPosition = thisObject.fitFunction(labelPosition, undefined, 30) - - if (imageTakeProfitPhase.canDrawIcon === true && takeProfitPhase > -1) { - browserCanvasContext.drawImage(imageTakeProfitPhase, imagePosition.x, imagePosition.y, imageSize, imageSize); - printLabel(takeProfitPhase, labelPosition.x, labelPosition.y, '1', 9); - } - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] plotChart -> err = " + err.stack); } - } - } - - - function onViewportZoomChanged(event) { - - try { - - recalculate(); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] onViewportZoomChanged -> err = " + err.stack); } - } - } - - function onViewportPositionChanged(event) { - - try { - - if (event !== undefined) { - if (event.recalculate === true) { - recalculate() - return - } - } - if (Math.random() * 100 > 95) { - recalculate() - }; - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] onViewportPositionChanged -> err = " + err.stack); } - } - } - - function onDragFinished() { - - try { - - recalculate(); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] onDragFinished -> err = " + err.stack); } - } - } -} - diff --git a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/TradingSimulationAssetBalancesPanel.js b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/TradingSimulationAssetBalancesPanel.js deleted file mode 100644 index 7272577da..000000000 --- a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/TradingSimulationAssetBalancesPanel.js +++ /dev/null @@ -1,219 +0,0 @@ - -function newTradingEnginesPlottersTradingSimulationTradingSimulationTradingSimulationAssetBalancesPanel() { - - let thisObject = { - fitFunction: undefined, - onRecordChange: onRecordChange, - container: undefined, - session: undefined, - isVisible: true, - draw: draw, - getContainer: getContainer, - initialize: initialize, - finalize: finalize - }; - - let container = newContainer(); - container.initialize(); - thisObject.container = container; - - container.frame.containerName = "Simulation Asset Balances Panel"; - - let currentRecord; - let lastRecord; - let upDownButton - - const HEIGHT_FACTOR = 1.25 - - return thisObject; - - function initialize() { - - thisObject.container.frame.width = UI_PANEL.WIDTH.NORMAL * 1; - thisObject.container.frame.height = UI_PANEL.HEIGHT.NORMAL * HEIGHT_FACTOR; - - thisObject.container.frame.position.x = canvas.chartingSpace.viewport.visibleArea.topRight.x - thisObject.container.frame.width * 1; - thisObject.container.frame.position.y = canvas.chartingSpace.viewport.visibleArea.topRight.y; - - upDownButton = newUpDownButton() - upDownButton.parentContainer = thisObject.container - upDownButton.container.frame.parentFrame = thisObject.container.frame - upDownButton.fitFunction = thisObject.fitFunction - upDownButton.initialize() - - thisObject.assetBalances = newAssetalances() - thisObject.assetBalances.container.connectToParent(thisObject.container, true, true) - thisObject.assetBalances.initialize() - - } - - function finalize() { - thisObject.session = undefined - - thisObject.container.finalize() - thisObject.container = undefined - thisObject.fitFunction = undefined - thisObject.onRecordChange = undefined - thisObject.isVisible = undefined - - currentRecord = undefined - lastRecord = undefined - upDownButton = undefined - - thisObject.assetBalances.finalize() - thisObject.assetBalances = undefined - } - - function getContainer(point) { - if (thisObject.isVisible !== true) { return } - let container; - - container = upDownButton.getContainer(point) - if (container !== undefined) { return container } - - if (thisObject.container.frame.isThisPointHere(point, true) === true) { - - let checkPoint = { - x: point.x, - y: point.y - } - - checkPoint = thisObject.fitFunction(checkPoint) - - if (point.x === checkPoint.x && point.y === checkPoint.y) { - return thisObject.container; - } - } - } - - - function onRecordChange(records) { - - currentRecord = records.currentRecord; - lastRecord = records.lastRecord - - } - - - function draw() { - if (thisObject.isVisible !== true) { return } - thisObject.container.frame.draw(false, false, true, thisObject.fitFunction); - - plotCurrentRecordInfo(); - - upDownButton.draw() - - /* Define panel name */ - if (thisObject.session !== undefined) { - const MAX_LABEL_LENGTH = 25 - if (thisObject.session.name.length > MAX_LABEL_LENGTH) { - container.frame.containerName = thisObject.session.name.substring(0, MAX_LABEL_LENGTH) + '...' - } else { - container.frame.containerName = thisObject.session.name - } - } - } - - - function plotCurrentRecordInfo() { - - if (currentRecord === undefined) { return; } - - const frameBodyHeight = thisObject.container.frame.getBodyHeight(); - const frameTitleHeight = thisObject.container.frame.height - frameBodyHeight; - - const X_AXIS = thisObject.container.frame.width / 2; - const Y_AXIS = frameTitleHeight + frameBodyHeight / 2; - - /* put the labels with the records values */ - - let y = 0; - let increment = 0.024 / HEIGHT_FACTOR * 2.5; - - y = y + increment; - y = y + increment; - printLabel('Asset Balances', X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - /* Parameters */ - let params - let paramsArray = [] - let positionTaken = false - - if (currentRecord.positionSize > 0) { - positionTaken = true - } - - let testPoint = { - x: 0, - y: thisObject.container.frame.height - } - - testPoint = thisObject.container.frame.frameThisPoint(testPoint) - let fitPoint = thisObject.fitFunction(testPoint) - if (fitPoint.y !== testPoint.y) { - return - } - - if (currentRecord.baseAsset === currentRecord.marketBaseAsset) { - params = {} - params.VALUE = currentRecord.balanceA; - params.INIT_VALUE = currentRecord.initialBalanceA - params.MIN_VALUE = currentRecord.minimunBalanceA - params.MAX_VALUE = currentRecord.maximunBalanceA - params.ASSET_LABEL = 'Base' - params.ASSET_NAME = currentRecord.baseAsset - params.LEFT_OFFSET = X_AXIS - params.POSITION_TAKEN = positionTaken - params.BASE_ASSET = currentRecord.baseAsset - params.DECIMALS = 4 - - paramsArray.push(params) - - params = {} - params.VALUE = currentRecord.balanceB; - params.MIN_VALUE = currentRecord.minimunBalanceB - params.INIT_VALUE = currentRecord.initialBalanceB - params.MAX_VALUE = currentRecord.maximunBalanceB - params.ASSET_LABEL = 'Quoted' - params.ASSET_NAME = currentRecord.quotedAsset - params.LEFT_OFFSET = X_AXIS - params.POSITION_TAKEN = positionTaken - params.BASE_ASSET = currentRecord.baseAsset - params.DECIMALS = 2 - - paramsArray.push(params) - } else { - params = {} - params.VALUE = currentRecord.balanceB; - params.INIT_VALUE = currentRecord.initialBalanceB - params.MIN_VALUE = currentRecord.minimunBalanceB - params.MAX_VALUE = currentRecord.maximunBalanceB - params.ASSET_LABEL = 'Base' - params.ASSET_NAME = currentRecord.baseAsset - params.LEFT_OFFSET = X_AXIS - params.POSITION_TAKEN = positionTaken - params.BASE_ASSET = currentRecord.baseAsset - params.DECIMALS = 4 - - paramsArray.push(params) - - params = {} - params.VALUE = currentRecord.balanceA; - params.MIN_VALUE = currentRecord.minimunBalanceA - params.INIT_VALUE = currentRecord.initialBalanceA - params.MAX_VALUE = currentRecord.maximunBalanceA - params.ASSET_LABEL = 'Quoted' - params.ASSET_NAME = currentRecord.quotedAsset - params.LEFT_OFFSET = X_AXIS - params.POSITION_TAKEN = positionTaken - params.BASE_ASSET = currentRecord.baseAsset - params.DECIMALS = 2 - - paramsArray.push(params) - } - - - thisObject.assetBalances.setParamsArray(paramsArray) - thisObject.assetBalances.draw() - } -} diff --git a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/TradingSimulationCurrentPositionPanel.js b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/TradingSimulationCurrentPositionPanel.js deleted file mode 100644 index 6fc1ab6f5..000000000 --- a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/TradingSimulationCurrentPositionPanel.js +++ /dev/null @@ -1,178 +0,0 @@ - - - -function newTradingEnginesPlottersTradingSimulationTradingSimulationTradingSimulationCurrentPositionPanel() { - - let thisObject = { - fitFunction: undefined, - onRecordChange: onRecordChange, - container: undefined, - session: undefined, - isVisible: true, - draw: draw, - getContainer: getContainer, - initialize: initialize, - finalize: finalize - }; - - let container = newContainer(); - container.initialize(); - thisObject.container = container; - - container.frame.containerName = "Simulation Current Position Panel"; - - let currentRecord; - let lastRecord; - let upDownButton - - const HEIGHT_FACTOR = 1.25 - - return thisObject; - - function initialize() { - - thisObject.container.frame.width = UI_PANEL.WIDTH.NORMAL * 1; - thisObject.container.frame.height = UI_PANEL.HEIGHT.NORMAL * HEIGHT_FACTOR; - - thisObject.container.frame.position.x = canvas.chartingSpace.viewport.visibleArea.topRight.x - thisObject.container.frame.width * 1; - thisObject.container.frame.position.y = canvas.chartingSpace.viewport.visibleArea.topRight.y; - - upDownButton = newUpDownButton() - upDownButton.parentContainer = thisObject.container - upDownButton.container.frame.parentFrame = thisObject.container.frame - upDownButton.fitFunction = thisObject.fitFunction - upDownButton.initialize() - - } - - function finalize() { - thisObject.session = undefined - - thisObject.container.finalize() - thisObject.container = undefined - thisObject.fitFunction = undefined - thisObject.onRecordChange = undefined - thisObject.isVisible = undefined - - currentRecord = undefined - lastRecord = undefined - upDownButton = undefined - } - - function getContainer(point) { - if (thisObject.isVisible !== true) { return } - let container; - - container = upDownButton.getContainer(point) - if (container !== undefined) { return container } - - if (thisObject.container.frame.isThisPointHere(point, true) === true) { - - let checkPoint = { - x: point.x, - y: point.y - } - - checkPoint = thisObject.fitFunction(checkPoint) - - if (point.x === checkPoint.x && point.y === checkPoint.y) { - return thisObject.container; - } - } - } - - - function onRecordChange(records) { - - currentRecord = records.currentRecord; - lastRecord = records.lastRecord - - } - - - function draw() { - if (thisObject.isVisible !== true) { return } - thisObject.container.frame.draw(false, false, true, thisObject.fitFunction); - - plotCurrentRecordInfo(); - - upDownButton.draw() - - /* Define panel name */ - if (thisObject.session !== undefined) { - const MAX_LABEL_LENGTH = 25 - if (thisObject.session.name.length > MAX_LABEL_LENGTH) { - container.frame.containerName = thisObject.session.name.substring(0, MAX_LABEL_LENGTH) + '...' - } else { - container.frame.containerName = thisObject.session.name - } - } - } - - - function plotCurrentRecordInfo() { - - if (currentRecord === undefined) { return; } - - const frameBodyHeight = thisObject.container.frame.getBodyHeight(); - const frameTitleHeight = thisObject.container.frame.height - frameBodyHeight; - - const X_AXIS = thisObject.container.frame.width / 2; - const Y_AXIS = frameTitleHeight + frameBodyHeight / 2; - - - /* put the labels with the records values */ - - let y = 0; - let increment = 0.024 / HEIGHT_FACTOR * 2.5; - - y = y + increment; - y = y + increment; - printLabel('Current Position', X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - y = y + increment; - printLabel('Size', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); - y = y + increment; - printLabel(currentRecord.positionSize, X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - y = y + increment; - printLabel('Rate', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); - y = y + increment; - printLabel(currentRecord.sellRate, X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - y = y + increment; - printLabel('Stop', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); - y = y + increment; - printLabel(currentRecord.stopLoss, X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - y = y + increment; - printLabel('Take Profit', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); - y = y + increment; - printLabel(currentRecord.takeProfit, X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - y = y + increment; - printLabel('Periods', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); - y = y + increment; - printLabel((currentRecord.positionPeriods), X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - y = y + increment; - printLabel('Days', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); - y = y + increment; - printLabel((currentRecord.positionDays).toFixed(2), X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - y = y + increment; - y = y + increment; - printLabel('Latest Position', X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - y = y + increment; - printLabel('Profit / Loss', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); - y = y + increment; - printLabel((currentRecord.lastTradeProfitLoss), X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - y = y + increment; - printLabel('ROI', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); - y = y + increment; - printLabel((currentRecord.lastTradeROI).toFixed(2) + ' % ', X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - } -} diff --git a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/TradingSimulationPartialResultsPanel.js b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/TradingSimulationPartialResultsPanel.js deleted file mode 100644 index bd07abf7d..000000000 --- a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/TradingSimulationPartialResultsPanel.js +++ /dev/null @@ -1,177 +0,0 @@ - -function newTradingEnginesPlottersTradingSimulationTradingSimulationTradingSimulationPartialResultsPanel() { - - let thisObject = { - fitFunction: undefined, - onRecordChange: onRecordChange, - container: undefined, - session: undefined, - isVisible: true, - draw: draw, - getContainer: getContainer, - initialize: initialize, - finalize: finalize - }; - - let container = newContainer(); - container.initialize(); - thisObject.container = container; - - container.frame.containerName = "Simulation Partial Results Panel"; - - let currentRecord; - let lastRecord; - let upDownButton - - const HEIGHT_FACTOR = 1.25 - - return thisObject; - - function initialize() { - - thisObject.container.frame.width = UI_PANEL.WIDTH.NORMAL * 1; - thisObject.container.frame.height = UI_PANEL.HEIGHT.NORMAL * HEIGHT_FACTOR; - - thisObject.container.frame.position.x = canvas.chartingSpace.viewport.visibleArea.topRight.x - thisObject.container.frame.width * 1; - thisObject.container.frame.position.y = canvas.chartingSpace.viewport.visibleArea.topRight.y; - - upDownButton = newUpDownButton() - upDownButton.parentContainer = thisObject.container - upDownButton.container.frame.parentFrame = thisObject.container.frame - upDownButton.fitFunction = thisObject.fitFunction - upDownButton.initialize() - - } - - function finalize() { - thisObject.session = undefined - - thisObject.container.finalize() - thisObject.container = undefined - thisObject.fitFunction = undefined - thisObject.onRecordChange = undefined - thisObject.isVisible = undefined - - currentRecord = undefined - lastRecord = undefined - upDownButton = undefined - } - - function getContainer(point) { - if (thisObject.isVisible !== true) { return } - let container; - - container = upDownButton.getContainer(point) - if (container !== undefined) { return container } - - if (thisObject.container.frame.isThisPointHere(point, true) === true) { - - let checkPoint = { - x: point.x, - y: point.y - } - - checkPoint = thisObject.fitFunction(checkPoint) - - if (point.x === checkPoint.x && point.y === checkPoint.y) { - return thisObject.container; - } - } - } - - - function onRecordChange(records) { - - currentRecord = records.currentRecord; - lastRecord = records.lastRecord - - } - - - function draw() { - if (thisObject.isVisible !== true) { return } - thisObject.container.frame.draw(false, false, true, thisObject.fitFunction); - - plotCurrentRecordInfo(); - - upDownButton.draw() - - /* Define panel name */ - if (thisObject.session !== undefined) { - const MAX_LABEL_LENGTH = 25 - if (thisObject.session.name.length > MAX_LABEL_LENGTH) { - container.frame.containerName = thisObject.session.name.substring(0, MAX_LABEL_LENGTH) + '...' - } else { - container.frame.containerName = thisObject.session.name - } - } - } - - - function plotCurrentRecordInfo() { - - if (currentRecord === undefined) { return; } - - const frameBodyHeight = thisObject.container.frame.getBodyHeight(); - const frameTitleHeight = thisObject.container.frame.height - frameBodyHeight; - - const X_AXIS = thisObject.container.frame.width / 2; - const Y_AXIS = frameTitleHeight + frameBodyHeight / 2; - - - /* put the labels with the records values */ - - let y = 0; - let increment = 0.024 / HEIGHT_FACTOR * 2.5; - - y = y + increment; - y = y + increment; - printLabel('Partial Results', X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - y = y + increment; - printLabel('Profit / Loss', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); - y = y + increment; - printLabel(currentRecord.profit, X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - y = y + increment; - printLabel('Trades', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); - y = y + increment; - printLabel(currentRecord.roundtrips, X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - y = y + increment; - printLabel('Hits', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); - y = y + increment; - printLabel(currentRecord.hits, X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - y = y + increment; - printLabel('Fails', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); - y = y + increment; - printLabel(currentRecord.fails, X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - y = y + increment; - printLabel('Hit Ratio', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); - y = y + increment; - printLabel((currentRecord.hitRatio * 100).toFixed(2) + ' %', X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - y = y + increment; - printLabel('ROI', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); - y = y + increment; - printLabel((currentRecord.ROI * 100).toFixed(2) + ' %', X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - y = y + increment; - printLabel('Periods', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); - y = y + increment; - printLabel(currentRecord.periods, X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - y = y + increment; - printLabel('Days', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); - y = y + increment; - printLabel(currentRecord.days, X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - y = y + increment; - printLabel('Anualized Rate of Return', X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); - y = y + increment; - printLabel((currentRecord.anualizedRateOfReturn * 100).toFixed(2) + ' %', X_AXIS, frameTitleHeight + frameBodyHeight * y, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction); - - } -} diff --git a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/this.plotter.config.json b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/this.plotter.config.json deleted file mode 100644 index d5ff7028d..000000000 --- a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/this.plotter.config.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "displayName": "Plotters Trading Simulation", - "codeName": "PlottersTradingSimulation", - "dataMine": "Masters", - "modules": [ - { - "codeName": "TradingSimulation", - "moduleName": "TradingSimulation", - "description": "Plots Bollinger Records.", - "profilePicture": "TradingSimulation.png", - "panels": [ - { - "codeName": "TradingSimulationPanel", - "moduleName": "TradingSimulationPanel", - "event": "Current Record Changed" - } - ] - }, - { - "codeName": "Conditions", - "moduleName": "Conditions", - "description": "Plots Simulation Conditions.", - "profilePicture": "Conditions.png", - "panels": [] - }, - { - "codeName": "Strategies", - "moduleName": "Strategies", - "description": "Plots Strategies.", - "profilePicture": "Strategies.png", - "panels": [ - ] - }, - { - "codeName": "Trades", - "moduleName": "Trades", - "description": "Plots Trades.", - "profilePicture": "Trades.png", - "panels": [ - ] - }, - { - "codeName": "SimulationExecution", - "moduleName": "SimulationExecution", - "description": "Plots Simulation Execution.", - "profilePicture": "SimulationExecution.png", - "panels": [ - { - "codeName": "SimulationExecutionPanel", - "moduleName": "SimulationExecutionPanel", - "event": "Current Record Changed" - } - ] - } - ] -} \ No newline at end of file diff --git a/README.md b/README.md index 4ef969ee7..2a67cdb97 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,9 @@ Touch base with the Community and talk to the admins in our [Community Telegram] # Superalgos -Superalgos provides a toolbox with several integrated tools to design, test, and deploy automated crypto trading strategies, as well as research crypto markets. You can use Superalgos to download market data from crypto exchanges, make arbitrary calculations (including indicators), plot the results of your calculations over the charts, design trading strategies in a visual scripting environment that does not require coding, while still empowering developers by allowing it, and more. +Superalgos provides a toolbox with several integrated tools to design, test, and deploy automated crypto trading strategies, as well as research crypto markets. You can use Superalgos to download market data from crypto exchanges, make arbitrary calculations (including indicators), plot the results of your calculations over the charts, design trading strategies in a visual scripting environment that does not require coding, while still empowering developers by allowing it, and more. -You may use individual features or the whole package, and reuse all information gathered and generated—standardized in multiple time frames, stored in text files sorted by exchange/market—as input for your own software/systems. +You may use individual features or the whole package, and reuse all information gathered and generated—standardized in multiple time frames, stored in text files sorted by exchange/market—as input for your own software/systems. Superalgos runs on your computer, it is free and open source. @@ -16,21 +16,9 @@ Superalgos runs on your computer, it is free and open source. Please refer to the [documentation site](https://docs.superalgos.org/). -## Codebase and Development Environment - -To build each release, Superalgos used to draw code from several repositories within the Superalgos Github organization, as well as from organizations belonging to different teams. This has changed. - -* The ```develop``` branch in the [Superalgos repository](https://github.com/Superalgos/Superalgos/) now features the latest codebase and development environment (Beta 6). - -* The ```master``` branch now features the latest stable version of Superalgos (Beta 5). - -The codebase is distributed with the release and constitutes a fully functional development environment right out of the package. The system runs uncompiled on the actual code (```node run``` from the root folder). - -It is highly recommended to follow the Getting Started guide in the [documentation](https://docs.superalgos.org/) as it not only gets you up and running but gives you a quick tour so that you may grasp the basics most efficiently. - ## Contributing -Your help may be essential to the project's success and we want you in! +Your help may be essential to the project's success and we want you in! [There is something you may do](https://docs.superalgos.org/contributing-to-superalgos.html) to help the project regardless of what your skillset may be. We appreciate all contributions! diff --git a/Simple Workspace.json b/Simple Workspace.json deleted file mode 100644 index 5fbcc71c4..000000000 --- a/Simple Workspace.json +++ /dev/null @@ -1 +0,0 @@ -{"type":"Workspace","name":"Simple Workspace","rootNodes":[{"type":"Network","name":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","code":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34247\", \n\"webSocketsPort\": \"8080\"\n}","dataStorage":{"type":"Data Storage","name":"New Data Storage","sessionIndependentData":{"type":"Session Independent Data","name":"New Session Independent Data","exchangeDataProducts":[{"type":"Exchange Data Products","name":"Binance","singleMarketData":[{"type":"Single Market Data","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"dd7c8795-bb24-4438-9d77-b37a9000ad7f","savedPayload":{"position":{"x":23371.06171982374,"y":29755.463402452675},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"98e6c917-f4b7-4b71-9215-de3ccaf3dc0c","savedPayload":{"position":{"x":23309.87200716484,"y":29688.22822148878},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"1d7dd537-5f6f-4eb2-8e56-ddba0aef720f","savedPayload":{"position":{"x":23255.334304082426,"y":29617.63717135938},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"221c8d22-8a7f-4014-a7ed-0bafc886b123","savedPayload":{"position":{"x":23206.887565649668,"y":29543.756335083526},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"6929ebe7-6486-4299-add5-ed0282500d91","savedPayload":{"position":{"x":23164.409635478434,"y":29466.781583461365},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"4a3ed8eb-a73e-4fb4-835a-681cf47d7373","savedPayload":{"position":{"x":23127.954272621846,"y":29387.01865408159},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"5ffc6a67-e33b-422b-8e36-f9711f93c723","savedPayload":{"position":{"x":23097.639192435097,"y":29304.845223939745},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"48f7953c-f62d-4292-b042-d1ac05f8f80f","savedPayload":{"position":{"x":23073.59312544535,"y":29220.684709168152},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"3b9a3c93-6d41-440e-89a2-2fd1b2dde603","savedPayload":{"position":{"x":23055.93092946497,"y":29134.989347999064},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"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","id":"70401ea0-3fed-4e40-8bba-a1e5adce9b8c","savedPayload":{"position":{"x":23044.74149094714,"y":29048.229467347366},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"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","id":"06ac8eb7-8b14-42b1-9e2e-466280ade032","savedPayload":{"position":{"x":23040.082038163353,"y":28960.886298345627},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"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":"Popular EMAs","id":"014bba70-64d4-4035-b06d-145ee9b4c54c","savedPayload":{"position":{"x":23042.003950887687,"y":28873.448853567796},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"768cc06c-6fdf-491a-a741-5e08f0e25e38","savedPayload":{"position":{"x":23050.466878168714,"y":28786.41214682909},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"40794460-b815-498f-a245-e677de0eed86","savedPayload":{"position":{"x":23065.417000807633,"y":28700.259480577417},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"7ccbd0c1-c804-47e3-9314-14cbb756c806","savedPayload":{"position":{"x":23086.77070450453,"y":28615.471649716354},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"728d6f08-086f-41ba-9126-30ec56a45ea5","savedPayload":{"position":{"x":23114.406609825463,"y":28532.522286741372},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"1510fd36-633e-40a7-adbe-680660d64bd0","savedPayload":{"position":{"x":23148.169366016973,"y":28451.87541760758},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"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":"Base5 SMAs","id":"2404b1eb-c7c9-46e7-b22a-93cfcc3739f4","savedPayload":{"position":{"x":23187.86902671619,"y":28373.982218753026},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"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":"Bollinger Channels","id":"d83476c3-2f0b-4d4a-abb2-0e47ed0a421d","savedPayload":{"position":{"x":23233.282704515826,"y":28299.27861555026},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"0428f20b-9620-480e-a531-dbb2e5f59ef4","savedPayload":{"position":{"x":23284.155499041935,"y":28228.182645022604},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"fcfec9fa-1a0d-4285-9fad-4a23409f88ed","savedPayload":{"position":{"x":23340.20207992671,"y":28161.092192953925},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"08f223a8-9707-4c45-b638-1fe0e4a2b053","savedPayload":{"position":{"x":23401.108168726983,"y":28098.382682167503},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"66f1a9be-fe96-48c3-91e4-500c6e246423","savedPayload":{"position":{"x":23466.532371137244,"y":28040.405039765592},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"e432c706-cbcd-4af0-b23c-b18e5b29377a","savedPayload":{"position":{"x":23536.108013736324,"y":27987.483666562868},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"7f2dfd8e-de4a-4bd1-8d34-27581f1a3ed8","savedPayload":{"position":{"x":23609.445247280004,"y":27939.914692361803},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"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","id":"595d148f-6cdf-48d3-ab8f-23fba0052631","savedPayload":{"position":{"x":23686.133170127676,"y":27897.964247876364},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"2045098a-e9b4-4409-9fd9-ee7285d9b7cf","savedPayload":{"position":{"x":23765.742167285152,"y":27861.867050486988},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"295bd09d-e868-4e8b-9944-39bf6e0d7951","savedPayload":{"position":{"x":23847.826269301095,"y":27831.825012109308},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"ba6f23d4-c2e7-41b4-88a0-e14ebb34e21c","savedPayload":{"position":{"x":23931.925677158062,"y":27808.006188376137},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"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"}}},{"type":"Data Product","name":"Resistances","id":"0669d924-aace-46d1-b126-ccced8fd33cf","savedPayload":{"position":{"x":24017.569303661556,"y":27790.54375284746},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Resistances","id":"7a734501-a0fb-4305-803e-7e95d477c513"}}},{"type":"Data Product","name":"Supports","id":"5e7a0e50-e6ed-4106-8025-8b35ad6c597c","savedPayload":{"position":{"x":24104.277428229234,"y":27779.53533354118},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Supports","id":"bc3c43de-6312-47d4-ae3d-0c95c1b039e0"}}},{"type":"Data Product","name":"Basic Candles","id":"4e14ecf7-3eaa-48ce-91fb-c6e1c806fdf8","savedPayload":{"position":{"x":24191.564364245627,"y":27775.04237575126},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Basic Candles","id":"7519e3d8-b5ec-47eb-84c9-8c9262c9efc6"}}},{"type":"Data Product","name":"One-Candle Patterns","id":"e11730aa-5ffb-42bd-8bfb-56e7fa36cd68","savedPayload":{"position":{"x":24278.93933041822,"y":27777.116783791076},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"One-Candle Patterns","id":"f3c0863c-ac0c-4fc0-b9ee-5f0f2bd722ea"}}},{"type":"Data Product","name":"Two-Candles Patterns","id":"3d5a0163-c683-43d8-b344-ec1113c4726c","savedPayload":{"position":{"x":24365.90657030612,"y":27785.72214467975},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Two-Candles Patterns","id":"29283392-6a01-4acd-8f41-328e92281980"}}},{"type":"Data Product","name":"Three-Candles Patterns","id":"86ebf7ee-0102-4dc1-a597-0f0df3e07df8","savedPayload":{"position":{"x":24451.982717495048,"y":27800.80446571127},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Three-Candles Patterns","id":"1b6f79d8-d1ba-49e5-a808-42f71fba5657"}}},{"type":"Data Product","name":"ATR - RMA","id":"9a883744-bbec-4bf8-825a-a48a4f45cfc1","savedPayload":{"position":{"x":24536.68714517365,"y":27822.28069113179},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"ATR - RMA","id":"660570d1-36e0-4099-817c-6c8a29b32689"}}},{"type":"Data Product","name":"ATR - SMA","id":"b2693a25-7acc-447e-8df9-b02cf457f07b","savedPayload":{"position":{"x":24619.546468804238,"y":27850.029809260923},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"ATR - SMA","id":"d83ffb9c-d01c-49eb-991d-3dc31baac747"}}},{"type":"Data Product","name":"ROC 76","id":"bbe5aec6-3bd1-4cbe-8640-2044b0443110","savedPayload":{"position":{"x":24700.097142835675,"y":27883.896262395498},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"ROC 76","id":"9c2b6696-872f-44a4-b6b2-ab15a0c8541a"}}},{"type":"Data Product","name":"ROC 32","id":"020f3ef7-9b8e-4e2e-9b88-e57ca7ee8435","savedPayload":{"position":{"x":24777.88874575228,"y":27923.689541797},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"ROC 32","id":"ff5aacca-1783-4247-9702-ee5dd01fb3ff"}}},{"type":"Data Product","name":"ROC 9","id":"bf5e9f22-9be9-4d8d-8262-c6074b81e629","savedPayload":{"position":{"x":24852.487587166124,"y":27969.184242490734},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"ROC 9","id":"83bfd082-1c10-4c42-be63-379a2100cc0e"}}},{"type":"Data Product","name":"Stoch-14-3-3","id":"7861fc9f-43b9-4f7c-8083-4d0d0dc5848a","savedPayload":{"position":{"x":24936.427714219786,"y":28030.87648882813},"targetPosition":{"x":24208.266379798588,"y":28943.066572350555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stoch-14-3-3","id":"393dc97b-76ee-409a-9b8f-f264ed652b0b"}}}],"id":"cbdd3605-b905-453f-9ecb-e986cb2729f9","savedPayload":{"position":{"x":24208.266379798588,"y":28943.066572350555},"targetPosition":{"x":25075.03782491874,"y":29723.223627908737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}}],"id":"7f87ecc6-8dd3-42e9-9217-1579b64aae75","savedPayload":{"position":{"x":25074.634937019582,"y":29722.87687160602},"targetPosition":{"x":25508.31642796674,"y":30113.362100209542},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"bf04ccea-266d-4115-b50e-fefdf29b873a","savedPayload":{"position":{"x":25508.31642796674,"y":30113.362100209542},"targetPosition":{"x":25941.94637075935,"y":30503.7760398818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"i"}}},"sessionBasedData":{"type":"Session Based Data","name":"New Session Based Data","exchangeSessions":[{"type":"Exchange Sessions","name":"Binance","sessionReferences":[{"type":"Session Reference","name":"Back WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"573fb46f-78d2-4bf3-ad11-e42d2531d53e","savedPayload":{"position":{"x":40971.62547458223,"y":28704.67815778764},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"39d7a06d-5aad-4b03-8778-e4df8dacc825","savedPayload":{"position":{"x":40739.2805936536,"y":28612.68448755448},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"7af9d35c-7464-4ed5-9ee6-ccf7a9943894","savedPayload":{"position":{"x":40648.47472250254,"y":28380.33960662585},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"82b46974-7a93-4066-a3b7-378b42710364","savedPayload":{"position":{"x":40749.374350272024,"y":28158.088482315645},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"109e30d5-c839-4e20-8744-2e4dc002f3a8","savedPayload":{"position":{"x":40971.62547458223,"y":28380.33960662585},"targetPosition":{"x":41034.51136563778,"y":28696.544935681453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"3792a579-2f2c-4c29-9cb1-05e2683db5da","savedPayload":{"position":{"x":25598.923749057652,"y":28711.764679557487},"targetPosition":{"x":26184.379330131018,"y":29362.007651139225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"f32f1cdc-425f-4193-a43b-be9312c74234"}}},{"type":"Session Reference","name":"Paper WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"63636068-307e-4cea-b31f-f47e106cea2c","savedPayload":{"position":{"x":41557.474267378886,"y":28704.538380895512},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"20848048-8efb-47b1-aaf0-789d2f6c5b1d","savedPayload":{"position":{"x":41328.36437304013,"y":28614.669001956987},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"87b74841-4f6a-4658-b01b-7feb254b5d2f","savedPayload":{"position":{"x":41238.701960314706,"y":28385.55910761823},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"5e28998c-b35f-4cc0-9fd6-8ee5f5714545","savedPayload":{"position":{"x":41328.657032916315,"y":28156.74187315566},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"12cd1cb4-f163-4d1b-8955-cae6904831c7","savedPayload":{"position":{"x":41557.474267378886,"y":28385.55910761823},"targetPosition":{"x":41536.37709492533,"y":28707.266395142844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"5f2e9d8a-f1df-4efd-8232-718818cab630","savedPayload":{"position":{"x":26093.003519281363,"y":28491.783569682495},"targetPosition":{"x":26184.379330131018,"y":29362.007651139225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"2198ec50-3d31-43b7-a57d-e386bef38a93"}}},{"type":"Session Reference","name":"Live Trading WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"af19e56c-eaf1-4b0b-93f9-74b9ac1843c2","savedPayload":{"position":{"x":42124.2954678251,"y":28863.166820214137},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"30ac52a8-ee50-439c-83c8-df75ab49374a","savedPayload":{"position":{"x":41899.82203310804,"y":28765.34236295704},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"c35fa0be-6e51-4d14-9a52-6b0174cc1aab","savedPayload":{"position":{"x":41803.41381185934,"y":28540.86892823998},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"6a059555-2555-4c7f-a722-2ab4ca0440c5","savedPayload":{"position":{"x":41897.44019113757,"y":28314.01365155245},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"863885a8-2351-4b29-9f2e-ae3aeda223fc","savedPayload":{"position":{"x":42124.2954678251,"y":28540.86892823998},"targetPosition":{"x":42020.66210112073,"y":28846.1629818523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"ee314903-8ee9-4068-8a90-9452c460b910","savedPayload":{"position":{"x":26621.815570035997,"y":28604.216203591706},"targetPosition":{"x":26184.379330131018,"y":29362.007651139225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"5335fd67-ebdc-4cfd-936d-b76af957713e"}}},{"type":"Session Reference","name":"Fwd WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"5919a710-a950-4049-9605-3f127b7fac6b","savedPayload":{"position":{"x":42492.63963403888,"y":28500.7397102676},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"c7030a88-152f-421c-8b32-66f3c222286a","savedPayload":{"position":{"x":42710.36396962775,"y":28492.07047492605},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"f4b18249-5044-4b34-83f7-3cedbbe939c5","savedPayload":{"position":{"x":42891.7169300037,"y":28613.377753949273},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"25db80e6-c4cf-4568-98d3-0cba83625ece","savedPayload":{"position":{"x":42967.139262708275,"y":28818.147267745622},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"9b6e94d5-442d-4882-beb6-6b616adb24a7","savedPayload":{"position":{"x":42636.198275976094,"y":28799.555013396635},"targetPosition":{"x":42436.14135357761,"y":29099.04809298164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"3892574a-ebe9-4d4d-8e79-02e6f0900c44","savedPayload":{"position":{"x":26983.70100916551,"y":29006.098744413946},"targetPosition":{"x":26184.379330131018,"y":29362.007651139225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Forward Testing Session","name":"Fwd WHB","id":"0e7edb98-38ff-4516-89a1-188030989ddc"}}}],"id":"5b3343c9-3fab-46ec-92e3-9c074759a112","savedPayload":{"position":{"x":26184.15550450161,"y":29362.11172068774},"targetPosition":{"x":26062.983193324853,"y":29932.998941588485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"29ca14e5-dabe-470a-be64-ed7996bd1e55","savedPayload":{"position":{"x":26062.983193324853,"y":29932.998941588485},"targetPosition":{"x":25941.94637075935,"y":30503.7760398818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0726a9e4-23b6-4d27-a8de-e91a9665a8ba","savedPayload":{"position":{"x":25942.051900287464,"y":30503.613795575635},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"d"}}},"dataMining":{"type":"Data Mining","name":"New Data Mining","exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Masters BTC/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"b1a110d4-ac93-402d-8465-a35a835d0c22","savedPayload":{"position":{"x":25715.92656901148,"y":29232.66217900514},"targetPosition":{"x":25986.009041425557,"y":29344.30965590297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"fa3aae08-61b3-4a35-af20-c1242b9954c8","savedPayload":{"position":{"x":25986.009041425557,"y":29344.30965590297},"targetPosition":{"x":26256.170548319333,"y":29455.86910148335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"e61db3ab-b80d-4575-8da1-5598e0b1b525","savedPayload":{"position":{"x":26256.170548319333,"y":29455.86910148335},"targetPosition":{"x":26526.552274142003,"y":29567.35699234963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"160f8edd-29cf-40c2-bb21-5f569d97f9d1","savedPayload":{"position":{"x":26526.552274142003,"y":29567.35699234963},"targetPosition":{"x":27066.46739171246,"y":29790.172964033307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"22df3948-2a73-4ca6-a927-4b722dbb27dc","savedPayload":{"position":{"x":25939.8267261243,"y":28878.57231820106},"targetPosition":{"x":26193.060472964273,"y":29024.67158867834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"5324b18d-e2b0-495e-94a0-cfc3f3473766","savedPayload":{"position":{"x":26193.060472964273,"y":29024.67158867834},"targetPosition":{"x":26446.300152725507,"y":29170.709057346518},"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","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"d7e0c235-4024-4888-86ba-32cf5c73b852","savedPayload":{"position":{"x":26007.879592203113,"y":28411.825910002688},"targetPosition":{"x":26227.026441256985,"y":28791.21963495391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"02adb2d3-1740-4f42-975e-e0365e308b97","savedPayload":{"position":{"x":26227.026441256985,"y":28791.21963495391},"targetPosition":{"x":26446.300152725507,"y":29170.709057346518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"ccf1813f-31d2-4359-88ce-8c8e6132f222","savedPayload":{"position":{"x":26446.300152725507,"y":29170.709057346518},"targetPosition":{"x":26653.277258805567,"y":29377.383777322084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b55a2f7e-354e-47ce-8986-a4a0079efe2b","savedPayload":{"position":{"x":26653.277258805567,"y":29377.383777322084},"targetPosition":{"x":27066.46739171246,"y":29790.172964033307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"89bf947b-a245-4aad-a2fa-472ad6f8fd2e","savedPayload":{"position":{"x":26375.103316490437,"y":28516.404125977297},"targetPosition":{"x":26553.027670627976,"y":28748.411538508055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"df74508f-a106-4190-83ae-8c43455cd889","savedPayload":{"position":{"x":26553.027670627976,"y":28748.411538508055},"targetPosition":{"x":26730.949331437758,"y":28980.34563260746},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"441d958c-4ebf-4cc5-b49e-cdaf3802efc3","savedPayload":{"position":{"x":26616.516683190002,"y":28111.310893797567},"targetPosition":{"x":26673.713618903057,"y":28545.749400012595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"daf27799-58cb-480a-832b-4e3404882961","savedPayload":{"position":{"x":26673.713618903057,"y":28545.749400012595},"targetPosition":{"x":26730.949331437758,"y":28980.34563260746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"b1b31e7e-12f8-45fd-9508-cb82030d7507","savedPayload":{"position":{"x":26730.949331437758,"y":28980.34563260746},"targetPosition":{"x":26842.90144004168,"y":29250.60040329165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"52b4b8db-0336-423c-9343-5353225b4bfb","savedPayload":{"position":{"x":26842.90144004168,"y":29250.60040329165},"targetPosition":{"x":27066.46739171246,"y":29790.172964033307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f7457cf6-bcdc-48e1-b6e2-b45de382bc37","savedPayload":{"position":{"x":26915.46586332855,"y":28348.60373638434},"targetPosition":{"x":26990.96951155539,"y":28631.086837511877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"5a6b7843-090c-4b3b-9be4-ed8c8d1f6935","savedPayload":{"position":{"x":26990.96951155539,"y":28631.086837511877},"targetPosition":{"x":27066.46890113344,"y":28913.502877175913},"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":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"e78c5425-7d77-47c5-bb63-db88cad6e060","savedPayload":{"position":{"x":27293.093598824988,"y":28066.777956822272},"targetPosition":{"x":27179.81185217895,"y":28490.0569352028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"4c5ed30f-d600-44e2-ac14-33ce0528178e","savedPayload":{"position":{"x":27179.81185217895,"y":28490.0569352028},"targetPosition":{"x":27066.46890113344,"y":28913.502877175913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"b4fb4df9-2d6e-4c0a-8eb5-d1bd78232d0d","savedPayload":{"position":{"x":27066.46890113344,"y":28913.502877175913},"targetPosition":{"x":27066.462311651743,"y":29206.078091101994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"aacffa8c-5a19-423f-b551-0f9a5c46a628","savedPayload":{"position":{"x":27066.462311651743,"y":29206.078091101994},"targetPosition":{"x":27066.46739171246,"y":29790.172964033307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"7af918d3-d9a4-4553-9b3d-12224b4ad938","savedPayload":{"position":{"x":27478.67274433146,"y":28400.610006268354},"targetPosition":{"x":27440.413831203023,"y":28690.47440012945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"0d8ca3f1-31af-40e4-8f43-4dacc8950dff","savedPayload":{"position":{"x":27440.413831203023,"y":28690.47440012945},"targetPosition":{"x":27402.136886386874,"y":28980.279149282884},"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":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f11fe52f-ba3f-486d-93f2-a6b82fa67c2d","savedPayload":{"position":{"x":27935.75343801085,"y":28284.99453574767},"targetPosition":{"x":27669.05890225842,"y":28632.568789376724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"ba74160c-2b59-497a-b895-4ddade53f72e","savedPayload":{"position":{"x":27669.05890225842,"y":28632.568789376724},"targetPosition":{"x":27402.136886386874,"y":28980.279149282884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"3a93a6a1-0d2e-475b-874e-8784dc4b6c78","savedPayload":{"position":{"x":27402.136886386874,"y":28980.279149282884},"targetPosition":{"x":27290.067866953665,"y":29250.553293598372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"9843b9dd-ff8e-4cef-b063-730b0317420d","savedPayload":{"position":{"x":27290.067866953665,"y":29250.553293598372},"targetPosition":{"x":27066.46739171246,"y":29790.172964033307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"da37aa9d-a68c-49eb-be66-5fcc1a13ab69","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"abae0d8d-c44c-4825-b6ad-aabad604ba2d","savedPayload":{"position":{"x":27893.59155611729,"y":28963.795345898103},"targetPosition":{"x":27686.73138916544,"y":29170.499723843357},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"f33858b9-8561-4f70-ba70-d8d168786321","savedPayload":{"position":{"x":27686.73138916544,"y":29170.499723843357},"targetPosition":{"x":27479.690816223054,"y":29377.275678085207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"64e8f70e-829c-47cd-b933-f4e4dd0c90fc","savedPayload":{"position":{"x":27479.690816223054,"y":29377.275678085207},"targetPosition":{"x":27066.46739171246,"y":29790.172964033307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Resistances & Supports","bot":{"type":"Indicator Bot Instance","name":"Resistances & Supports","code":" {\n \"repo\": \"\"\n }","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"5e0f86e6-2a43-49c2-a347-7203f0867c2d","savedPayload":{"position":{"x":28572.216674568095,"y":28922.312740044177},"targetPosition":{"x":28224.628601696666,"y":29188.89751710679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"f9f341a9-ba04-4c03-8f3b-249e72681562","savedPayload":{"position":{"x":28224.628601696666,"y":29188.89751710679},"targetPosition":{"x":27876.861968732992,"y":29455.5810596484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"5d9b2729-43fb-4e7e-aa4f-b8477c424e51"}}},{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"9974d57e-33ac-4fcf-ad75-35a8c4dc549e","savedPayload":{"position":{"x":28456.529313045008,"y":29379.68900459489},"targetPosition":{"x":28166.711551186167,"y":29417.66692604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"9c93e98f-e166-4c8d-a9d7-08ada9c68eeb","savedPayload":{"position":{"x":28166.711551186167,"y":29417.66692604384},"targetPosition":{"x":27876.861968732992,"y":29455.5810596484},"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":"be19d91b-9337-4f84-96b3-f4e54ea12df5"}}}],"id":"88a4c3b6-e148-47e8-91b2-bf72bb167dc5","savedPayload":{"position":{"x":27876.861968732992,"y":29455.5810596484},"targetPosition":{"x":27606.45005893827,"y":29567.186659241605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c9dc449-6a37-4f34-8984-13aafed439fc","savedPayload":{"position":{"x":27606.45005893827,"y":29567.186659241605},"targetPosition":{"x":27066.46739171246,"y":29790.172964033307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ea242bf3-f7e6-431a-ab41-e022cb3ac6df","savedPayload":{"position":{"x":27066.654357089337,"y":29788.910814452942},"targetPosition":{"x":27066.72999045144,"y":30372.90511719708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta BTC/USDT","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"08b275d2-c921-49d0-a88d-5669df5c17e0","savedPayload":{"position":{"x":26213.962501375994,"y":28537.058246073513},"targetPosition":{"x":26466.91701226882,"y":28682.99448138759},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"a5449b25-a98e-4fa4-87eb-5f60b967770a","savedPayload":{"position":{"x":26466.91701226882,"y":28682.99448138759},"targetPosition":{"x":26719.783387497035,"y":28828.901037458687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"287d4ba4-1404-4256-bdbb-cf2c970e5269","savedPayload":{"position":{"x":26719.714861625995,"y":27662.051817775493},"targetPosition":{"x":26719.72671348929,"y":28245.397180744993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"05fb2b7e-6704-4f05-b12b-b590101e5ca9","savedPayload":{"position":{"x":26719.72671348929,"y":28245.397180744993},"targetPosition":{"x":26719.783387497035,"y":28828.901037458687},"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":"f6dc278d-5a5c-4cba-b513-f0660a9f492d","savedPayload":{"position":{"x":26719.783387497035,"y":28828.901037458687},"targetPosition":{"x":27011.5618131025,"y":29334.173033993873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a15b5f86-52c2-4a22-9dd9-311d981601ba","savedPayload":{"position":{"x":27011.5618131025,"y":29334.173033993873},"targetPosition":{"x":27303.86744721087,"y":29839.931047973212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f8ea11d8-7b32-4ed0-968d-a20df0b49d7f","savedPayload":{"position":{"x":27188.533293867833,"y":28145.140769934947},"targetPosition":{"x":27307.108655529126,"y":28411.938907087995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"e32509df-e962-4760-991e-6533a398c58e","savedPayload":{"position":{"x":27307.108655529126,"y":28411.938907087995},"targetPosition":{"x":27425.637471040533,"y":28678.65983562112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"0d4140a1-5e1f-4e2e-b540-582474e41889","savedPayload":{"position":{"x":28111.395691285285,"y":27734.52746778035},"targetPosition":{"x":27768.504144537997,"y":28206.515119114738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"96466f5a-6dd9-4db9-b30c-1c4622076d8a","savedPayload":{"position":{"x":27768.504144537997,"y":28206.515119114738},"targetPosition":{"x":27425.637471040533,"y":28678.65983562112},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"fffaf3df-a88c-4d45-bb52-d02b818502b5","savedPayload":{"position":{"x":27425.637471040533,"y":28678.65983562112},"targetPosition":{"x":27364.741127294605,"y":29258.98378457244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"53fd5de3-7d70-4eb7-8dd6-976d1e188d12","savedPayload":{"position":{"x":27364.741127294605,"y":29258.98378457244},"targetPosition":{"x":27303.86744721087,"y":29839.931047973212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"78a80ff6-f4f2-4680-9a7b-65225144dd94","savedPayload":{"position":{"x":28206.946024504796,"y":28401.281426077738},"targetPosition":{"x":28146.132073601777,"y":28686.88088416765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"301a8d2c-f659-4d4b-9906-40177bdc1256","savedPayload":{"position":{"x":28146.132073601777,"y":28686.88088416765},"targetPosition":{"x":28085.339559512995,"y":28972.38919793993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"a9291a08-1ba1-436b-b491-e759cc8fb7d1","savedPayload":{"position":{"x":29195.314377204453,"y":28611.823626843787},"targetPosition":{"x":28640.37318613151,"y":28792.055281743545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"19fff031-07c3-4836-9bca-1570eb69a931","savedPayload":{"position":{"x":28640.37318613151,"y":28792.055281743545},"targetPosition":{"x":28085.339559512995,"y":28972.38919793993},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"a81bcaf4-6c99-4b6a-8291-5fa657ae2c17","savedPayload":{"position":{"x":28085.339559512995,"y":28972.38919793993},"targetPosition":{"x":27694.817287178204,"y":29405.964458555027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e2997a2-13ae-464c-b980-9ec46584db3b","savedPayload":{"position":{"x":27694.817287178204,"y":29405.964458555027},"targetPosition":{"x":27303.86744721087,"y":29839.931047973212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f6802028-335d-4e31-90a7-9d608199aafb","savedPayload":{"position":{"x":28880.557622286065,"y":29207.511810348526},"targetPosition":{"x":28663.39901833756,"y":29402.70411124385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"8540fa7a-f4b2-4e97-923c-e8acd00bbb9f","savedPayload":{"position":{"x":28663.39901833756,"y":29402.70411124385},"targetPosition":{"x":28446.303948311404,"y":29597.783760649523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"51d58c12-ad1f-450e-94fd-ea0f8ad08769","savedPayload":{"position":{"x":29556.27049917393,"y":29958.226888406054},"targetPosition":{"x":29001.36039732282,"y":29778.043348052775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"c655562c-3839-42e0-9ea6-982629405d33","savedPayload":{"position":{"x":29001.36039732282,"y":29778.043348052775},"targetPosition":{"x":28446.303948311404,"y":29597.783760649523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"f84cf5d6-034c-42db-b197-e95c0228efc9","savedPayload":{"position":{"x":28446.303948311404,"y":29597.783760649523},"targetPosition":{"x":27875.404433447202,"y":29718.770964172774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"385443d2-f17f-459c-b603-58f42e5c366f","savedPayload":{"position":{"x":27875.404433447202,"y":29718.770964172774},"targetPosition":{"x":27303.86744721087,"y":29839.931047973212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"2a5cc26f-cb88-4743-b412-c33acb6aa0fb","savedPayload":{"position":{"x":27409.956613353545,"y":29900.42227051082},"targetPosition":{"x":27066.72999045144,"y":30372.90511719708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Buddha BTC/USDT","tasks":[{"type":"Task","name":"Candle Patterns","bot":{"type":"Indicator Bot Instance","name":"Candle Patterns","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Patterns Multi-Period-Market","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"db4b89d0-10af-4bde-9055-daa8ce7f16f4","savedPayload":{"position":{"x":29123.958593313102,"y":29399.640468958878},"targetPosition":{"x":28928.43024330293,"y":29616.564276093966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"6afbb9c2-b0f0-44b7-95e7-b7b5468cc1f4","savedPayload":{"position":{"x":28928.43024330293,"y":29616.564276093966},"targetPosition":{"x":28732.91665554003,"y":29833.368976928956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"3aaf9f93-0516-4b3d-9772-44be91615154"}}},{"type":"Indicator Process Instance","name":"Candle Patterns Multi-Period-Daily","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"96d74290-d474-49ec-9d92-eac2a3281231","savedPayload":{"position":{"x":29874.832796904408,"y":30075.950054173612},"targetPosition":{"x":29303.924558362356,"y":29954.684032762092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"743650af-a6cd-47fc-b0a1-41de65a6e632","savedPayload":{"position":{"x":29303.924558362356,"y":29954.684032762092},"targetPosition":{"x":28732.91665554003,"y":29833.368976928956},"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":"8a7ce3e2-20a1-496b-86bf-2d7842f88536"}}}],"id":"a9c80bea-5545-423f-b5d7-f2f65164d208","savedPayload":{"position":{"x":28732.91665554003,"y":29833.368976928956},"targetPosition":{"x":28177.67479449994,"y":30013.465030656134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2c112f81-7eae-4382-8094-93c545119bb0","savedPayload":{"position":{"x":28177.67479449994,"y":30013.465030656134},"targetPosition":{"x":27622.052725021094,"y":30193.598527443806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fea766d7-9514-415b-aa35-364742aea91d","savedPayload":{"position":{"x":27622.173127511764,"y":30192.51413189961},"targetPosition":{"x":27066.72999045144,"y":30372.90511719708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task Manager","name":"Alpha BTC/USDT","tasks":[{"type":"Task","name":"ATR","bot":{"type":"Indicator Bot Instance","name":"ATR","code":" {\n\"repo\": \"ATR-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"ATR Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"31a00dff-4a4e-461f-afc5-22e01f05debb","savedPayload":{"position":{"x":28980.8860607955,"y":29534.980752663985},"targetPosition":{"x":28821.64298682056,"y":29779.82417109748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"b4fef0dd-491b-4c17-89e7-a7e6e3d91c1c","savedPayload":{"position":{"x":28821.64298682056,"y":29779.82417109748},"targetPosition":{"x":28662.41496747156,"y":30024.55313649711},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"83a07439-ad71-463a-9727-5f43ad0b03d2"}}},{"type":"Indicator Process Instance","name":"ATR Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"fdffb992-1afd-4cd7-b80d-412db04a5c75","savedPayload":{"position":{"x":29828.3602608753,"y":30085.4304414098},"targetPosition":{"x":29245.446108265784,"y":30054.996697251812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"13608070-4894-4ad0-8de9-dc518a580b06","savedPayload":{"position":{"x":29245.446108265784,"y":30054.996697251812},"targetPosition":{"x":28662.41496747156,"y":30024.55313649711},"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":"61dde091-7c09-4384-ab2d-1fec0dbef7c5"}}}],"id":"9eb6e7bc-568f-4eff-9b7c-0a70854610bd","savedPayload":{"position":{"x":28662.41496747156,"y":30024.55313649711},"targetPosition":{"x":28142.157498320856,"y":30289.350689464318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ca5575ce-51a1-4fe7-a1b5-9a1b0e4c7b6d","savedPayload":{"position":{"x":28142.157498320856,"y":30289.350689464318},"targetPosition":{"x":27621.614663189386,"y":30554.309280959973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"ROC","bot":{"type":"Indicator Bot Instance","name":"ROC","code":" {\n\"repo\": \"ROC-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"ROC Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"fa92ef3f-79d9-4d75-8d25-84ebc560726f","savedPayload":{"position":{"x":29303.712639832975,"y":30794.30992413088},"targetPosition":{"x":29017.984676737804,"y":30854.830443946496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"43b86883-7952-442b-8e4b-8bf55d331dfb","savedPayload":{"position":{"x":29017.984676737804,"y":30854.830443946496},"targetPosition":{"x":28732.318414200978,"y":30915.30527293223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"a2a141ba-08ed-4f30-9c7d-f811c6a7c571"}}},{"type":"Indicator Process Instance","name":"ROC Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"542b6590-c4f5-4d69-9118-ec6ce4abdb4d","savedPayload":{"position":{"x":29513.513583344105,"y":31782.802364291005},"targetPosition":{"x":29122.954608270946,"y":31349.085675675033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"cfa417e6-c91a-4c7a-acab-0cce63e986e4","savedPayload":{"position":{"x":29122.954608270946,"y":31349.085675675033},"targetPosition":{"x":28732.318414200978,"y":30915.30527293223},"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":"eea3cb55-83e5-400f-acc4-b71f5631d351"}}}],"id":"26491b17-beb5-4280-af2f-01f152fd85a7","savedPayload":{"position":{"x":28732.318414200978,"y":30915.30527293223},"targetPosition":{"x":28177.141224013078,"y":30734.879990298956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a0bad8b6-2bfa-4962-a998-92b843824f38","savedPayload":{"position":{"x":28177.141224013078,"y":30734.879990298956},"targetPosition":{"x":27621.614663189386,"y":30554.309280959973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Stochastic","bot":{"type":"Indicator Bot Instance","name":"Stochastic","code":" {\n\"repo\": \"Stoch-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Stochastic Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"def60232-d1e3-446e-bf02-8d5428557090","savedPayload":{"position":{"x":28641.23169576775,"y":31913.233326447007},"targetPosition":{"x":28396.352618178258,"y":31754.113754247704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"dedd972c-187c-407c-85ae-4dc404998a5e","savedPayload":{"position":{"x":28396.352618178258,"y":31754.113754247704},"targetPosition":{"x":28151.54790208964,"y":31595.007785141646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"6a6a6533-21a9-4be9-b2f0-ace1adfe45b8"}}},{"type":"Indicator Process Instance","name":"Stochastic Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"46b618d4-ba5a-4fe7-b069-e8e024f1301e","savedPayload":{"position":{"x":28090.714951378057,"y":32760.846887562406},"targetPosition":{"x":28121.129909249797,"y":32177.97460963789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"d712f459-b79a-4307-a6fa-4ffb68c9991f","savedPayload":{"position":{"x":28121.129909249797,"y":32177.97460963789},"targetPosition":{"x":28151.54790208964,"y":31595.007785141646},"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":"6a39c43d-0ad2-4c98-ae06-6e40f55d1753"}}}],"id":"bf5b38e2-023a-4c14-b275-b1cd592529cc","savedPayload":{"position":{"x":28151.54790208964,"y":31595.007785141646},"targetPosition":{"x":27886.657745421246,"y":31074.845201013894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ee95b9e3-be0f-4e3f-ab6c-6b230c0db05c","savedPayload":{"position":{"x":27886.657745421246,"y":31074.845201013894},"targetPosition":{"x":27621.614663189386,"y":30554.309280959973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9a76a7cf-298e-4fb2-b4bd-6ff5a0db061a","savedPayload":{"position":{"x":27622.088292029104,"y":30553.466055658446},"targetPosition":{"x":27066.72999045144,"y":30372.90511719708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}}],"id":"b1c93d10-5dd9-4b3f-9662-b9bf7850b81a","savedPayload":{"position":{"x":27066.72999045144,"y":30372.90511719708},"targetPosition":{"x":26594.593228569865,"y":30715.878612730186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"7449a608-32ca-4285-94d1-c96791e2817f","savedPayload":{"position":{"x":26594.7460728087,"y":30715.762096529805},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"testingEnvironment":{"type":"Testing Environment","name":"New Testing Environment","exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Paper & Backtesting Sessions BTC/USDT","tasks":[{"type":"Task","name":"Paper Trading WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Paper Trading Session","name":"Paper WHB","code":"{\n\"folderName\": \"Paper-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"34d3f232-9fb1-47e1-97be-9233ef34db93","savedPayload":{"position":{"x":29064.393244637387,"y":32246.70439914241},"targetPosition":{"x":29279.54118924854,"y":32443.944382994956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"969cd1c0-1d6d-4667-a810-d18369410d94","savedPayload":{"position":{"x":29299.46844670258,"y":32152.36958532117},"targetPosition":{"x":29279.54118924854,"y":32443.944382994956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"4af996da-6714-41ac-ad51-5706f41b40f0","savedPayload":{"position":{"x":29520.077958658403,"y":32277.632667932994},"targetPosition":{"x":29279.54118924854,"y":32443.944382994956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"963db77e-0405-4fc4-8780-1b7fa93f41a6","savedPayload":{"position":{"x":29559.768671541227,"y":32527.95233253213},"targetPosition":{"x":29279.54118924854,"y":32443.944382994956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"cd125f30-93e7-4786-b1e1-33274bd2877c","savedPayload":{"position":{"x":29388.662976726024,"y":32715.280877632933},"targetPosition":{"x":29279.54118924854,"y":32443.944382994956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"f8fcac2e-2a52-4189-a95d-77e83b5a6f98","savedPayload":{"position":{"x":29136.09535884985,"y":32698.32517200085},"targetPosition":{"x":29279.54118924854,"y":32443.944382994956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b5ba0c98-c052-4195-92c2-119652d91c32","savedPayload":{"position":{"x":29279.54118924854,"y":32443.944382994956},"targetPosition":{"x":28991.156025125947,"y":32489.43729500607},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2198ec50-3d31-43b7-a57d-e386bef38a93","savedPayload":{"position":{"x":28991.156025125947,"y":32489.43729500607},"targetPosition":{"x":28703.43428550334,"y":32534.931766037582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"06c8bcea-4122-4a35-8db3-a1ddc7657e4b","savedPayload":{"position":{"x":28886.618773071255,"y":32762.168395792276},"targetPosition":{"x":28703.43428550334,"y":32534.931766037582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"731abb89-b672-41b1-b403-2932226d3df7","savedPayload":{"position":{"x":28703.43428550334,"y":32534.931766037582},"targetPosition":{"x":28431.211697225608,"y":32430.273741172245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"4f784203-664a-4791-9e3a-7565f0a11e79","savedPayload":{"position":{"x":28431.211697225608,"y":32430.273741172245},"targetPosition":{"x":28083.989128969773,"y":32297.060009772482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"e04e8948-849d-4161-af18-4644990d0b49","savedPayload":{"position":{"x":28084.335511066984,"y":32297.14487277129},"targetPosition":{"x":27539.096149351248,"y":32088.11257319606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Backtesting WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Backtesting Session","name":"Back WHB","code":"{\n\"folderName\": \"Back-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5\n}","id":"48e2c5e0-8f9e-40f0-8ab6-2ecc57aa3039","savedPayload":{"position":{"x":28780.794528452894,"y":32989.63786646263},"targetPosition":{"x":28868.17435618273,"y":33267.56181402368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{}","id":"e8703a6e-e6c0-485f-a27d-a9e60a57a0a6","savedPayload":{"position":{"x":29031.52566821606,"y":33025.600374044254},"targetPosition":{"x":28868.17435618273,"y":33267.56181402368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"initialDatetime\": \"2019-01-01\",\n\"finalDatetime\": \"2020-12-31\"\n}","id":"08815e4e-c066-4914-85b7-a4f7ce4748a5","savedPayload":{"position":{"x":29159.91185766012,"y":33244.276369373925},"targetPosition":{"x":28868.17435618273,"y":33267.56181402368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"805c356b-4a05-424e-ba29-260e35c11943","savedPayload":{"position":{"x":29069.013759597186,"y":33480.85397173876},"targetPosition":{"x":28868.17435618273,"y":33267.56181402368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"bcccd1fd-188c-43e4-abfc-4bc89d6adecc","savedPayload":{"position":{"x":28827.458705392346,"y":33557.46997228553},"targetPosition":{"x":28868.17435618273,"y":33267.56181402368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"ae594b88-e40b-408b-8082-3ba92ffc2c8c","savedPayload":{"position":{"x":28616.95427483531,"y":33416.336631522194},"targetPosition":{"x":28868.17435618273,"y":33267.56181402368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c220646b-827b-43c8-ab7e-5ecd53b4070a","savedPayload":{"position":{"x":28868.17435618273,"y":33267.56181402368},"targetPosition":{"x":28595.956107797294,"y":33163.39071406859},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f32f1cdc-425f-4193-a43b-be9312c74234","savedPayload":{"position":{"x":28595.956107797294,"y":33163.39071406859},"targetPosition":{"x":28323.378934241053,"y":33058.46515871821},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"02fe6309-40c0-4e31-9aed-fbf8f434bfa9","savedPayload":{"position":{"x":28368.936897320553,"y":33347.43527925424},"targetPosition":{"x":28323.378934241053,"y":33058.46515871821},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"dd22d90b-5a91-4723-9f65-17eb94fb4d9d","savedPayload":{"position":{"x":28323.378934241053,"y":33058.46515871821},"targetPosition":{"x":28140.317136092515,"y":32832.0517468585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"0942010b-12f0-4be9-979d-c3e1bbc4eb74","savedPayload":{"position":{"x":28140.317136092515,"y":32832.0517468585},"targetPosition":{"x":27906.0796210282,"y":32542.54525263054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a8ff6583-b710-44b1-8768-d8a70bdf22c9","savedPayload":{"position":{"x":27906.4055014211,"y":32542.04427722981},"targetPosition":{"x":27539.096149351248,"y":32088.11257319606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"caed4703-e134-4a48-9062-fe5277b7d95f","savedPayload":{"position":{"x":27539.096149351248,"y":32088.11257319606},"targetPosition":{"x":27066.839459776074,"y":31745.038620197905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"f69b2c23-ccc5-47fb-9945-9b7badcea636","savedPayload":{"position":{"x":27066.839459776074,"y":31745.038620197905},"targetPosition":{"x":26594.645445193884,"y":31402.0060792944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"2ae685a1-25c6-4bd5-b559-d83e373e8d45","savedPayload":{"position":{"x":26594.745599621772,"y":31402.07896309567},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"productionEnvironment":{"type":"Production Environment","name":"New Production Environment","exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Fwd & Live Sessions BTC/USDT","tasks":[{"type":"Task","name":"Fwd Testing WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Forward Testing Session","name":"Fwd WHB","code":"{\n\"folderName\": \"Fwd-WHB\",\n\"balancePercentage\": 10\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"079cdfaf-2d41-4fa3-a68d-9e2620de0cdd","savedPayload":{"position":{"x":25907.09813210276,"y":34143.13877561956},"targetPosition":{"x":25786.019071906194,"y":34408.90548695901},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"5f5ec9f1-c4e2-4ca7-94c4-bad619511e5c","savedPayload":{"position":{"x":26069.52411886694,"y":34337.82854319188},"targetPosition":{"x":25786.019071906194,"y":34408.90548695901},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"d5fda5e7-7571-41e7-b19a-a721d73fd8f5","savedPayload":{"position":{"x":26018.4871354068,"y":34586.07757644903},"targetPosition":{"x":25785.935443738745,"y":34408.945440877076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"f6ed8468-7fd1-4aac-848b-647973e41b04","savedPayload":{"position":{"x":25792.422263298406,"y":34701.26598795246},"targetPosition":{"x":25785.935443738745,"y":34408.945440877076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"da2d51df-7c40-4bf0-80ec-63a38992fcfe","savedPayload":{"position":{"x":25561.728940595825,"y":34596.381938557235},"targetPosition":{"x":25785.935443738745,"y":34408.945440877076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"4e1b48a9-df71-402e-9159-66c49cdc08b3","savedPayload":{"position":{"x":25499.71600530877,"y":34350.90489067788},"targetPosition":{"x":25785.933880313278,"y":34408.957878340036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b9e7a071-26dd-4796-8704-2314f6c2c603","savedPayload":{"position":{"x":25786.019071906194,"y":34408.90548695901},"targetPosition":{"x":25653.515815468658,"y":34148.76481661162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0e7edb98-38ff-4516-89a1-188030989ddc","savedPayload":{"position":{"x":25653.515815468658,"y":34148.76481661162},"targetPosition":{"x":25521.231636088727,"y":33889.11750319502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"New Exchange Account Key","id":"8d9b39d4-b764-486d-a2f6-e84391bbd818","savedPayload":{"position":{"x":25202.583094755602,"y":34378.37113427202},"targetPosition":{"x":25361.821001212014,"y":34133.68303277718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"New Exchange Account Key","id":"88eab4e5-3be4-4982-93fa-e95bcb1ab559"}}},"id":"f122bd16-0c85-43d1-932a-57a710db8013","savedPayload":{"position":{"x":25361.821001212014,"y":34133.68303277718},"targetPosition":{"x":25521.231636088727,"y":33889.11750319502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"a034c52a-8924-4e60-9653-f6da1ea6f8b5","savedPayload":{"position":{"x":25521.231636088727,"y":33889.11750319502},"targetPosition":{"x":25536.537959197252,"y":33598.076783793644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"74f70f20-305b-4e90-aad6-1bcd2ff8ee1c","savedPayload":{"position":{"x":25536.537959197252,"y":33598.076783793644},"targetPosition":{"x":25551.664246604654,"y":33306.593168325715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"749d6eaf-1548-47ca-901d-1cfc1a21b0a5","savedPayload":{"position":{"x":25551.664246604654,"y":33306.593168325715},"targetPosition":{"x":25581.765794713705,"y":32723.789120974685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Live Trading WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Live Trading Session","name":"Live Trading WHB","code":"{\n\"folderName\": \"Live-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"166cdb09-90e0-49a1-9c38-b57364287620","savedPayload":{"position":{"x":25109.403090562835,"y":34182.82494345859},"targetPosition":{"x":24871.44407298634,"y":34352.81569267779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"5bf43efd-3dd2-44f2-b25e-f6c7a5fda17e","savedPayload":{"position":{"x":25152.70374824769,"y":34432.37709783826},"targetPosition":{"x":24871.44407298634,"y":34352.81569267779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"88d7104b-7925-408a-b490-bbbaaafd7a5f","savedPayload":{"position":{"x":24984.386057092983,"y":34622.13083241753},"targetPosition":{"x":24871.44407298634,"y":34352.81569267779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"1c158006-c3c1-4157-8ad6-f08ee2b769d6","savedPayload":{"position":{"x":24731.322324191053,"y":34608.83398610883},"targetPosition":{"x":24871.44407298634,"y":34352.81569267779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"01064db9-f153-4d30-a26c-d9d339e7a856","savedPayload":{"position":{"x":24583.70097256323,"y":34402.545126152516},"targetPosition":{"x":24871.44407298634,"y":34352.81569267779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"06f7cc4e-6112-4ac8-9f20-610b357a58d2","savedPayload":{"position":{"x":24652.882864423478,"y":34158.98471560196},"targetPosition":{"x":24871.44407298634,"y":34352.81569267779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b86ce81f-5084-48d1-8a45-8f45fbe97891","savedPayload":{"position":{"x":24871.44407298634,"y":34352.81569267779},"targetPosition":{"x":24886.92820703921,"y":34060.78806671803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5335fd67-ebdc-4cfd-936d-b76af957713e","savedPayload":{"position":{"x":24886.92820703921,"y":34060.78806671803},"targetPosition":{"x":24901.83488901802,"y":33770.080096507605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"New Exchange Account Key","id":"a0061ba6-2359-4c5c-822d-1e17aaf7c2fd","savedPayload":{"position":{"x":24381.103071237296,"y":34034.3846956502},"targetPosition":{"x":24641.69046361135,"y":33901.74001268537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"New Exchange Account Key","id":"88eab4e5-3be4-4982-93fa-e95bcb1ab559"}}},"id":"954b1896-121c-41e2-9608-5b46a70082fb","savedPayload":{"position":{"x":24641.69046361135,"y":33901.74001268537},"targetPosition":{"x":24901.83488901802,"y":33770.080096507605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"8cb4d9af-0f53-4b33-9174-330da87b166c","savedPayload":{"position":{"x":24901.83488901802,"y":33770.080096507605},"targetPosition":{"x":25060.95076051503,"y":33525.41746799385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"8b30643a-eb54-4d6f-958d-8393f9a1e5f4","savedPayload":{"position":{"x":25060.95076051503,"y":33525.41746799385},"targetPosition":{"x":25263.574609488252,"y":33213.651006905486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"52ec5181-d057-42e3-a6e8-407d20d4e641","savedPayload":{"position":{"x":25263.397660902152,"y":33213.09737290264},"targetPosition":{"x":25581.765794713705,"y":32723.789120974685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1bbb36fe-edbf-49d8-9827-85a1345c0289","savedPayload":{"position":{"x":25581.765794713705,"y":32723.789120974685},"targetPosition":{"x":25762.002028524377,"y":32168.8971802595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"l"}}}],"id":"fa859e89-960f-4fe1-8e68-1e41b0ea80ec","savedPayload":{"position":{"x":25762.002028524377,"y":32168.8971802595},"targetPosition":{"x":25942.202970722596,"y":31613.941757254855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"32656457-f603-416a-b805-546642094dc4","savedPayload":{"position":{"x":25942.051413495774,"y":31614.22799390328},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"u"}}},"id":"ce601334-52c5-4ffb-ab61-49ca1943a15a","savedPayload":{"position":{"x":26122.378344035824,"y":31058.919069244217},"targetPosition":{"x":24954.356993272086,"y":31057.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"r"}}}],"id":"efbbc81b-93c8-4ce0-873e-675f39d333e8","savedPayload":{"position":{"x":24954.356993272086,"y":31057.918778615294},"targetPosition":{"x":24954.356993272086,"y":31057.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"n"}}},{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","cryptoExchanges":[{"type":"Crypto Exchanges","name":"Tested","exchanges":[{"type":"Crypto Exchange","name":"Binance","code":"{\n \"codeName\": \"binance\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"EUR\"} \n}","assets":[{"type":"Asset","name":"Bitcoin","code":"{ \n\"codeName\": \"BTC\"\n}","id":"b2814a75-fd57-45c4-a3cb-af276793e573","savedPayload":{"position":{"x":15969.409188252612,"y":29845.817716894748},"targetPosition":{"x":16207.902772226307,"y":30528.021327037124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","code":"{ \n\"codeName\": \"USDT\"\n}","id":"04c5f172-6976-4557-b95f-38004b5201a6","savedPayload":{"position":{"x":16290.161760654086,"y":29810.703960375},"targetPosition":{"x":16207.902772226307,"y":30528.021327037124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Ether","code":"{ \n\"codeName\": \"ETH\"\n}","id":"4175d47c-e12c-4902-b026-f4999a6d07a4","savedPayload":{"position":{"x":16592.465405750565,"y":29917.96759504788},"targetPosition":{"x":16207.902772226307,"y":30528.021327037124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Monero","code":"{ \n\"codeName\": \"XMR\"\n}","id":"e3b61070-77b9-4dcf-9862-7f05ffa237f3","savedPayload":{"position":{"x":16819.180383166487,"y":30143.640867809212},"targetPosition":{"x":16207.902772226307,"y":30528.021327037124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Stellar","code":"{ \n\"codeName\": \"XLM\"\n}","id":"6dee1e7e-80f3-4597-a28a-881af206ec14","savedPayload":{"position":{"x":16926.31169668542,"y":30448.18598140934},"targetPosition":{"x":16207.902772226307,"y":30528.021327037124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Ethereum Classic","code":"{ \n\"codeName\": \"ETC\"\n}","id":"59378d33-4833-495a-89bb-f739710be7d9","savedPayload":{"position":{"x":16889.59285373928,"y":30767.563973671593},"targetPosition":{"x":16207.902772226307,"y":30528.021327037124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"f4451bbc-50ea-4558-9b3c-abd3e757a76e","savedPayload":{"position":{"x":16207.902772226307,"y":30528.021327037124},"targetPosition":{"x":15696.196311397269,"y":31039.87036508385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"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}","markets":[{"type":"Market","name":"BTC/USDT","code":"{ \n\"codeName\": \"BTC/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","id":"07b514a4-3ea2-4ab7-aeb0-07b48acb6f8d","savedPayload":{"position":{"x":18664.873609778617,"y":31599.215226895},"targetPosition":{"x":20017.2143547542,"y":31038.26398963208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b2814a75-fd57-45c4-a3cb-af276793e573"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"61e7d2b5-1672-4e11-8380-345a4fe4a991","savedPayload":{"position":{"x":17931.429449453768,"y":31451.31727095168},"targetPosition":{"x":20017.2143547542,"y":31038.26398963208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"04c5f172-6976-4557-b95f-38004b5201a6"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"a174a91f-0818-4fdc-88cd-20dbdf45c548","savedPayload":{"position":{"x":19645.204662917928,"y":31037.494572390202},"targetPosition":{"x":20017.2143547542,"y":31038.26398963208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"11beab3d-d894-4d20-9940-f864ba957f91","savedPayload":{"position":{"x":19318.03315558542,"y":30898.895536096043},"targetPosition":{"x":20017.2143547542,"y":31038.26398963208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"5489751f-5ce4-40d0-9854-5bcfdc810269","savedPayload":{"position":{"x":20017.2143547542,"y":31038.26398963208},"targetPosition":{"x":18576.93272884972,"y":31038.257774206406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0e1257c5-49b1-4b52-8942-9bdef72854d2","savedPayload":{"position":{"x":18580.599904169725,"y":31039.912219216294},"targetPosition":{"x":15696.196311397269,"y":31039.87036508385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b","savedPayload":{"position":{"x":17888.590678574627,"y":31698.933523477794},"targetPosition":{"x":17418.56829850042,"y":32247.185884745264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b2814a75-fd57-45c4-a3cb-af276793e573"}}},{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da","savedPayload":{"position":{"x":18080.31991364513,"y":31957.287868322837},"targetPosition":{"x":17418.56829850042,"y":32247.185884745264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"04c5f172-6976-4557-b95f-38004b5201a6"}}},{"type":"Exchange Account Asset","name":"Ether","id":"b3d0800f-f430-4549-86e9-68001c43fa1f","savedPayload":{"position":{"x":18138.9221462897,"y":32273.568556476886},"targetPosition":{"x":17418.56829850042,"y":32247.185884745264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4175d47c-e12c-4902-b026-f4999a6d07a4"}}},{"type":"Exchange Account Asset","name":"Monero","id":"ee25ff6a-8b3d-4f30-8acf-71ca4b186195","savedPayload":{"position":{"x":18055.847718500732,"y":32583.772328847732},"targetPosition":{"x":17418.56829850042,"y":32247.185884745264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Monero","id":"e3b61070-77b9-4dcf-9862-7f05ffa237f3"}}},{"type":"Exchange Account Asset","name":"Stellar","id":"5716ea79-1392-4f6d-a46e-dba38ab9b39e","savedPayload":{"position":{"x":17847.772400569258,"y":32826.48620410357},"targetPosition":{"x":17418.56829850042,"y":32247.185884745264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Stellar","id":"6dee1e7e-80f3-4597-a28a-881af206ec14"}}},{"type":"Exchange Account Asset","name":"Ethereum Classic","id":"d9d0d41c-67a9-42ea-8c64-067647ee53a4","savedPayload":{"position":{"x":17553.555942272775,"y":32957.06248557413},"targetPosition":{"x":17418.56829850042,"y":32247.185884745264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ethereum Classic","id":"59378d33-4833-495a-89bb-f739710be7d9"}}}],"id":"f7bbfcc0-2359-4de1-8ddc-5e117bde0c52","savedPayload":{"position":{"x":17418.56829850042,"y":32247.185884745264},"targetPosition":{"x":16719.307115511798,"y":32060.04061222569},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"88eab4e5-3be4-4982-93fa-e95bcb1ab559","savedPayload":{"position":{"x":17095.372628722904,"y":33455.81216440229},"targetPosition":{"x":16907.300375970768,"y":32757.323535042135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"cf3895fd-4f0c-4bd8-8afb-886a718cc891","savedPayload":{"position":{"x":16907.300375970768,"y":32757.323535042135},"targetPosition":{"x":16719.307115511798,"y":32060.04061222569},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a718949a-e315-4bda-8523-b0b03e3ca507","savedPayload":{"position":{"x":16719.307115511798,"y":32060.04061222569},"targetPosition":{"x":16207.755644577279,"y":31550.04951127082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a913b30b-17d3-4b2b-9c39-9c7dc67f0000","savedPayload":{"position":{"x":16207.755644577279,"y":31550.04951127082},"targetPosition":{"x":15696.196311397269,"y":31039.87036508385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"22d2b36e-7a77-40a6-8948-b7d0fb744923","savedPayload":{"position":{"x":15696.196311397269,"y":31039.87036508385},"targetPosition":{"x":14251.232225370944,"y":31038.26024839772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"c16f8dd4-05f5-45db-8a47-713eb1116f72","savedPayload":{"position":{"x":14251.232225370944,"y":31038.26024839772},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"signalsProviders":[],"superActions":{"type":"Super Actions","name":"New Super Actions","superActions":[{"type":"Super Action","name":"Install Market","id":"2cd8e9dd-02a8-40b5-8979-108491309697","savedPayload":{"position":{"x":13596.796537982185,"y":29900.600915146206},"targetPosition":{"x":13238.769838624787,"y":30494.890822183912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"d103d8f7-8b21-436a-a0cf-8244b3dcb756","savedPayload":{"position":{"x":13738.553946135695,"y":30013.646249280533},"targetPosition":{"x":13238.769838624787,"y":30494.890822183912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"c934df8f-d942-4723-ad44-f187e5df4351","savedPayload":{"position":{"x":12166.581869182457,"y":31038.25465749285},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9f4e7bfb-ea29-47cd-92bd-11f31d177ff8","savedPayload":{"position":{"x":12805.301618063546,"y":31038.2348844148},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"e"}}},{"type":"Charting Space","name":"New Charting Space","viewport":{"type":"Viewport","name":"New Viewport","code":"{\"zoom\":\"1.40\"}","id":"c3db9bcf-39ee-47d1-ab4f-14bd5de815da","savedPayload":{"position":{"x":13421.60994808922,"y":24983.353401471086},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"frame":{"position":{"x":-7465.5,"y":-4245.5}}}},"dashboards":[{"type":"Dashboard","name":"Super Action Generated","timeMachines":[{"type":"Time Machine","name":"Binance BTC/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-05-10T03:17:26.873Z\",\n \"toDate\": \"2020-08-23T05:40:48.689Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"9368d644-21cd-4be9-bb36-df83b66c67d1","savedPayload":{"position":{"x":10974.294649235413,"y":25799.392878813116},"targetPosition":{"x":11146.08192953662,"y":24985.36712570626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 8200,\n \"maxValue\": 10380,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"7242faad-e2a0-4dd2-8016-bd4448a3b61c","savedPayload":{"position":{"x":10808.223224203914,"y":25745.579152126287},"targetPosition":{"x":11146.08192953662,"y":24985.36712570626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"cddfbb92-c310-477a-9c66-b2a38ff8309f","savedPayload":{"position":{"x":10657.408257836936,"y":25658.52113528765},"targetPosition":{"x":11146.08192953662,"y":24985.36712570626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"09e91fb3-cdff-4c0c-b320-417aeb4f2538","savedPayload":{"position":{"x":10358.024029357628,"y":26798.41727877579},"targetPosition":{"x":9910.630574426781,"y":26097.738400457743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"dd7c8795-bb24-4438-9d77-b37a9000ad7f"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2b8f6dec-a712-4716-88d8-a33c01398956","savedPayload":{"position":{"x":10236.23830996621,"y":26862.69501294004},"targetPosition":{"x":9910.630574426781,"y":26097.738400457743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"6929ebe7-6486-4299-add5-ed0282500d91"}}},{"type":"Layer","name":"Resistances","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"57d807c2-eeac-46a5-bd07-6f630a578562","savedPayload":{"position":{"x":10105.790369525008,"y":26905.906851589516},"targetPosition":{"x":9910.630574426781,"y":26097.738400457743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Resistances","id":"0669d924-aace-46d1-b126-ccced8fd33cf"}}},{"type":"Layer","name":"Supports","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9a035c82-60cb-4ab4-b4f8-e40b0dde7c2c","savedPayload":{"position":{"x":9970.057402388917,"y":26927.03521006703},"targetPosition":{"x":9910.630574426781,"y":26097.738400457743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Supports","id":"5e7a0e50-e6ed-4106-8025-8b35ad6c597c"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"25363a67-bcaf-4392-9ed8-2b6c99fb31c8","savedPayload":{"position":{"x":9832.96604742131,"y":26925.52778450136},"targetPosition":{"x":9910.630574426781,"y":26097.738400457743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"1d7dd537-5f6f-4eb2-8e56-ddba0aef720f"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"63dbae3f-cebc-4587-9b9c-60ffe83e4143","savedPayload":{"position":{"x":9697.752361175779,"y":26901.43304174283},"targetPosition":{"x":9910.630574426781,"y":26097.738400457743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"221c8d22-8a7f-4014-a7ed-0bafc886b123"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2203bc66-a385-438b-8050-0b812b655d0a","savedPayload":{"position":{"x":9568.350622325737,"y":26855.4107312889},"targetPosition":{"x":9910.630574426781,"y":26097.738400457743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"d83476c3-2f0b-4d4a-abb2-0e47ed0a421d"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ea4ce55e-855e-4a61-ad12-222a0077e51e","savedPayload":{"position":{"x":9448.29021319506,"y":26788.717185940783},"targetPosition":{"x":9910.630574426781,"y":26097.738400457743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"5ffc6a67-e33b-422b-8e36-f9711f93c723"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e9272caf-38f8-44de-a698-13f8b19b50c3","savedPayload":{"position":{"x":9340.84536901929,"y":26703.172016919158},"targetPosition":{"x":9910.630574426781,"y":26097.738400457743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"0428f20b-9620-480e-a531-dbb2e5f59ef4"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a9fcfaea-cd50-464e-aa65-1f2a3e98633d","savedPayload":{"position":{"x":9248.946489812784,"y":26601.108737101553},"targetPosition":{"x":9910.630574426781,"y":26097.738400457743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"48f7953c-f62d-4292-b042-d1ac05f8f80f"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\"\n}","id":"8c1e005a-c340-4850-9de2-900a4cfc44bb","savedPayload":{"position":{"x":9175.100153824218,"y":26485.311213093504},"targetPosition":{"x":9910.630574426781,"y":26097.738400457743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"3b9a3c93-6d41-440e-89a2-2fd1b2dde603"}}},{"type":"Layer","name":"Base5 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"6223f2d7-bdb4-474a-9e60-b54dc00680ea","savedPayload":{"position":{"x":9121.320749161809,"y":26358.93773043369},"targetPosition":{"x":9910.630574426781,"y":26097.738400457743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"2404b1eb-c7c9-46e7-b22a-93cfcc3739f4"}}},{"type":"Layer","name":"Base6 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"a71c4fa6-d034-499c-9b30-7a46378cadc0","savedPayload":{"position":{"x":9089.075636227895,"y":26225.434744181694},"targetPosition":{"x":9910.630574426781,"y":26097.738400457743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"1510fd36-633e-40a7-adbe-680660d64bd0"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"53c4ff8b-f3c5-4329-8fe4-6209c0ffb9f1","savedPayload":{"position":{"x":9079.245476854188,"y":26088.694513157305},"targetPosition":{"x":9910.630574426781,"y":26097.738400457743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"70401ea0-3fed-4e40-8bba-a1e5adce9b8c"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"09cbb1f5-edad-4f9f-ab1c-7f9b0a0d8f7c","savedPayload":{"position":{"x":9092.10155630097,"y":25951.94883551336},"targetPosition":{"x":9910.630574426781,"y":26097.738400457743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"06ac8eb7-8b14-42b1-9e2e-466280ade032"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"88466a0a-b385-417f-9efa-8c0139e05a5e","savedPayload":{"position":{"x":9127.299757040357,"y":25819.170023401857},"targetPosition":{"x":9910.630574426781,"y":26097.738400457743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"014bba70-64d4-4035-b06d-145ee9b4c54c"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"6564d574-c6fd-4ee0-96ab-0e7c62e1cd7c","savedPayload":{"position":{"x":9183.906483723564,"y":25693.95667244665},"targetPosition":{"x":9910.630574426781,"y":26097.738400457743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"768cc06c-6fdf-491a-a741-5e08f0e25e38"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"941fef87-83dd-457f-818c-71745fa1692a","savedPayload":{"position":{"x":9260.558140284043,"y":25579.55511551029},"targetPosition":{"x":9910.630574426781,"y":26097.738400457743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"40794460-b815-498f-a245-e677de0eed86"}}}],"id":"1c96281c-523a-4597-b9b2-2db3d880ff49","savedPayload":{"position":{"x":9910.630574426781,"y":26097.738400457743},"targetPosition":{"x":10527.98453117951,"y":25541.993499556153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"ff535c6b-411f-4790-ab2b-c755c74de1b9","savedPayload":{"position":{"x":10527.98453117951,"y":25541.993499556153},"targetPosition":{"x":11146.08192953662,"y":24985.36712570626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 60348.23168979837,\n \"maxValue\": 69252.25295357336,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"9ee722c6-095f-4f4a-b8b2-9cb9bca115aa","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c4041768-1a6e-4f5b-8d7b-b681a175f27a","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"98e6c917-f4b7-4b71-9215-de3ccaf3dc0c"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"e9404a3f-2768-4b17-ac7a-8b11e1a1957c","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"858fd2be-abef-4173-abef-dedf17f00d47","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"8411d061-e010-4d33-b35c-e71d743fd403","savedPayload":{"position":{"x":10425.596406588564,"y":25401.159084008916},"targetPosition":{"x":11146.08192953662,"y":24985.36712570626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 197.03955751130675,\n \"maxValue\": 292.06955751130675,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"60aaeaeb-2247-4536-a1a2-cf7d731b6fc5","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c230772e-ca08-45df-bad6-4b72be44d9a5","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"4a3ed8eb-a73e-4fb4-835a-681cf47d7373"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f9435119-1d3f-4106-9c78-531f6ef4714f","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"728d6f08-086f-41ba-9126-30ec56a45ea5"}}}],"id":"acbd2ecb-2f75-44b8-8659-26482cb6fb0b","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"a7f9fef6-c3f9-4e17-b894-9a5e154ccbbe","savedPayload":{"position":{"x":10354.745862464035,"y":25242.2037609899},"targetPosition":{"x":11146.08192953662,"y":24985.36712570626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 23.53984680670618,\n \"maxValue\": 27.53984680670618,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"1415a288-9d79-45c9-a55c-9991e8b6953b","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"33e885d3-27f0-4ff7-8715-bc2f945e698e","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"7ccbd0c1-c804-47e3-9314-14cbb756c806"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f3cd6f15-98f5-4165-b6c3-04b8796fb43d","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"08f223a8-9707-4c45-b638-1fe0e4a2b053"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"66440f58-8741-4b22-8146-00f772837545","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"66f1a9be-fe96-48c3-91e4-500c6e246423"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"3ba14173-bac8-4013-9a5c-b8aecd05e0ae","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"e432c706-cbcd-4af0-b23c-b18e5b29377a"}}}],"id":"ab7c3367-a36e-4a78-b43b-bfeea5fc5201","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"156b9564-14a5-4148-8ca6-1e7b98d4189d","savedPayload":{"position":{"x":10318.510320211475,"y":25072.015096316623},"targetPosition":{"x":11146.08192953662,"y":24985.36712570626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Candle Patterns","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Basic Candles","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"a1e1be1e-abd3-4f1a-8276-5e85faf96711","savedPayload":{"position":{"x":9630.672439223492,"y":24770.962463234522},"targetPosition":{"x":9978.889908074705,"y":24543.18993185048},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Basic Candles","id":"4e14ecf7-3eaa-48ce-91fb-c6e1c806fdf8"}}},{"type":"Layer","name":"One-Candle Patterns","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"2f5c0f35-f7cf-47b0-b581-e316ec89ad4b","savedPayload":{"position":{"x":9563.258378007582,"y":24523.396511675113},"targetPosition":{"x":9978.889908074705,"y":24543.18993185048},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"One-Candle Patterns","id":"e11730aa-5ffb-42bd-8bfb-56e7fa36cd68"}}},{"type":"Layer","name":"Two-Candles Patterns","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"cb8fc837-b9de-4170-97dd-475fced9586a","savedPayload":{"position":{"x":9654.461574619718,"y":24282.749455150373},"targetPosition":{"x":9978.889908074705,"y":24543.18993185048},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Two-Candles Patterns","id":"3d5a0163-c683-43d8-b344-ec1113c4726c"}}},{"type":"Layer","name":"Three-Candles Patterns","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"0a2dcfc3-61d9-4a35-a1bf-749e1cb8d0fa","savedPayload":{"position":{"x":9869.781826298859,"y":24141.75602372913},"targetPosition":{"x":9978.889908074705,"y":24543.18993185048},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Three-Candles Patterns","id":"86ebf7ee-0102-4dc1-a597-0f0df3e07df8"}}}],"id":"55075e98-d2e8-46dd-a004-8087bf764d2f","savedPayload":{"position":{"x":9978.889908074705,"y":24543.18993185048},"targetPosition":{"x":10368.041283532342,"y":24690.44993556238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":600,"y":80},"width":150,"height":40,"radius":0}}},"id":"45aca655-16bb-4cf5-9eea-07d6c140845c","savedPayload":{"position":{"x":10318.49025657199,"y":24898.342478781502},"targetPosition":{"x":11146.08192953662,"y":24985.36712570626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Average True Range","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"autoMinScale\": true,\n \"autoMaxScale\": true,\n \"minValue\": 243.76381188118808,\n \"maxValue\": 1120.783811881188\n}","id":"78dacbc0-e9cf-424f-88bd-3f447153cf50","savedPayload":{"position":{"x":9938.596601282974,"y":24706.936606374697},"targetPosition":{"x":10354.479100458746,"y":24728.463523766502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"ATR - RMA","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"b86249d0-24e7-448d-a070-16bc08aa4e7c","savedPayload":{"position":{"x":9609.580351850185,"y":24373.366775770224},"targetPosition":{"x":10005.461252186891,"y":24501.699708707172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"ATR - RMA","id":"9a883744-bbec-4bf8-825a-a48a4f45cfc1"}}},{"type":"Layer","name":"ATR - SMA","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"c4eb240c-2334-4e1e-9a44-b103e4a3a8b0","savedPayload":{"position":{"x":9727.296937241581,"y":24192.642177709735},"targetPosition":{"x":10005.461252186891,"y":24501.699708707172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"ATR - SMA","id":"b2693a25-7acc-447e-8df9-b02cf457f07b"}}}],"id":"831456d8-0690-4e12-aaa6-c244560c4cc6","savedPayload":{"position":{"x":10005.461252186891,"y":24501.699708707172},"targetPosition":{"x":10354.479100458746,"y":24728.463523766502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":750,"y":80},"width":150,"height":40,"radius":0}}},"id":"77c7c6d1-afd9-404e-84e2-3e3eb575500c","savedPayload":{"position":{"x":10354.672282394093,"y":24728.165099261132},"targetPosition":{"x":11146.08192953662,"y":24985.36712570626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"ROC & Stochastic","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"autoMinScale\": true,\n \"autoMaxScale\": true,\n \"minValue\": 6.995758360117975,\n \"maxValue\": 43.768246421030064\n}","id":"633b13b6-a4f5-454d-a4ac-bc16f776e842","savedPayload":{"position":{"x":10000.330579519128,"y":24536.173214136972},"targetPosition":{"x":10417.11426048743,"y":24535.47675369991},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"ROC 76","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"671c73a7-3881-437d-b7a1-3f97a38d5794","savedPayload":{"position":{"x":9795.005734631457,"y":24131.41295805426},"targetPosition":{"x":10208.93815350596,"y":24174.927698078474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"ROC 76","id":"bbe5aec6-3bd1-4cbe-8640-2044b0443110"}}},{"type":"Layer","name":"ROC 32","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"9aaff024-195c-4516-8a1f-7c5726e4fbda","savedPayload":{"position":{"x":9899.595977333556,"y":23896.44227048477},"targetPosition":{"x":10208.93815350596,"y":24174.927698078474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"ROC 32","id":"020f3ef7-9b8e-4e2e-9b88-e57ca7ee8435"}}},{"type":"Layer","name":"ROC 9","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"b2662aae-e325-496b-bdea-580af9349033","savedPayload":{"position":{"x":10122.361452370533,"y":23767.790368029655},"targetPosition":{"x":10208.93815350596,"y":24174.927698078474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"ROC 9","id":"bf5e9f22-9be9-4d8d-8262-c6074b81e629"}}},{"type":"Layer","name":"Stoch-14-3-3","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"faf5b2f5-0bcf-40c8-9e74-37b41aa900be","savedPayload":{"position":{"x":10378.051886973675,"y":23794.646015633694},"targetPosition":{"x":10208.93815350596,"y":24174.927698078474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stoch-14-3-3","id":"7861fc9f-43b9-4f7c-8083-4d0d0dc5848a"}}}],"id":"89b68dd5-3db5-4bd8-8597-a693aadd91f9","savedPayload":{"position":{"x":10208.93815350596,"y":24174.927698078474},"targetPosition":{"x":10417.11426048743,"y":24535.47675369991},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":900,"y":80},"width":150,"height":40,"radius":0}}},"id":"728ea75b-96c4-4e30-a01a-eb093de86a89","savedPayload":{"position":{"x":10425.458660895596,"y":24569.208918900367},"targetPosition":{"x":11146.08192953662,"y":24985.36712570626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"eb70203f-383c-4227-8b82-64458c8ceb62","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"3a82f6d9-2063-4fd7-aa79-dedc4222c58c","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"af19e56c-eaf1-4b0b-93f9-74b9ac1843c2"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"605b9ea8-5ed1-4750-8921-88bc481ffbc4","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"30ac52a8-ee50-439c-83c8-df75ab49374a"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"3e97cb0b-80dd-4d12-8205-852c759a3f55","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"6a059555-2555-4c7f-a722-2ab4ca0440c5"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"76a918d5-1242-4b97-a252-550200546f5c","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"c35fa0be-6e51-4d14-9a52-6b0174cc1aab"}}}],"id":"8658198e-ea8a-45ef-b05f-b2810aa3e015","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1770,"y":80},"width":150,"height":40,"radius":0}}},"id":"6616907b-5ec0-4c2d-b47b-885343226b81","savedPayload":{"position":{"x":10527.770370346669,"y":24428.429186205663},"targetPosition":{"x":11146.08192953662,"y":24985.36712570626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"d7c6c5e8-82d8-4f2a-a07e-66c3498d1fe5","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"b978b005-7bc2-4246-b4d9-5fcfc463eacf","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"63636068-307e-4cea-b31f-f47e106cea2c"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"1ca55ee3-231b-41ad-9acd-24f043e8aa01","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"20848048-8efb-47b1-aaf0-789d2f6c5b1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"52850e27-6287-4005-ba6e-66f5b193e3ad","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"5e28998c-b35f-4cc0-9fd6-8ee5f5714545"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"46bd81b8-5b9f-4c5f-89bb-149e19bd0267","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"87b74841-4f6a-4658-b01b-7feb254b5d2f"}}}],"id":"0cf47550-1612-4cd7-8fdd-a68014bd52cc","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1620,"y":80},"width":150,"height":40,"radius":0}}},"id":"c285480b-3a39-4dd0-be1d-6470a97d22a7","savedPayload":{"position":{"x":10657.151582068616,"y":24312.008919727767},"targetPosition":{"x":11146.08192953662,"y":24985.36712570626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"b10a1160-3d9b-44a5-97e9-dbfdc9f103b6","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"b4fb2c12-42e4-496d-aea2-ccf8c90c2e6a","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"5919a710-a950-4049-9605-3f127b7fac6b"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"fc3d15bc-ac9c-4150-9a26-4c8baef90266","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"c7030a88-152f-421c-8b32-66f3c222286a"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"c749facc-4350-43c1-b881-72c781475f56","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"25db80e6-c4cf-4568-98d3-0cba83625ece"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"30fa6c26-bdbb-4a70-a917-f42d99583938","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"f4b18249-5044-4b34-83f7-3cedbbe939c5"}}}],"id":"c689ea14-8d8b-4482-9cf3-c652904ebd27","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1470,"y":80},"width":150,"height":40,"radius":0}}},"id":"fabbc9b6-b752-4ba6-80a4-835eaa856948","savedPayload":{"position":{"x":10807.999949879655,"y":24225.000158734932},"targetPosition":{"x":11146.08192953662,"y":24985.36712570626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"4978dec9-1374-421a-865e-9e0d30682f65","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"93d62cc0-6914-411e-bf9f-008271cd2965","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"573fb46f-78d2-4bf3-ad11-e42d2531d53e"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"cbb41381-e76d-44f5-8dd3-f9a8c0c0379f","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"39d7a06d-5aad-4b03-8778-e4df8dacc825"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"88471305-9c12-4caf-856b-675fb2db2db3","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"82b46974-7a93-4066-a3b7-378b42710364"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"8cb92f6b-8ede-44ef-928a-36f4ec022af8","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"7af9d35c-7464-4ed5-9ee6-ccf7a9943894"}}}],"id":"3ec4f352-fb06-4ade-8393-7a5a83765773","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1320,"y":80},"width":150,"height":40,"radius":0}}},"id":"ac6929d9-238c-4689-b2ee-3cc001be578b","savedPayload":{"position":{"x":10974.099486262108,"y":24171.229318846283},"targetPosition":{"x":11146.08192953662,"y":24985.36712570626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a9786387-316d-4b02-a53a-60187e2e17ed","savedPayload":{"position":{"x":11145.72174937916,"y":24985.41012152658},"targetPosition":{"x":11977.548614254114,"y":24985.413885429127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":933.1875,"y":529.375},"width":240,"height":126.25,"radius":0}}}],"id":"64fa2a31-21ea-4b56-a625-dc4082876a89","savedPayload":{"position":{"x":11977.548614254114,"y":24985.413885429127},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":0,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"t"}}}],"id":"c53a4385-3fb3-49d5-b506-99bcaef2c141","savedPayload":{"position":{"x":12809.806237131383,"y":24985.35640053908},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":0,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"c"}}},{"type":"Data Mine","name":"Buddha","code":"{ \n\"codeName\": \"Buddha\"\n}","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"Candle Patterns","code":"{\n\"codeName\": \"Candle-Patterns\",\n\"repo\": \"Candle-Patterns-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates Candles Patterns for Time Frames of 01-hs and above.\",\n \"startMode\": {\n \"allMonths\": {\n \"run\": \"false\",\n \"minYear\": \"\",\n \"maxYear\": \"\"\n },\n \"oneMonth\": {\n \"run\": \"false\",\n \"year\": \"\",\n \"month\": \"\"\n },\n \"noTime\": {\n \"run\": \"true\"\n },\n \"fixedInterval\": {\n \"run\": \"false\",\n \"interval\": 0\n }\n },\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\",\n \"startDate\": {\n },\n \"endDate\": {\n }\n }\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Basic Candles","id":"3e933426-1c7b-45e1-845f-08a7d2684620","savedPayload":{"position":{"x":13013.679527195516,"y":11574.647742916512},"targetPosition":{"x":13213.4740995075,"y":11664.527233498671},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"07be5b9b-e8fd-49fc-ab77-20f89fdea10f"}}},{"type":"Output Dataset","name":"Multi-Period-Market One-Candle Patterns","id":"201dc796-db42-49ce-8b9c-1b26c0f3a0ce","savedPayload":{"position":{"x":13053.773008970187,"y":11505.43035401585},"targetPosition":{"x":13213.4740995075,"y":11664.527233498671},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"144d8665-1ff0-4db3-9340-a33fd7d0d098"}}},{"type":"Output Dataset","name":"Multi-Period-Market Two-Candles Patterns","id":"c20616cc-d93f-40fc-904a-025fc2799a75","savedPayload":{"position":{"x":13114.615218060771,"y":11461.962677650328},"targetPosition":{"x":13213.4740995075,"y":11664.527233498671},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"8c35ce52-9dee-4d20-92e6-50ba7fd2882b"}}},{"type":"Output Dataset","name":"Multi-Period-Market Three-Candles Patterns","id":"c8074ffc-f5ff-4cb5-8e83-0adcecc82a0c","savedPayload":{"position":{"x":13211.46873119432,"y":11466.168099347926},"targetPosition":{"x":13213.4740995075,"y":11664.527233498671},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"087fc67e-78f9-4204-ba5e-8b670566a716"}}}],"id":"0dc09316-0987-4d22-b600-bd3868942026","savedPayload":{"position":{"x":13213.4740995075,"y":11664.527233498671},"targetPosition":{"x":13427.670947273291,"y":11978.477228568285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Candle Patterns Multi-Period-Market","code":"{\"mainUtility\": \"Self Reference\"}","id":"2d079388-93e4-4005-b392-c4a997904ccb","savedPayload":{"position":{"x":13236.229833924866,"y":11365.540590705074},"targetPosition":{"x":13393.866758309712,"y":11525.809343112047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"401fbf30-8faa-40e9-9707-fac2d35f6195"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","code":"{ \n\"mainUtility\": \"Market Starting Point\"\n}","id":"418e1725-b690-4a55-b5f7-a4a92465c162","savedPayload":{"position":{"x":13378.090018146784,"y":11311.418729308469},"targetPosition":{"x":13393.866758309712,"y":11525.809343112047},"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","id":"85c548fd-9ef7-4936-a86d-2a206cf90039","savedPayload":{"position":{"x":13534.119041551294,"y":11363.003070936125},"targetPosition":{"x":13393.866758309712,"y":11525.809343112047},"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"}}}],"id":"de8bf1ab-cf7b-41ab-b8cb-ae38b1e587ce","savedPayload":{"position":{"x":13393.866758309712,"y":11525.809343112047},"targetPosition":{"x":13427.670947273291,"y":11978.477228568285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"401fbf30-8faa-40e9-9707-fac2d35f6195","savedPayload":{"position":{"x":13603.179986581014,"y":11613.905042446066},"targetPosition":{"x":13427.670947273291,"y":11978.477228568285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","id":"e100074c-7981-49e1-9d06-813104ee4c41","savedPayload":{"position":{"x":13762.503794823628,"y":11749.438334039018},"targetPosition":{"x":13427.670947273291,"y":11978.477228568285},"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","id":"2a8f2e62-256b-4281-a470-3f640af21337","savedPayload":{"position":{"x":13838.07181053804,"y":11948.152768924294},"targetPosition":{"x":13427.670947273291,"y":11978.477228568285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3aaf9f93-0516-4b3d-9772-44be91615154","savedPayload":{"position":{"x":13950.370695500971,"y":11647.471718959365},"targetPosition":{"x":13606.59207657629,"y":12362.027718520723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Calculates Candles Patterns for Time Frames of 45-min and below.\",\n \"startMode\": {\n \"allMonths\": {\n \"run\": \"false\",\n \"minYear\": \"\",\n \"maxYear\": \"\"\n },\n \"oneMonth\": {\n \"run\": \"false\",\n \"year\": \"\",\n \"month\": \"\"\n },\n \"noTime\": {\n \"run\": \"true\"\n },\n \"fixedInterval\": {\n \"run\": \"false\",\n \"interval\": 0\n }\n },\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\",\n \"startDate\": {\n \"takeItFromStatusDependency\": 0\n },\n \"endDate\": {\n \"takeItFromStatusDependency\": 1\n }\n }\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Basic Candles","id":"3fc6cd67-c356-41fc-89d9-5c1cdcdd7360","savedPayload":{"position":{"x":13814.82981676934,"y":11210.620425655228},"targetPosition":{"x":14023.609954390777,"y":11501.474680336007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9e6d7f95-b2fe-466e-9a5d-175479cbf85d"}}},{"type":"Output Dataset","name":"Multi-Period-Daily One-Candle Patterns","id":"7b078979-c28c-4ba5-8305-d469c8d4ec84","savedPayload":{"position":{"x":13915.392401579804,"y":11160.138295803597},"targetPosition":{"x":14023.609954390777,"y":11501.474680336007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f0a11771-dd69-4b9a-9347-7cb2d1f231ff"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Two-Candles Patterns","id":"5ab95923-5553-40a7-836e-14b96f8a4764","savedPayload":{"position":{"x":14026.050837456278,"y":11143.489245220206},"targetPosition":{"x":14023.609954390777,"y":11501.474680336007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4f1260c8-6d74-454e-963a-fa3ff910329c"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Three-Candles Patterns","id":"cb6acbaf-bf43-4bf6-b8ca-7689130cc9cf","savedPayload":{"position":{"x":14137.001698365588,"y":11162.191028915156},"targetPosition":{"x":14023.609954390777,"y":11501.474680336007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b60cb94f-79c5-410c-b166-abc97d0f2bc3"}}}],"id":"bcfa61bd-e1d0-4a60-9fd5-ab7dabe4fd39","savedPayload":{"position":{"x":14023.609954390777,"y":11501.474680336007},"targetPosition":{"x":14086.948199287108,"y":11924.601188793304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Candles Patterns Multi-Period-Daily","code":"{\"mainUtility\": \"Self Reference\"}","id":"a7ea36fb-cc2e-4d55-b021-e67d8c5a7020","savedPayload":{"position":{"x":14155.912206707464,"y":10958.342657178391},"targetPosition":{"x":14348.13586069017,"y":11259.956647901501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"3a20d7e9-d551-4346-81c7-e3b0098bef99"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","code":"{\"mainUtility\": \"Market Starting Point\"}","id":"48b53dc5-015c-43f1-9485-047aaaffe0f7","savedPayload":{"position":{"x":14369.563493443755,"y":10902.913742173105},"targetPosition":{"x":14348.13586069017,"y":11259.956647901501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"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","code":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","id":"49d2c9ad-bdde-427a-8590-801aa4422cca","savedPayload":{"position":{"x":14575.278621413228,"y":10983.731390945131},"targetPosition":{"x":14348.13586069017,"y":11259.956647901501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","id":"19bf518a-1e20-4e3a-8f40-8e07324f634b","savedPayload":{"position":{"x":14694.258957517683,"y":11170.063669211186},"targetPosition":{"x":14348.13586069017,"y":11259.956647901501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"id":"2a7a3bf2-9044-4040-95a7-28c1a339a37f","savedPayload":{"position":{"x":14348.13586069017,"y":11259.956647901501},"targetPosition":{"x":14086.948199287108,"y":11924.601188793304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"3a20d7e9-d551-4346-81c7-e3b0098bef99","savedPayload":{"position":{"x":14645.560909474185,"y":11479.627921322592},"targetPosition":{"x":14086.948199287108,"y":11924.601188793304},"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","id":"4d03c099-0d5e-4668-a347-c0de2f42f8bd","savedPayload":{"position":{"x":14515.901435945685,"y":11860.04841298157},"targetPosition":{"x":14086.948199287108,"y":11924.601188793304},"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","id":"3ef2f54d-64c9-4264-a298-0c5a908458ab","savedPayload":{"position":{"x":14487.323542021102,"y":12081.165342539933},"targetPosition":{"x":14086.948199287108,"y":11924.601188793304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8a7ce3e2-20a1-496b-86bf-2d7842f88536","savedPayload":{"position":{"x":14226.6547585291,"y":11867.768625370629},"targetPosition":{"x":13606.59207657629,"y":12362.027718520723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Basic Candles","code":"{\n \"codeName\": \"Basic-Candles\",\n \"singularVariableName\": \"basicCandle\",\n \"pluralVariableName\": \"basicCandles\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"07be5b9b-e8fd-49fc-ab77-20f89fdea10f","savedPayload":{"position":{"x":14428.195169444913,"y":11854.812092996133},"targetPosition":{"x":14282.02559347152,"y":12197.197566354245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"9e6d7f95-b2fe-466e-9a5d-175479cbf85d","savedPayload":{"position":{"x":14601.514604868862,"y":12006.69816479026},"targetPosition":{"x":14282.02559347152,"y":12197.197566354245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"Basic Candles Variables","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","code":"record.current.begin","id":"7d35e864-2f37-4d1c-912d-225952131ffd","savedPayload":{"position":{"x":15127.939028481416,"y":11816.525419765045},"targetPosition":{"x":15387.688231694168,"y":11918.989845926302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"52215804-fb71-43ed-a232-3b29d843cb58","savedPayload":{"position":{"x":15387.688231694168,"y":11918.989845926302},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"bdeaed7f-2923-4fde-a7ea-257f00bb7ee9","savedPayload":{"position":{"x":15246.07240005028,"y":11608.820466242958},"targetPosition":{"x":15466.520322835773,"y":11780.561876712998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b8f2240b-03a9-4fd5-8e37-d43237554239","savedPayload":{"position":{"x":15466.520322835773,"y":11780.561876712998},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"name","code":"{\n \"codeName\": \"name\",\n \"isString\": true\n}","formula":{"type":"Formula","code":"variable.name","id":"5ac4a021-ae1b-45d7-80ea-09587174c038","savedPayload":{"position":{"x":15417.707055580626,"y":11443.434740736122},"targetPosition":{"x":15580.974897394168,"y":11670.19758162406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8220f919-2232-47b2-8bcb-1d30a905c026","savedPayload":{"position":{"x":15580.974897394168,"y":11670.19758162406},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"size","code":"{ \n\"codeName\": \"size\",\n\"isString\": true\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.size","id":"8162dea0-df67-42b5-8223-7533f950af7a","savedPayload":{"position":{"x":15629.303554034559,"y":11332.716355251554},"targetPosition":{"x":15721.874082289012,"y":11596.528740357437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2bff73a1-c5c2-4413-91ed-9d2aaf642d83","savedPayload":{"position":{"x":15721.874082289012,"y":11596.528740357437},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"direction","code":"{ \n\"codeName\": \"direction\",\n\"isString\": true\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.direction","id":"770f6a35-9069-49ba-9c12-99dc6e5ff54a","savedPayload":{"position":{"x":15863.297678003159,"y":11286.411919238653},"targetPosition":{"x":15877.835942969192,"y":11565.740790632775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"871bc42d-f3f7-4896-b575-ca23f325e50f","savedPayload":{"position":{"x":15877.835942969192,"y":11565.740790632775},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"upperShadowPercent","code":"{ \n\"codeName\": \"upperShadowPercent\",\n\"isString\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.upperShadowPercent","id":"1645f231-45ab-48b5-9891-45f27e2b4d7e","savedPayload":{"position":{"x":16100.383887967386,"y":11307.775647761064},"targetPosition":{"x":16035.898908294184,"y":11579.830281086974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"dec83c16-8f66-4403-9dda-e536223e7577","savedPayload":{"position":{"x":16035.898908294184,"y":11579.830281086974},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bodyPercent","code":"{ \n\"codeName\": \"bodyPercent\",\n\"isString\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.bodyPercent","id":"36408e7c-d9cc-4d63-9115-feffa763b85f","savedPayload":{"position":{"x":16322.022917705659,"y":11395.267266757755},"targetPosition":{"x":16183.698010961622,"y":11638.159796285936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cba04177-1edd-444f-94a3-79784d84d70e","savedPayload":{"position":{"x":16183.698010961622,"y":11638.159796285936},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"lowerShadowPercent","code":"{ \n\"codeName\": \"lowerShadowPercent\",\n\"isString\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.lowerShadowPercent","id":"71464adc-3bd3-47b8-b018-cbacf897c119","savedPayload":{"position":{"x":16510.595118433743,"y":11541.805900307281},"targetPosition":{"x":16309.28417074969,"y":11735.742370968435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c2c5753a-2e74-4429-9b6a-aa016a753be2","savedPayload":{"position":{"x":16309.28417074969,"y":11735.742370968435},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"body","code":"{ \n\"codeName\": \"body\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.body","id":"1bc97398-5645-4452-9169-f62efc0a7fe1","savedPayload":{"position":{"x":16649.862514301047,"y":11735.225677070326},"targetPosition":{"x":16402.11751924421,"y":11864.671996317895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f0019951-d651-4fcf-888e-0a0cf1564c98","savedPayload":{"position":{"x":16402.11751924421,"y":11864.671996317895},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"upperShadow","code":"{ \n\"codeName\": \"upperShadow\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.upperShadow","id":"cf426ed9-53d3-411e-acf1-1694c5d45b89","savedPayload":{"position":{"x":16729.0764873906,"y":11960.582147915231},"targetPosition":{"x":16454.858369364494,"y":12014.768933801128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2d3b26eb-15bc-4272-b296-9658ac24baa9","savedPayload":{"position":{"x":16454.858369364494,"y":12014.768933801128},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"lowerShadow","code":"{ \n\"codeName\": \"lowerShadow\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.lowerShadow","id":"a0909b34-9ad9-4290-aa93-5b1731b74a66","savedPayload":{"position":{"x":16742.01206754522,"y":12198.188052716076},"targetPosition":{"x":16463.403229052834,"y":12173.186128916357},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2369782b-6afb-41e1-a93f-721c7442e5c3","savedPayload":{"position":{"x":16463.403229052834,"y":12173.186128916357},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"length","code":"{ \n\"codeName\": \"length\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.length","id":"3639b9ee-c558-4699-9b48-2ddfdc59fa33","savedPayload":{"position":{"x":16686.968822601964,"y":12430.21258429505},"targetPosition":{"x":16426.82231102211,"y":12327.932168126248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a6773db1-97fb-418d-b7cf-d4298054f376","savedPayload":{"position":{"x":16426.82231102211,"y":12327.932168126248},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"meanBody","code":"{ \n\"codeName\": \"meanBody\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.meanBody","id":"a45ab78a-fa03-469b-ab64-78fd184d9dd5","savedPayload":{"position":{"x":16568.563673527475,"y":12637.657602791887},"targetPosition":{"x":16347.943146200396,"y":12465.989970586961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c32b5645-7bbe-4f06-aaef-d9efc3a5c9da","savedPayload":{"position":{"x":16347.943146200396,"y":12465.989970586961},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"avgRef","code":"{ \n\"codeName\": \"avgRef\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.avgRef","id":"26313abc-cd03-4fb9-b54d-2a0d67a3c0da","savedPayload":{"position":{"x":16396.95716008808,"y":12803.215606722491},"targetPosition":{"x":16233.558031826937,"y":12576.405072409163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0bdc3b36-d092-421f-8741-a0ecfa8fcc41","savedPayload":{"position":{"x":16233.558031826937,"y":12576.405072409163},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Nbodies","code":"{ \n\"codeName\": \"Nbodies\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.Nbodies","id":"f5b650b4-497d-4eef-84f8-c53b5703dbed","savedPayload":{"position":{"x":16185.456446329934,"y":12913.579981425799},"targetPosition":{"x":16092.631933821867,"y":12649.946689224127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cf0a624b-44cb-4926-8e26-867ea485e3fe","savedPayload":{"position":{"x":16092.631933821867,"y":12649.946689224127},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"dojiFactor","code":"{ \n\"codeName\": \"dojiFactor\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.dojiFactor","id":"8e3696bf-dace-4ecb-a9e7-db654ba86ed8","savedPayload":{"position":{"x":15951.338423271372,"y":12960.07191237919},"targetPosition":{"x":15936.664027922136,"y":12680.941417585764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cda80e33-8ed9-4579-8c45-99da25652634","savedPayload":{"position":{"x":15936.664027922136,"y":12680.941417585764},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"sizeFactor","code":"{ \n\"codeName\": \"sizeFactor\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.sizeFactor","id":"08e5507c-e88f-410e-ac54-886d8ce157d2","savedPayload":{"position":{"x":15714.911759608227,"y":12938.753275437566},"targetPosition":{"x":15778.880197046594,"y":12666.480185362861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"20fadb1a-1f55-4b10-ba45-cda61d8d0157","savedPayload":{"position":{"x":15778.880197046594,"y":12666.480185362861},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Nlengths","code":"{ \n\"codeName\": \"Nlengths\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.Nlengths","id":"addc3851-bbe2-47ac-8652-5b745e12918a","savedPayload":{"position":{"x":15481.703225238807,"y":12854.291052921695},"targetPosition":{"x":15630.890909021455,"y":12608.227366997262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0a736450-a2e1-41a0-8c29-cd2434296872","savedPayload":{"position":{"x":15630.890909021455,"y":12608.227366997262},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"sizeMethod","code":"{ \n\"codeName\": \"sizeMethod\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.sizeMethod","id":"e2109d1f-c4aa-46d6-a6b7-75d1ffd9c0ee","savedPayload":{"position":{"x":15304.563842686297,"y":12704.592493090222},"targetPosition":{"x":15505.452513022656,"y":12510.667579840174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"23853614-5c16-4e3e-b1ae-d3fda37d5884","savedPayload":{"position":{"x":15505.452513022656,"y":12510.667579840174},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"meanLength","code":"{ \n\"codeName\": \"meanLength\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.meanLength","id":"4731c75f-5e23-4972-ba37-10bd4363ee0d","savedPayload":{"position":{"x":15165.029513378944,"y":12510.925606284693},"targetPosition":{"x":15412.45005195976,"y":12381.611095625749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fc7702c5-1b49-4ed6-b2b3-fde741557115","savedPayload":{"position":{"x":15412.45005195976,"y":12381.611095625749},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"min","code":"{ \n\"codeName\": \"min\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.candleMin","id":"016b76f2-2f06-408e-986f-e29cd5edc107","savedPayload":{"position":{"x":15085.888117137885,"y":12285.431442875508},"targetPosition":{"x":15359.625290852648,"y":12231.37526005558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"31730ec0-eedf-404d-9a38-bd065bdc2064","savedPayload":{"position":{"x":15359.625290852648,"y":12231.37526005558},"targetPosition":{"x":15907.153147447421,"y":12123.258200863127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4d364dfd-44f1-4d8e-87fd-5aa54564e167","savedPayload":{"position":{"x":15907.153147447421,"y":12123.258200863127},"targetPosition":{"x":14282.02559347152,"y":12197.197566354245},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","code":"/* ¡¡¡ VERY IMPORTANT !!!\n\"PLEASE READ BEFORE STARTING ALL DOCUMENTATION RELATED TO THIS INDICATOR ON THE SUPERALGOS WEBSITE\" */\n\n/* INTRODUCTION:\nThere are a lot of combinations in order to construct a candle. That's why we are going to define 4 families of candles based on their appearence.\n1) “CLASSIC CANDLES”: These candles have two shadows shorter than the body.\n2) “MARUBOZU CANDLES”: These candles have no at least one shadow. The shadow, if present, cannot be longer than the body. \n3) “SPINNING TOP CANDLES”: These candles have differents opening and closing prices and have at least one shadow. At the same time at least one shadow has to be longer than the body.\n4) “DOJI CANDLES”: These candles have no body. The open price is equal to the close price. */\n\n// ---------------------------------------------------------------------------------------------------------------------\n// From here the variables to be used will be defined\n// ---------------------------------------------------------------------------------------------------------------------\n\n/* The following variables could be modified by the user to adapt the indicator with his preferences\n(Please, read the documentation before) */\n\nlet sizeMethod = \"SMA\" // Choose \"SMA\" or \"EMA\" to calculate the average length of the last \"Nlengths\" candles\nlet Nlengths = 20 // Default value: 20 - \"Nlengths\" is the number of candles to calculate the average length value\nlet sizeFactor = 75 // Default value: 75% - \"sizeFactor\" is to define \"Long\" or \"Short\" size\nlet Nbodies = 10 // Default value: 10 - \"Nbodies\" is the number of bodies to calculate the average bodie value\nlet dojiFactor = 3 // Default value: 3% - \"dojiFactor\" is to define when a candle is \"doji\" or not\n\n /* In order to avoid errors, the initial condition of the name of the candle is defined */\nvariable.name = \"Unknown\" // To be used on the Plotter Panel and Conditions\n\n/* Candles as dependencies are defined */\nlet candle = record.current \n\n/* The height of the body */\nlet body = Math.abs (candle.close-candle.open)\n\n/* Array of N bodies is defined to verify if a candle has a Short Body or a Long Body */\nif (variable.lastNbodies.length > Nbodies) {\n variable.lastNbodies.shift() // Remove the first element of the array to keep it at a maximun of N elements\n}\nlet meanBody \nif (variable.lastNbodies.length < Nbodies) { // If \"lastNbodies\" array hasn't enough bodies, zero value is defined\n meanBody = 0 \n} else { \n let sum = 0 // Initialize sum variable \n for (let i = variable.lastNbodies.length-Nbodies; i < variable.lastNbodies.length; i++) { // Iterate through the last periods\n sum = sum + variable.lastNbodies[i]\n } \n meanBody = sum/Nbodies\n}\nvariable.lastNbodies.push(body) // Add the current body value to the \"lastNbodies\" array for next cycle\n\n /* Total length of the candle, equivalent to the sum of upper shadow, lower shadow and body */\nlet length = candle.max - candle.min \n\n/* Calculating average candles length \"EMA\" or \"SMA\" */\nif (sizeMethod === \"EMA\") {\n let k = 2 / (Nlengths + 1)\n variable.EMAlength = length * k + variable.previousEMAlength * (1-k)\n variable.previousEMAlength = variable.EMAlength\n variable.avgRef = variable.EMAlength * sizeFactor / 100\n variable.SMAlength = 0\n} \nif (sizeMethod === \"SMA\") {\n variable.EMAlength = 0\n if (variable.lastNlengths.length > Nlengths) {\n variable.lastNlengths.shift() // Remove the first element of the array to keep it at a maximun of N elements \n } \n if (variable.lastNlengths.length < Nlengths) { // If \"lastNlengths\" array hasn't enough candles length, zero value is defined\n variable.SMAlength = 0 \n variable.avgRef = 0 \n } else { \n let sum = 0 // Initialize sum variable \n for (let i = variable.lastNlengths.length-Nlengths; i < variable.lastNlengths.length; i++) { // Iterate through the last periods\n sum = sum + variable.lastNlengths[i]\n } \n variable.SMAlength = sum/Nlengths\n variable.avgRef = variable.SMAlength * sizeFactor / 100 // To be used in Shapes\n }\n variable.lastNlengths.push(length) // Add the current length value to the \"lastNlengths\" array for next cycle\n}\n\n/* Only one MA is calculated, the other is defined as 0. It is useful to integrate both variables into one for future operations */\nvariable.meanLength = variable.SMAlength + variable.EMAlength // To be used in Shapes and Conditions\n\n/* Defining if a candle is \"Long\" or \"Short\" */\nlet size\nif (length > variable.avgRef) {\n size = \"Long\"\n} else {\n size = \"Short\"\n} \n\n/* Green candles are \"Bullish\" and red candles are \"Bearish\" */\nlet direction \nif (candle.close > candle.open) {\n direction = \"Bullish\"\n} else {\n direction = \"Bearish\"\n}\n\n/* The value of the upper shadow */\nlet upperShadow \nif (direction === \"Bullish\") {\n upperShadow = candle.max-candle.close\n} else {\n upperShadow = candle.max-candle.open\n}\n\n/* The value of the lower shadow */\nlet lowerShadow \nif (direction === \"Bullish\") {\n lowerShadow = candle.open-candle.min\n} else {\n lowerShadow = candle.close-candle.min\n}\n\n/* Four possibilities of combinations of the shadows are defined: \"lower\", \"upper\", \"both\", \"none\" */\nlet shadow\nif (upperShadow > 0 && lowerShadow > 0) {\n shadow = \"Both\"\n}\nif (upperShadow === 0 && lowerShadow === 0) {\n shadow = \"None\"\n}\nif (upperShadow > 0 && lowerShadow === 0) {\n shadow = \"Upper\"\n}\nif (upperShadow === 0 && lowerShadow > 0) {\n shadow = \"Lower\"\n}\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here the name of the candles will be defined\n// ----------------------------------------------------------------------------------------------------------------------------\n\nif (body > length*dojiFactor/100) { // From here all kind of candles that are NOT \"doji\" are defined\n\n/* \"CLASSIC CANDLES\" family:\nThese candles have the following characteristics in common:\n1) Both shadows are present.\n2) Each shadow is shorter than the body. \n3) The opening price differs from the closing price. */\n\nif (shadow === \"Both\" && upperShadow <= body && lowerShadow <= body) {\n\n/* \"SHORT GREEN CANDLE\" and \"SHORT RED CANDLE\" properties:\n1) Bullish or Bearish.\n2) Relative Size: Short. */\n\nif (direction === \"Bullish\" && size === \"Short\") {\n variable.name = \"Short Green Candle\"\n}\nif (direction === \"Bearish\" && size === \"Short\") {\n variable.name = \"Short Red Candle\"\n}\n\n/* \"GREEN CANDLE\" and \"RED CANDLE\" properties: \n1) Bullish or Bearish.\n2) Relative Size: Long . */\n\nif (direction === \"Bullish\" && size === \"Long\") {\n variable.name = \"Green Candle\"\n}\nif (direction === \"Bearish\" && size === \"Long\") {\n variable.name = \"Red Candle\"\n}\n\n/* \"LONG GREEN CANDLE\" and \"LONG RED CANDLE\" properties:\n1) Bullish or Bearish respectively.\n2) The body is at least three times higher than the mean body.\n4) Relative Size: Long. */\n\nif (direction === \"Bullish\" && size === \"Long\" && body >= meanBody*3) {\n variable.name = \"Long Green Candle\"\n}\nif (direction === \"Bearish\" && size === \"Long\" && body >= meanBody*3) {\n variable.name = \"Long Red Candle\"\n}\n\n} // Closing \"Classic Candles\" Family \n\n/* \"MARUBOZU CANDLES\" family:\nThese candles have the following characteristics in common:\n1) Lack at least one shadow.\n2) If it has one shadow, it must be shorter than the body.\n3) The opening price differs from the closing price.\n4) Relative Size: Short or Long. */\n\n/* \"GREEN MARUBOZU\" and \"RED MARUBOZU\" properties: \n1) Bullish or Barish.\n2) No shadows. */\n\nif (direction === \"Bullish\" && shadow === \"None\") {\n variable.name = \"Green Marubozu\"\n}\nif (direction === \"Bearish\" && shadow === \"None\") {\n variable.name = \"Red Marubozu\"\n}\n\n/* \"OPENING GREEN MARUBOZU\" properties: \n1) Bullish.\n2) No lower shadow. */\n\nif (direction === \"Bullish\" && shadow === \"Upper\" && upperShadow <= body) {\n variable.name = \"Opening Green Marubozu\"\n}\n\n/* \"CLOSING GREEN MARUBOZU\" properties:\n1) Bullish.\n2) No upper shadow. */\n\nif (direction === \"Bullish\" && shadow === \"Lower\" && lowerShadow <= body) {\n variable.name = \"Closing Green Marubozu\"\n}\n\n/* \"CLOSING RED MARUBOZU\" properties:\n1) Bearish.\n2) No lower shadow. */\n\nif (direction === \"Bearish\" && shadow === \"Upper\" && upperShadow <= body) {\n variable.name = \"Closing Red Marubozu\"\n}\n\n/* \"OPENING RED MARUBOZU\" properties: \n1) Bearish.\n2) No upper shadow. */\n\nif (direction === \"Bearish\" && shadow === \"Lower\" && lowerShadow <= body) {\n variable.name = \"Opening Red Marubozu\"\n}\n\n/* \"SPINNING TOP CANDLES\" family:\nThese candles have the following characteristics in common:\n1) Have at least one shadow.\n2) At least one shadow is greater than the body.\n3) The opening price differs from the closing price. */\n\n/* \"GREEN SPINNING TOP\" and \"RED SPINNING TOP\" properties:\n1) Bullish or Bearish.\n4) Relative Size: Short or Long. \n5) If it's relative size is Long, none of the shadows can exceed three times the body. */\n\nif (shadow !== \"None\") { \n if (upperShadow > body || lowerShadow > body) { \n if (size === \"Long\") {\n if (upperShadow > 3*body || lowerShadow > 3*body) {\n } else {\n if (direction === \"Bullish\") {\n variable.name = \"Green Spinning Top\"\n } else {\n variable.name = \"Red Spinning Top\"\n }\n } \n } else {\n if (direction === \"Bullish\") {\n variable.name = \"Green Spinning Top\"\n } else {\n variable.name = \"Red Spinning Top\"\n }\n }\n } \n} \n\n/* \"HIGH WAVE\" properties:\n1) Bullish or Bearish.\n2) Relative Size: Long.\n3) The length of at least one shadow is at least 3 times larger than the body.*/\n\nif (shadow !== \"None\" && size === \"Long\") {\n if (upperShadow > 3*body || lowerShadow > 3*body) { \n variable.name = \"High Wave\"\n } \n}\n\n} else { // Closing the initial \"dojiFactor\" if condition, from here \"Doji Candles\" family are defined \n\n/* \"DOJI CANDLES\" family:\nThese candles have the following characteristics in common:\n1) Have no body, or very small body if it is allowed. */\n\n/* \"FOUR-PRICE DOJI\" properties:\n1) No shadows.\n2) Relative Size: Short.*/\n\nif (shadow === \"None\" && size === \"Short\") {\n variable.name = \"Four-Price Doji\"\n}\n\n/* \"STAR DOJI\" properties:\n1) Body is located nearly mid-range (between 60% and 40% of total length).\n2) Relative Size: Short. */\n\nif (size === \"Short\" && upperShadow <= length * 0.6 && upperShadow >= length * (0.4 - dojiFactor/100)) {\n variable.name = \"Star Doji\"\n}\n\n/* \"LONG-LEGGED DOJI\" properties:\n1) Body is located nearly mid-range (between 60% and 40% of total length).\n2) Relative Size: Long. */\n\nif (size === \"Long\" && upperShadow <= length * 0.6 && upperShadow >= length * (0.4 - dojiFactor/100)) {\n variable.name = \"Long-Legged Doji\"\n}\n\n/* \"DRAGONFLY DOJI\" properties:\n1) Upper shadow shorter than 1% of total candle length.\n2) Relative Size: Long. */\n\nif (size === \"Long\" && upperShadow <= length * 0.01) {\n variable.name = \"Dragonfly Doji\"\n}\n\n/* \"GRAVESTONE DOJI\" properties:\n1) Lower shadow shorter than 1% of total candle length.\n2) Relative Size: Long.*/\n\nif (size === \"Long\" && lowerShadow <= length * 0.01) {\n variable.name = \"Gravestone Doji\"\n}\n\n/* \"GENERIC DOJI\" properties:\n1) None of the above five Doji. */\n\nif (variable.name === \"Unknown\") {\n variable.name = \"Generic Doji\"\n}\n\n} // Closing the \"dojiFactor\" else\n\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here all the variables that will be written in the records are defined \n// ----------------------------------------------------------------------------------------------------------------------------\n\nvariable.size = size // To be used on the Plotter Panel and Conditions\nvariable.direction = direction // To be used on the Plotter Panel and Conditions\nif (length > 0) { // Condition to avoid dividing by 0\n variable.upperShadowPercent = upperShadow/length*100 // To be used on the Plotter Panel\n variable.bodyPercent = body/length*100 // To be used on the Plotter Panel\n variable.lowerShadowPercent = lowerShadow/length*100 // To be used on the Plotter Panel\n} else {\n variable.lowerShadowPercent = 0\n variable.bodyPercent = 0\n variable.upperShadowPercent = 0\n}\nvariable.Nbodies = Nbodies // To be used on the Plotter Panel\nvariable.sizeFactor = sizeFactor // To be used on the Plotter Panel\nvariable.dojiFactor = dojiFactor // To be used on the Plotter Panel\nvariable.Nlengths = Nlengths // To be used on the Plotter Panel\nvariable.sizeMethod = sizeMethod // To be used on the Plotter Panel\nvariable.candleMin = candle.min // To be used in Shapes\nvariable.length = length // To be used in Conditions\nvariable.upperShadow = upperShadow // To be used in Conditions\nvariable.lowerShadow = lowerShadow // To be used in Conditions\nvariable.body = body // To be used in Conditions\nvariable.meanBody = meanBody // To be used in Conditions\n","id":"119670a5-5f25-4a75-aaad-6939a18aebf0","savedPayload":{"position":{"x":15578.211960985802,"y":12826.18654284573},"targetPosition":{"x":15202.902576599441,"y":12756.938898857712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"shortcutKey":"f"}}},"id":"351fa6f0-1fbb-4e1b-9d95-3599476aed35","savedPayload":{"position":{"x":15202.902576599441,"y":12756.938898857712},"targetPosition":{"x":14839.5003498846,"y":12684.719289550252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* ¡¡¡ VERY IMPORTANT !!!\n\"PLEASE READ BEFORE STARTING ALL DOCUMENTATION RELATED TO THIS INDICATOR ON THE SUPERALGOS WEBSITE\" */\n\n/* It is necessary to define when a candle has a long or a short body. To do that, the bodies of the last N candles have to be averaged. */\nvariable.lastNbodies = [ ] // Define \"lastNbodies\" array to record the value of the last N bodies (SMA)\n\n/* It is necessary to define when a candle is \"Long\" or \"Short\". To do that, the length of the last N candles have to be averaged. */\nvariable.previousEMAlength = 0 // Initialize the variable previous enter to the main loop (EMA)\nvariable.lastNlengths = [ ] // Define \"lastNlengths\" array to record the value of the last N candles length (SMA)","id":"70e6788a-2518-48cf-8493-27f1e7e5ad61","savedPayload":{"position":{"x":15019.074641186478,"y":13213.234372073503},"targetPosition":{"x":14959.275402183777,"y":13036.739578043598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0b2207a1-b217-4c06-92bd-6985d621d035","savedPayload":{"position":{"x":14959.275402183777,"y":13036.739578043598},"targetPosition":{"x":14839.5003498846,"y":12684.719289550252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f2638b08-3f3b-4574-9e89-dc41f984273d","savedPayload":{"position":{"x":14839.5003498846,"y":12684.719289550252},"targetPosition":{"x":14282.02559347152,"y":12197.197566354245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7519e3d8-b5ec-47eb-84c9-8c9262c9efc6","savedPayload":{"position":{"x":14379.01609552293,"y":12186.037908738683},"targetPosition":{"x":13606.59207657629,"y":12362.027718520723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Basic Candles","id":"09e0a24c-ead1-40c6-9e43-72b46e4294c5"}}},{"type":"Product Definition","name":"One-Candle Patterns","code":"{\n \"codeName\": \"One-Candle-Patterns\",\n \"singularVariableName\": \"oneCandlePattern\",\n \"pluralVariableName\": \"oneCandlePatterns\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"144d8665-1ff0-4db3-9340-a33fd7d0d098","savedPayload":{"position":{"x":14677.265154103477,"y":12277.3426901297},"targetPosition":{"x":14378.665138402355,"y":12538.284209229136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"f0a11771-dd69-4b9a-9347-7cb2d1f231ff","savedPayload":{"position":{"x":14773.683154122755,"y":12503.125419865399},"targetPosition":{"x":14378.665138402355,"y":12538.284209229136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"One-Candle Patterns Records","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","code":"record.current.begin","id":"6269672d-95af-44a9-8f10-52f7d4a6892b","savedPayload":{"position":{"x":14472.54823059946,"y":12281.003258438875},"targetPosition":{"x":14648.596929759962,"y":12635.807923321734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"023fd450-0cae-4b41-8cb2-c446ac69bf32","savedPayload":{"position":{"x":14648.596929759962,"y":12635.807923321734},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"6902c73f-da76-4ca0-b8c2-4ac0351c9a59","savedPayload":{"position":{"x":14924.885575338732,"y":12200.770706579715},"targetPosition":{"x":14880.854978772315,"y":12595.012553863566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ebafaaab-38a0-4bed-a8ea-169f0e92b1cb","savedPayload":{"position":{"x":14880.854978772315,"y":12595.012553863566},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"name","code":"{ \n\"codeName\": \"name\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.name","id":"ae345ad9-8364-4e58-bd0a-8b44803b1d98","savedPayload":{"position":{"x":15346.72595261088,"y":12377.448931214922},"targetPosition":{"x":15097.20646207978,"y":12684.90038670266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b633fced-5335-4a72-b0cf-ebb6237e2a17","savedPayload":{"position":{"x":15097.20646207978,"y":12684.90038670266},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trend","code":"{ \n\"codeName\": \"trend\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.trend","id":"5cd8361b-112f-4a4f-9fcd-42a2ff493e96","savedPayload":{"position":{"x":15607.183556794776,"y":12754.380222707294},"targetPosition":{"x":15229.831916782749,"y":12878.413753752653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"853f4eb3-8068-47d1-9726-22b0c7e835ad","savedPayload":{"position":{"x":15229.831916782749,"y":12878.413753752653},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"forecast","code":"{ \n\"codeName\": \"forecast\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.forecast","id":"3b9c18d5-c9e8-4fad-bb3c-1c46751b91a9","savedPayload":{"position":{"x":15621.141834871996,"y":13212.089066920023},"targetPosition":{"x":15238.309032589365,"y":13113.425547400535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1325daec-fb39-4cb8-acec-14adc2ee94e9","savedPayload":{"position":{"x":15238.309032589365,"y":13113.425547400535},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendLine","code":"{ \n\"codeName\": \"trendLine\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.trendLine","id":"d4a6b997-360b-442b-a08c-b75c331a6a84","savedPayload":{"position":{"x":15186.37140449328,"y":13388.867600409001},"targetPosition":{"x":15116.549027493877,"y":13313.983358004109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"e1a74ac9-f660-4d09-89e9-f8eaebf137c4","savedPayload":{"position":{"x":15116.549027493877,"y":13313.983358004109},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bearishArrowHead","code":"{ \n\"codeName\": \"bearishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.bearishArrowHead","id":"7ca628f3-61d6-4b1f-a4a8-610d07bd8bdb","savedPayload":{"position":{"x":14925.418293373801,"y":13518.504568889228},"targetPosition":{"x":14907.187961036754,"y":13418.154401005628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"d9837267-f999-420e-8906-169c546fc7f5","savedPayload":{"position":{"x":14907.187961036754,"y":13418.154401005628},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bullishArrowHead","code":"{ \n\"codeName\": \"bullishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.bullishArrowHead","id":"9ddcf2bf-57b5-489e-a7a5-496afd9b7301","savedPayload":{"position":{"x":14641.248110481109,"y":13492.252549326506},"targetPosition":{"x":14679.765134827063,"y":13401.079156985605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c474fa25-64ec-470c-ab04-4132e0f3f9a3","savedPayload":{"position":{"x":14679.765134827063,"y":13401.079156985605},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"period","code":"{ \n\"codeName\": \"period\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.period","id":"4986b4c7-0753-4bab-bf62-906acab4c408","savedPayload":{"position":{"x":14327.714517012997,"y":13358.62652275823},"targetPosition":{"x":14491.85350947707,"y":13245.093105108044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"49eea75b-d5c8-44cd-afa7-8689127ac9ae","savedPayload":{"position":{"x":14491.85350947707,"y":13245.093105108044},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendMethod","code":"{ \n\"codeName\": \"trendMethod\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.trendMethod","id":"8fdf87c8-a467-49a9-9b6a-e70cd12a2b93","savedPayload":{"position":{"x":14219.183852429282,"y":13029.250470753317},"targetPosition":{"x":14418.47384199702,"y":13022.500443414949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6337c29e-3df8-4e54-82ab-a2cdeb800a1b","savedPayload":{"position":{"x":14418.47384199702,"y":13022.500443414949},"targetPosition":{"x":14834.206906422474,"y":13008.82527232067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"02d96f47-c6f0-4423-a144-4799f4023c99","savedPayload":{"position":{"x":14834.206906422474,"y":13008.82527232067},"targetPosition":{"x":14378.665138402355,"y":12538.284209229136},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","name":"One-Candle Patterns Code","code":"// -----------------------------------------------------------------------------------------------------------------------------\n// From here the variables that will be used during the definition of the patterns will be defined\n// -----------------------------------------------------------------------------------------------------------------------------\n\n/* The following variables could be modified by the user to adapt the indicator with his preferences\n(Please, read the documentation before) */\nlet N = 10 // Default value: 10 periods - \"N\" is the period to calculate the Moving Average of the trend line (between 5 and 20) \nvariable.trendMethod = \"SMA\" // Choose \"SMA\" or \"EMA\" to calculate the Moving Average of the trend line\n\n /* In order to avoid errors, the initial condition of the output variables are defined */\nvariable.name = \"No Pattern\" // The name of the one-candle pattern\nvariable.forecast = \"None\" // The forecast of the pattern\n\n/* \"Candles\" and \"Basic Candles\" are dependencies */\nlet candle = record.current // Calling \"Candles\"\nlet basicCandle = getElement ('basicCandles', candle) // Calling \"Basic Candles\"\n\n/* To define if the trend is Up or Down , it is necessary to average the candle closes of the last N candles. */\nif (variable.trendMethod === \"SMA\") {\n variable.lastN.push(candle.close) // Add the current Candle Close value to the \"lastN\" array\n if (variable.lastN.length > N) {\n variable.lastN.shift() // Remove the first element of the array to keep it at a maximun of N elements\n }\n let smaN\n if (variable.lastN.length < N) { // If the array \"lastN\" has not enough Candle Closes, the value zero for the smaN is defined\n smaN = 0 \n } else { \n let sum = 0 // Initialize sum variable \n for (let i = variable.lastN.length-N; i < variable.lastN.length; i++) { // Iterate through the last periods\n sum = sum + variable.lastN[i]\n } \n smaN = sum/N\n variable.lastMA.push(smaN) // Add the current SMA value to the \"lastMA\" array\n if (variable.lastMA.length > 4) {\n variable.lastMA.shift() // Remove the first element of the array to keep it at a maximun of 4 SMA's\n }\n }\n}\n\nif (variable.trendMethod === \"EMA\") {\n let k = 2 / (N + 1)\n variable.ema = candle.close * k + variable.previousEMA * (1-k)\n variable.previousEMA = variable.ema\n if (variable.ema === undefined) {\n variable.lastMA.push(0)\n } else { \n variable.lastMA.push(variable.ema) // Add the current EMA value to the \"lastMA\" array\n } \n if (variable.lastMA.length > 4) {\n variable.lastMA.shift() // Remove the first element of the array to keep it at a maximun of 4 EMA's\n }\n} \n\n/* Calling the 3 last and current Moving Averages of the \"lastMA\" array */\nlet ma3Back = variable.lastMA [0] \nlet ma2Back = variable.lastMA [1]\nlet ma1Back = variable.lastMA [2]\nlet trendLine = variable.lastMA [3]\n\n/* Defining trend (Uptrend or Downtrend). It is important to avoid \"undefined\" candles or ma's */\nlet trend = \"None\"\nlet candle1Back = mainDependency.records[index - 1] // Calling previous candle\nlet candle2Back = mainDependency.records[index - 2] // Calling 2 previous candle\nlet candle3Back = mainDependency.records[index - 3] // Calling 3 previous candle\n\nif (candle1Back !== undefined && candle2Back !== undefined && candle3Back !== undefined) { \n if (ma1Back !== undefined && ma2Back !== undefined && ma3Back !== undefined) { \n if (candle1Back.close >= ma1Back && candle1Back.open >= ma1Back) {\n if (candle2Back.close >= ma2Back && candle2Back.open >= ma2Back) {\n if (candle3Back.close >= ma3Back && candle3Back.open >= ma3Back) {\n trend = \"Uptrend\"\n }\n }\n }\n if (candle1Back.close <= ma1Back && candle1Back.open <= ma1Back) {\n if (candle2Back.close <= ma2Back && candle2Back.open <= ma2Back) {\n if (candle3Back.close <= ma3Back && candle3Back.open <= ma3Back) {\n trend = \"Downtrend\"\n }\n }\n }\n }\n}\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here patterns will be defined\n// ----------------------------------------------------------------------------------------------------------------------------\n\n/* Patterns will be grouped as follows:\n1) Bearish continuation --> These patterns indicates that the current downtrend could continue.\n2) Bearish Reversal --> These patterns indicates that the current uptrend could turn to downtrend.\n3) Bullish Continuation --> These patterns indicates that the current uptrend could continue.\n4) Bullish Reversal --> These patterns indicates that the current downtrend could turn to uptrend. */\n\n/* \"BEARISH CONTINUATION\" group:\nThese patterns should appear during a downtrend to be valid*/\nif (trend === \"Downtrend\") {\n\n/* \"BEARISH STRONG LINE\" properties:\n1) Basic Candle can be \"Long Red Candle\", \"Red Marubozu\", \"Opening Red Marubozu\" or \"Closing Red Marubozu\".\n2) Average size: Long.\n3) The body has to be three times higher than the mean body.\n4) The body is placed below the trend line. */\n\nif (basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.body >= basicCandle.meanBody*3) {\n if (candle.open <= trendLine) {\n variable.name = \"Bearish Strong Line\"\n variable.forecast = \"Bearish Continuation\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Continuation\" group\n\n//-------------------------------------------------------\n\n/* \"BEARISH REVERSAL\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend === \"Uptrend\") {\n\n/* \"BEARISH BELT HOLD\" properties:\n1) Basic Candle is \"Opening Red Marubozu\". \n2) Average size: Long.\n3) Short lower shadow. (20 percent of the candle is defined, user can change it). */\n\nif (basicCandle.name === \"Opening Red Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if(basicCandle.lowerShadow <= basicCandle.length*0.2) {\n variable.name = \"Bearish Belt Hold\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n}\n\n/* \"HANGING MAN\" properties:\n1) Basic Candle can be \"Green Spinning Top\", \" Red Spinning Top\" or \"High Wave\".\n2) Average size: Long.\n3) The upper shadow shorter than the body.\n4) Long lower shadow that is at least twice the size as the body.\n5) The body above the trend line. */\n\nif (basicCandle.name === \"Green Spinning Top\" || basicCandle.name === \"Red Spinning Top\" || basicCandle.name === \"High Wave\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.upperShadow <= basicCandle.body) {\n if (basicCandle.lowerShadow >= basicCandle.body*2) {\n if (candle.close >= trendLine && candle.open >= trendLine) {\n variable.name = \"Hanging Man\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n } \n}\n\n/* \"SHOOTING STAR\" properties:\n1) Basic Candle can be \"Green Spinning Top\", \" Red Spinning Top\" or \"High Wave\".\n2) Average size: Long.\n3) The lower shadow shorter than the body.\n4) Upper shadow that is at least two times longer than the body.\n5) The body above the trend line. */\n\nif (basicCandle.name === \"Green Spinning Top\" || basicCandle.name === \"Red Spinning Top\" || basicCandle.name === \"High Wave\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.lowerShadow <= basicCandle.body) {\n if (basicCandle.upperShadow >= basicCandle.body*2) {\n if (candle.close >= trendLine && candle.open >= trendLine) {\n variable.name = \"Shooting Star\"\n variable.forecast = \"Bearish Reversal\"\n } \n }\n }\n } \n}\n\n/* \"BEARISH STRONG LINE\" properties:\n1) Basic Candle can be \"Long Red Candle\", \"Red Marubozu\", \"Opening Red Marubozu\" or \"Closing Red Marubozu\". \n2) Average size: Long.\n3) The body has to be three times higher than the mean body.\n4) The opening price is above the trendline (Remember, if the body is below the trendline, belongs to bearish continuation). */\n\nif (basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.body >= basicCandle.meanBody*3) {\n if (candle.open >= trendLine) {\n variable.name = \"Bearish Strong Line\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Reversal\" group\n\n//-------------------------------------------------------\n\n/* \"BULLISH CONTINUATION\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend === \"Uptrend\") {\n\n/* \"BULLISH STRONG LINE\" properties:\n1) Basic Candle can be \"Long Green Candle\", \"Green Marubozu\", \"Opening Green Marubozu\" or \"Closing Green Marubozu\".\n2) Average size: Long.\n3) The body has to be three times higher than the mean body.\n4) The body is placed above the trendline. */\n\nif (basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.body >= basicCandle.meanBody*3) {\n if (candle.open >= trendLine) {\n variable.name = \"Bullish Strong Line\"\n variable.forecast = \"Bullish Continuation\"\n }\n }\n }\n}\n\n} // Closing \"Bullish Continuation\" group\n\n//-------------------------------------------------------\n\n/* \"BULLISH REVERSAL\" group:\nThese patterns should appear during a downtrend*/\nif (trend === \"Downtrend\") {\n\n/* \"BULLISH BELT HOLD\" properties:\n1) Basic Candle is \"Opening Green Marubozu\".\n2) Average size: Long.\n3) Short upper shadow. 20 percent of the candle length, user can change it value. */\n\nif (basicCandle.name === \"Opening Green Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.upperShadow <= basicCandle.length*0.2) {\n variable.name = \"Bullish Belt Hold\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n}\n\n/* \"HAMMER\" properties:\n1) Basic Candle can be \"Green Spinning Top\", \" Red Spinning Top\" or \"High Wave\".\n2) Average size: Long.\n3) The upper shadow shorter than the body.\n4) Lower shadow at least two times longer than the body. \n5) The body has to be below the trend line. */\n\nif (basicCandle.name === \"Green Spinning Top\" || basicCandle.name === \"Red Spinning Top\" || basicCandle.name === \"High Wave\" ) {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.upperShadow <= basicCandle.body) {\n if (basicCandle.lowerShadow >= basicCandle.body*2) {\n if (candle.close <= trendLine && candle.open <= trendLine) {\n variable.name = \"Hammer\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n } \n}\n \n/* \"BULLISH STRONG LINE\" properties:\n1) Basic Candle can be \"Long Green Candle\", \"Green Marubozu\", \"Opening Green Marubozu\" or \"Closing Green Marubozu\". \n2) Average size: Long.\n3) The body three times higher than the mean body.\n4) The opening price is below the trendline (Remember, if the body is placed above the trendline, belongs to bulliish continuation). */\n\nif (basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.body >= basicCandle.meanBody*3) {\n if (candle.open <= trendLine) {\n variable.name = \"Bullish Strong Line\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bullish Reversal\" group\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here all the variables that will be written in the records are defined \n// ----------------------------------------------------------------------------------------------------------------------------\n\nvariable.trend = trend\nvariable.trendLine = trendLine\nvariable.period = N // This record will be for pattern visualization on the chart\nvariable.bearishArrowHead = candle.max*1.02 // This record will be for pattern visualization on the chart\nvariable.bullishArrowHead = candle.min*0.98 // This record will be for pattern visualization on the chart","id":"08e03d17-e3d4-4a60-9e76-8b0c246f6eab","savedPayload":{"position":{"x":15163.941629588513,"y":13620.474031577334},"targetPosition":{"x":15005.415792414886,"y":13501.65956874262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"45f3274c-5f6c-4730-83cc-3a4a80be5f11","savedPayload":{"position":{"x":15005.415792414886,"y":13501.65956874262},"targetPosition":{"x":14688.792295499397,"y":13264.350228985411},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* It is necessary to define Moving Average of N Periods to define the trend of the market. */\nvariable.lastN = [ ] // Define lastN array to record the value of the last N candle closes (SMA)\nvariable.previousEMA = 0 // Initialize the variable previous enter to the main loop (EMA)\nvariable.lastMA = [0, 0, 0, 0] // Define lastMA array to record the value of the last 3 and current Moving Averages of N Periods","id":"dcdb9df8-32b5-4c90-b392-8eb147d91a1e","savedPayload":{"position":{"x":14618.114317192514,"y":13854.698431242783},"targetPosition":{"x":14641.632386752723,"y":13657.80964036004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0571fcc4-4f29-4c5b-8de0-54da0ee0dd44","savedPayload":{"position":{"x":14641.632386752723,"y":13657.80964036004},"targetPosition":{"x":14688.792295499397,"y":13264.350228985411},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61de6419-4760-4b57-a184-d5aac5114be8","savedPayload":{"position":{"x":14688.792295499397,"y":13264.350228985411},"targetPosition":{"x":14378.665138402355,"y":12538.284209229136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f3c0863c-ac0c-4fc0-b9ee-5f0f2bd722ea","savedPayload":{"position":{"x":14378.930041764983,"y":12538.276395026636},"targetPosition":{"x":13606.59207657629,"y":12362.027718520723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"One-Candle Patterns","id":"14f83391-e4a6-470c-90c0-19763f83429b"}}},{"type":"Product Definition","name":"Two-Candles Patterns","code":"{\n \"codeName\": \"Two-Candles-Patterns\",\n \"singularVariableName\": \"twoCandlePattern\",\n \"pluralVariableName\": \"twoCandlePatterns\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"8c35ce52-9dee-4d20-92e6-50ba7fd2882b","savedPayload":{"position":{"x":13990.38004900581,"y":12517.500992411471},"targetPosition":{"x":13577.071414529011,"y":12631.776049507755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"4f1260c8-6d74-454e-963a-fa3ff910329c","savedPayload":{"position":{"x":13978.133662362168,"y":12782.121569423156},"targetPosition":{"x":13577.071414529011,"y":12631.776049507755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"Two-Candles Patterns Records","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","code":"record.current.begin","id":"61a74369-9fad-4af6-99d8-c6e4821d4750","savedPayload":{"position":{"x":14396.144605236186,"y":12930.93228274267},"targetPosition":{"x":14397.27005487563,"y":13039.477642927437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d0948117-06a2-44e6-a9c6-eed01b943780","savedPayload":{"position":{"x":14397.27005487563,"y":13039.477642927437},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"73933242-2824-4a63-bb50-d6043c1796a0","savedPayload":{"position":{"x":14572.020070613304,"y":12979.84020445404},"targetPosition":{"x":14514.209088586304,"y":13072.050847780967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d5bcbb61-ab9d-4908-91c4-0bbbdade33c0","savedPayload":{"position":{"x":14514.209088586304,"y":13072.050847780967},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"name","code":"{ \n\"codeName\": \"name\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.name","id":"34cec9a0-7a4d-430c-a69e-b67150a8701d","savedPayload":{"position":{"x":14687.551547782925,"y":13119.168264882514},"targetPosition":{"x":14594.23084078616,"y":13162.999720041678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c8a5978b-4038-4493-9c79-697d6508604f","savedPayload":{"position":{"x":14594.23084078616,"y":13162.999720041678},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trend","code":"{ \n\"codeName\": \"trend\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.trend","id":"d5af582e-67e7-4bd4-80c8-561fb4b28f0b","savedPayload":{"position":{"x":14715.235926855486,"y":13295.608928345133},"targetPosition":{"x":14612.929085298943,"y":13282.255150744186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"ceed7f12-8a54-43bf-9bd0-c9297493d6a1","savedPayload":{"position":{"x":14612.929085298943,"y":13282.255150744186},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"forecast","code":"{ \n\"codeName\": \"forecast\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.forecast","id":"ce5d5a36-b9dd-404d-90c1-a6556cc15145","savedPayload":{"position":{"x":14642.841053098498,"y":13459.441183598585},"targetPosition":{"x":14564.04222961525,"y":13392.884859371936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"0e22e091-4ace-44ab-b1c9-aa386e928299","savedPayload":{"position":{"x":14564.04222961525,"y":13392.884859371936},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bullishArrowHead","code":"{ \n\"codeName\": \"bullishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.bullishArrowHead","id":"7095f60c-5b45-4f3c-b026-97c89a480135","savedPayload":{"position":{"x":14493.388098710042,"y":13558.13390390614},"targetPosition":{"x":14463.11708574021,"y":13459.528264028497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"228d8125-2609-45c6-9cc7-e644c017ee0e","savedPayload":{"position":{"x":14463.11708574021,"y":13459.528264028497},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bearishArrowHead","code":"{ \n\"codeName\": \"bearishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.bearishArrowHead","id":"409212af-d4f2-4371-9cc2-4402e16c1889","savedPayload":{"position":{"x":14314.86052199146,"y":13560.351320346243},"targetPosition":{"x":14342.44913435762,"y":13461.021547511327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"fa50b0e1-d8df-4a16-91c9-361541808fbf","savedPayload":{"position":{"x":14342.44913435762,"y":13461.021547511327},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendLine","code":"{ \n\"codeName\": \"trendLine\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.trendLine","id":"7302e487-d514-4964-bdc3-9901ba318dea","savedPayload":{"position":{"x":14163.143697250125,"y":13465.386801343191},"targetPosition":{"x":14239.957236947837,"y":13396.86594323422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"64444857-2818-42de-a4c1-69c4d2804ebf","savedPayload":{"position":{"x":14239.957236947837,"y":13396.86594323422},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"period","code":"{ \n\"codeName\": \"period\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.period","id":"dfdef370-336e-4650-a441-4b65f7304047","savedPayload":{"position":{"x":14080.61005028047,"y":13304.371564081312},"targetPosition":{"x":14187.830358506526,"y":13287.532682305162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6dafe978-a5df-4f5b-a7ae-d496b83bcc94","savedPayload":{"position":{"x":14187.830358506526,"y":13287.532682305162},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendMethod","code":"{ \n\"codeName\": \"trendMethod\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.trendMethod","id":"aea83576-35e1-4190-b284-faf3f696436b","savedPayload":{"position":{"x":14105.043167805037,"y":13123.373354539315},"targetPosition":{"x":14203.984680208447,"y":13167.178249831239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"552e82f9-e5e6-4802-9cf2-d9a7bbbc5a22","savedPayload":{"position":{"x":14203.984680208447,"y":13167.178249831239},"targetPosition":{"x":14400.128677128949,"y":13254.391891487401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"17ec2118-b9df-415f-b5f3-120fb3b3155a","savedPayload":{"position":{"x":14400.128677128949,"y":13254.391891487401},"targetPosition":{"x":13577.071414529011,"y":12631.776049507755},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","name":"Two-Candles Patterns Code","code":"// -----------------------------------------------------------------------------------------------------------------------------\n// From here the variables that will be used during the definition of the patterns will be defined\n// -----------------------------------------------------------------------------------------------------------------------------\n\n /* In order to avoid errors, the initial condition of the output variables are defined */\nvariable.name = \"No Pattern\" // The name of the two-candle pattern, for panel visualization\nvariable.forecast = \"None\" // The forecast of the two-candle pattern, for panel visualization\nvariable.trend = \"None\" // The trend of the current pattern, for panel visualization\nvariable.trendLine = 1 // This record will be for pattern shapes visualization on the chart\nvariable.bearishArrowHead = 1 // This record will be for pattern shapes visualization on the chart\nvariable.bullishArrowHead = 1 // This record will be for pattern shapes visualization on the chart\nvariable.period = 0 // The period of the trend MA, for panel visualization\n \n/* \"Candles\", \"Basic Candles\" and \"One-Candle Patterns\" are dependencies */\nlet candle = record.current // Calling \"Candles\"\nlet basicCandle = getElement ('basicCandles', candle) // Calling \"Basic Candles\" product\nlet oneCandlePattern = getElement ('oneCandlePatterns', candle) // Calling \"One-Candle Patterns\" product\n\n/* Some properties of the previous candle are needed (max, min, open and close) */\nlet candle1Back = mainDependency.records[index - 1] \n\n/* In order to avoid \"undefined\" elements during calculations */\nif (basicCandle !== undefined && oneCandlePattern !== undefined && candle1Back !== undefined) { \n\n/*Another properties of the previous candle are needed (trend, span, name and direction)*/\nvariable.records1Back.push(oneCandlePattern.trend, basicCandle.size, basicCandle.name, basicCandle.direction)\nlet trend1Back = \"None\"\nlet size1Back = \"None\"\nlet name1Back = \"None\"\nlet direction1Back = \"None\"\nif (variable.records1Back[0] !== undefined) {\n trend1Back = variable.records1Back[0] // Taking first element of the array (index 0)\n}\nif (variable.records1Back[1] !== undefined) {\n size1Back = variable.records1Back[1] // Taking second element of the array (index 1)\n}\nif (variable.records1Back[2] !== undefined) {\n name1Back = variable.records1Back[2] // Taking third element of the array (index 2)\n}\nif (variable.records1Back[3] !== undefined) {\n direction1Back = variable.records1Back[3] // Taking fourth element of the array (index 3)\n}\nif (variable.records1Back.length === 8) { // Array with 8 elements, 4 currents and 4 from previous\n variable.records1Back.splice(0, 4) // Remove the first 4 elements of the array\n} \n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here patterns will be defined\n// ----------------------------------------------------------------------------------------------------------------------------\n\n/* Patterns will be grouped as follows:\n1) Bearish continuation --> These patterns indicates that the current downtrend could continue.\n2) Bearish Reversal --> These patterns indicates that the current uptrend could turn to downtrend.\n3) Bullish Continuation --> These patterns indicates that the current uptrend could continue.\n4) Bullish Reversal --> These patterns indicates that the current downtrend could turn to uptrend. */\n\n/* \"BEARISH CONTINUATION\" group:\nThese patterns should appear during a downtrend to be valid*/\nif (trend1Back === \"Downtrend\") {\n\n/* \"LAST ENGULFING BOTTOM\" properties:\nIt is important to know that this pattern has a \"Bearish Continuation\" or \"Bullish Reversal\" forecast, depending on the context.\n--First candle\n1) Can be any green basic candle, excluding Four-Price Doji.\n--Second candle\n1) Can be the following red basic candles: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Candle's body engulfs the prior candle's body.\n3) Average size: long. */\n\nif (direction1Back === \"Bullish\" && name1Back !== \"Four-Price Doji\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.name === \"Red Candle\" || basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (candle1Back.close <= candle.open && candle1Back.open > candle.close) {\n variable.name = \"Last Engulfing Bottom\"\n variable.forecast = \"Depends On The Context\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Continuation\" group\n\n//-------------------------------------------------------\n\n/* \"BEARISH REVERSAL\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend1Back === \"Uptrend\") {\n\n/* \"BEARISH ENGULFING\" properties:\n--First candle\n1) Can be any green basic candle, excluding Four-Price Doji.\n--Second candle\n1) Can be the following red basic candles: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Candle's body engulfs the prior candle's body.\n3) Average size: long. */\n\nif (direction1Back === \"Bullish\" && name1Back !== \"Four-Price Doji\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.name === \"Red Candle\" || basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (candle1Back.close <= candle.open && candle1Back.open > candle.close) {\n variable.name = \"Bearish Engulfing\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"BEARISH HARAMI\" properties:\n--First candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Can be any red basic candle, excluding Four-Price Doji.\n2) Candle's body engulfed by the previous candle's body. */\n\nif (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.direction === \"Bearish\" && basicCandle.name !== \"Four-Price Doji\") {\n if (candle1Back.close >= candle.open && candle1Back.open < candle.close) {\n variable.name = \"Bearish Harami\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"BEARISH HARAMI CROSS\" properties:\n--First candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Should be a Classic Doji.\n2) Candle's body (including shadows) engulfed by the prior candle's body. */\n\nif (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.name === \"Classic Doji\") {\n if (candle1Back.close >= candle.max && candle1Back.open <= candle.min) {\n variable.name = \"Bearish Harami Cross\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"BEARISH TASUKI LINE\" properties:\n--First candle\n1) Bullish candle.\n2) Average size: Long.\n--Second candle\n1) Bearish candle.\n2) Opening price below or equal to the previous closing price.\n3) Closing price below the previous opening price.\n4) Average size: Long. */\n\nif (direction1Back === \"Bullish\" && size1Back === \"Long\") {\n if (basicCandle.direction === \"Bearish\" && basicCandle.size === \"Long\") {\n if (candle.open <= candle1Back.close && candle.close < candle1Back.open) {\n variable.name = \"Bearish Tasuki Line\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n}\n\n/* \"DESCENDING HAWK\" properties:\n--First candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Can be the following green basic candles: Short Green Candle, Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Candle's body engulfed by the prior candle's body. */\n\nif (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.name === \"Short Green Candle\" || basicCandle.name === \"Green Candle\" || basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (candle1Back.close >= candle.close && candle1Back.open < candle.open) {\n variable.name = \"Descending Hawk\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"TWEEZERS TOP\" properties:\n--First candle\n1) Any candle except the Four-Price Doji.\n2) Could be \"Bullish\" or \"Bearish\" candle.\n--Second candle\n1) Any candle except the Four-Price Doji.\n2) Could be \"Bullish\" or \"Bearish\" candle.\n3) High price equal to the previous high price. */\n\nif (candle1Back.name !== \"Four-Price Doji\" && basicCandle.name !== \"Four-Price Doji\" && candle.max === candle1Back.max) {\n variable.name = \"Tweezers Top\"\n variable.forecast = \"Bearish Reversal\"\n}\n\n/* \"TWO-CANDLE SHOOTING STAR\" properties:\n--First candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Can be the following basic candles: Red Spinning Top, Green Spinning Top, High Wave. \n2) No lower shadow or the shadow cannot be longer than then body.\n3) Upper shadow at least 2.5 times longer than the body.\n4) The open above or at the level of the previous candle’s close. */\n\nif (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.name === \"Red Spinning Top\" || basicCandle.name === \"Green Spinning Top\" || basicCandle.name === \"High Wave\") {\n if (basicCandle.lowerShadow <= basicCandle.body && basicCandle.upperShadow >= basicCandle.body*2.5 && candle.open >= candle1Back.close) {\n variable.name = \"Two-Candle Shooting Star\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Reversal\" group\n\n//-------------------------------------------------------\n\n/* \"BULLISH CONTINUATION\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend1Back === \"Uptrend\") {\n\n/* \"LAST ENGULFING TOP\" properties:\nIt is important to know that this pattern has a \"Bearish Continuation\" or \"Bullish Reversal\" forecast, depending on the context.\n--First candle\n1) Bearish candle, excluding \"Four-Price Doji\".\n--Second candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Candle's body engulfs the prior candle's body. \n3) Average size: Long. */\n\nif (direction1Back === \"Bearish\" && name1Back !== \"Four-Price Doji\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.name === \"Green Candle\" || basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (candle1Back.close >= candle.open && candle1Back.open < candle.close) { \n variable.name = \"Last Engulfing Top\"\n variable.forecast = \"Depends On The Context\"\n }\n }\n }\n}\n\n} // Closing \"Bullish Continuation\" group\n \n//-------------------------------------------------------\n\n/* \"BULLISH REVERSAL\" group:\nThese patterns should appear during a downtrend*/\nif (trend1Back === \"Downtrend\") {\n\n/* \"BULLISH ENGULFING\" properties:\n--First candle\n1) Bearish candle, excluding \"Four-Price Doji\".\n--Second candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Candle's body engulfs the prior candle's body. \n3) Average size: Long. */\n\nif (direction1Back === \"Bearish\" && name1Back !== \"Four-Price Doji\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.name === \"Green Candle\" || basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (candle1Back.close >= candle.open && candle1Back.open < candle.close) { \n variable.name = \"Bullish Engulfing\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n}\n\n/* \"BULLISH HARAMI\" properties:\n--First candle\n1) Can be the following red basic candles: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long.\n--Second candle\n1) Can be any green basic candle, excluding Four-Price Doji.\n2) Candle's body engulfed by the prior candle's body. */\n\nif (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.direction === \"Bullish\" && basicCandle.name !== \"Four-Price Doji\") {\n if (candle1Back.close <= candle.open && candle1Back.open > candle.close) {\n variable.name = \"Bullish Harami\"\n variable.forecast = \"Bulliish Reversal\"\n }\n }\n }\n}\n\n/* \"BULLISH HARAMI CROSS\" properties:\n--First candle\n1) Can be the following red basic candles: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long.\n--Second candle\n1) Should be a Classic Doji.\n2) Candle's body (including shadows) engulfed by the prior candle's body. */\n\nif (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.name === \"Classic Doji\") {\n if (candle1Back.open >= candle.max && candle1Back.close <= candle.min) {\n variable.name = \"Bullish Harami Cross\"\n variable.forecast = \"Bulliish Reversal\"\n }\n }\n }\n}\n\n/* \"BULLISH TASUKI LINE\" properties:\n--First candle\n1) Bearish candle.\n2) Average size: Long.\n--Second candle\n1) Bullish candle.\n2) Opening price above or equal to the previous closing price\n3) Closing price above the previous opening price\n4) Average size: Long. */\n\nif (direction1Back === \"Bearish\" && size1Back === \"Long\") {\n if (basicCandle.direction === \"Bullish\" && basicCandle.size === \"Long\") {\n if (candle.open >= candle1Back.close && candle.close > candle1Back.open) {\n variable.name = \"Bullish Tasuki Line\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n}\n\n/* \"TWEEZERS BOTTOM\" properties:\n--First candle\n1) Any candle except the Four-Price Doji.\n2) Could be \"Bullish\" or \"Bearish\" candle.\n--Second candle\n1) Any candle except the Four-Price Doji.\n2) Could be \"Bullish\" or \"Bearish\" candle.\n3) Low price equal to the previous low price. */\n\nif (candle1Back.name !== \"Four-Price Doji\" && basicCandle.name !== \"Four-Price Doji\" && candle.min === candle1Back.min) {\n variable.name = \"Tweezers Bottom\"\n variable.forecast = \"Bullish Reversal\"\n}\n\n} // Closing \"Bullish Reversal\" group\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here all the variables that will be written in the records are defined \n// ----------------------------------------------------------------------------------------------------------------------------\n\nvariable.trend = trend1Back\nvariable.trendLine = oneCandlePattern.trendLine\nvariable.period = oneCandlePattern.period\nvariable.trendMethod = oneCandlePattern.trendMethod\nvariable.bearishArrowHead = candle.max*1.02 \nvariable.bullishArrowHead = candle.min*0.98\n\n} // Closing initial \"undefined\" avoid\n","id":"0df41d0a-e490-427e-a355-9043e81eb3c1","savedPayload":{"position":{"x":13754.224188597855,"y":13439.902895441395},"targetPosition":{"x":13656.103319071339,"y":13249.373117972671},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"36593fb7-a9ab-4e3f-95ff-9c291e0f96f6","savedPayload":{"position":{"x":13656.103319071339,"y":13249.373117972671},"targetPosition":{"x":13557.80099157917,"y":13059.155699348652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* Because this pattern has two candles, the properties of the previous candle are needed. */\nvariable.records1Back = [ ] // The properties will be record in this array","id":"36e0e453-9058-45de-bcff-bc1e17fe7aa8","savedPayload":{"position":{"x":13326.665381411352,"y":13420.6780298007},"targetPosition":{"x":13442.245658748729,"y":13239.81874221474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a939b7f6-400d-483f-9017-676c53451613","savedPayload":{"position":{"x":13442.245658748729,"y":13239.81874221474},"targetPosition":{"x":13557.80099157917,"y":13059.155699348652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"896e9b4a-04e0-497d-be61-af2c96bb9d86","savedPayload":{"position":{"x":13557.80099157917,"y":13059.155699348652},"targetPosition":{"x":13577.071414529011,"y":12631.776049507755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"29283392-6a01-4acd-8f41-328e92281980","savedPayload":{"position":{"x":14225.911226592276,"y":12855.945034777027},"targetPosition":{"x":13606.59207657629,"y":12362.027718520723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Two-Candles Patterns","id":"3bf46641-3478-41fd-8407-0af20e72f30b"}}},{"type":"Product Definition","name":"Three-Candles Patterns","code":"{\n \"codeName\": \"Three-Candles-Patterns\",\n \"singularVariableName\": \"threeCandlePattern\",\n \"pluralVariableName\": \"threeCandlePatterns\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"087fc67e-78f9-4204-ba5e-8b670566a716","savedPayload":{"position":{"x":13849.871604695945,"y":12827.293777411433},"targetPosition":{"x":13427.889262586501,"y":12750.836137278113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"b60cb94f-79c5-410c-b166-abc97d0f2bc3","savedPayload":{"position":{"x":13724.11718972927,"y":13060.811076982278},"targetPosition":{"x":13427.889262586501,"y":12750.836137278113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"Three-Candles Patterns Records","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","code":"record.current.begin","id":"1c316dcb-6d17-4108-ac41-f2d059685e5e","savedPayload":{"position":{"x":13711.238306530115,"y":12920.658171649195},"targetPosition":{"x":13644.948543022758,"y":13068.723520078449},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8328e683-8704-4b65-a774-63da0346e252","savedPayload":{"position":{"x":13644.948543022758,"y":13068.723520078449},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"db0992c2-3fd6-4eb9-bbe9-40dad5ae53f6","savedPayload":{"position":{"x":13948.582537330978,"y":13116.174731794308},"targetPosition":{"x":13813.151539554317,"y":13201.972933230269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fbef0b72-edde-4678-aca5-f405068271b3","savedPayload":{"position":{"x":13813.151539554317,"y":13201.972933230269},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"name","code":"{ \n\"codeName\": \"name\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.name","id":"c397cffb-3ba1-435b-af0b-e920b319b23b","savedPayload":{"position":{"x":13966.973813754968,"y":13393.072203548825},"targetPosition":{"x":13864.707294117426,"y":13392.478752055717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2f7591d7-6877-4fde-aafb-1b9580f6ad60","savedPayload":{"position":{"x":13864.707294117426,"y":13392.478752055717},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trend","code":"{ \n\"codeName\": \"trend\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.trend","id":"ea48eb6b-63a3-444c-abd2-166097bb50c5","savedPayload":{"position":{"x":13891.677257473519,"y":13636.710911863762},"targetPosition":{"x":13806.927759912025,"y":13581.451438251337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"162b594a-c0a4-45c0-a52c-45682978d00a","savedPayload":{"position":{"x":13806.927759912025,"y":13581.451438251337},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"forecast","code":"{ \n\"codeName\": \"forecast\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.forecast","id":"fd07c697-966a-4a3c-a123-61198f194538","savedPayload":{"position":{"x":13698.461434968936,"y":13800.839962044862},"targetPosition":{"x":13656.986895067497,"y":13708.263944451232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c1afb085-e6cd-4c27-af62-6765cb270c1d","savedPayload":{"position":{"x":13656.986895067497,"y":13708.263944451232},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bullishArrowHead","code":"{ \n\"codeName\": \"bullishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.bullishArrowHead","id":"dd019f19-f96a-4e88-a2e1-0159ba87fbe3","savedPayload":{"position":{"x":13444.092360755101,"y":13835.639457658825},"targetPosition":{"x":13460.938946120285,"y":13734.520497296007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"7059a7a5-021b-4277-80b9-8ef4c5387736","savedPayload":{"position":{"x":13460.938946120285,"y":13734.520497296007},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bearishArrowHead","code":"{ \n\"codeName\": \"bearishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.bearishArrowHead","id":"bc455c93-3c64-4cf4-ab94-0116da22c404","savedPayload":{"position":{"x":13215.851726337816,"y":13726.980994488415},"targetPosition":{"x":13281.961445417463,"y":13650.232814784054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"ec8749b1-4f5f-4163-b079-3dd9bec6eefa","savedPayload":{"position":{"x":13281.961445417463,"y":13650.232814784054},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendLine","code":"{ \n\"codeName\": \"trendLine\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.trendLine","id":"54625f1a-aa6f-44a6-bf2e-bcf1f5210674","savedPayload":{"position":{"x":13080.373564613936,"y":13512.507791593513},"targetPosition":{"x":13177.690028495439,"y":13484.984819448468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"7a781a34-4af5-4eb1-b237-1746ea2e69d0","savedPayload":{"position":{"x":13177.690028495439,"y":13484.984819448468},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"period","code":"{ \n\"codeName\": \"period\",\n\"isString\": false,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.period","id":"fd68bb74-c7f3-48ff-941c-121031aaf6a1","savedPayload":{"position":{"x":13033.546225688598,"y":13233.68488038103},"targetPosition":{"x":13187.023177611489,"y":13282.410877240069},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b738ac34-a6eb-41c3-9871-0fc1732be676","savedPayload":{"position":{"x":13187.023177611489,"y":13282.410877240069},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendMethod","code":"{ \n\"codeName\": \"trendMethod\",\n\"isString\": true,\n\"isCalculated\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.trendMethod","id":"65ed19cf-524e-4ccd-94df-c60c9b41c40a","savedPayload":{"position":{"x":13179.147447450905,"y":13000.271711780137},"targetPosition":{"x":13285.105306373436,"y":13122.105896094334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"32ff1b3e-acb0-4961-82b9-1dd37a795c41","savedPayload":{"position":{"x":13285.105306373436,"y":13122.105896094334},"targetPosition":{"x":13514.21321900549,"y":13388.128596454624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8a01e390-aea9-494b-a002-9c7498f23189","savedPayload":{"position":{"x":13514.160444418765,"y":13388.07052073227},"targetPosition":{"x":13427.889262586501,"y":12750.836137278113},"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","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","name":"Three-Candles Patterns Code","code":"// -----------------------------------------------------------------------------------------------------------------------------\n// From here the variables that will be used during the definition of the patterns will be defined\n// -----------------------------------------------------------------------------------------------------------------------------\n\n /* In order to avoid errors, the initial condition of the output variables are defined */\nvariable.name = \"No Pattern\" // The name of the pattern, for panel visualization\nvariable.forecast = \"None\" // The forecast of the pattern, for panel visualization\nvariable.trend = \"None\" // The trend of the current pattern, for panel visualization\nvariable.trendLine = 1 // This record will be for pattern shapes visualization on the chart\nvariable.bearishArrowHead = 1 // This record will be for pattern shapes visualization on the chart\nvariable.bullishArrowHead = 1 // This record will be for pattern shapes visualization on the chart\nvariable.period = 0 // The period of the trend MA, for panel visualization\n\n/* \"Candles\", \"Basic Candles\" and \"One-Candle Patterns\" are dependencies */\nlet candle = record.current // Calling \"Candles\" records\nlet basicCandle = getElement ('basicCandles', candle) // Calling \"Basic Candles\" records\nlet oneCandlePattern = getElement ('oneCandlePatterns', candle) // Calling \"One-Candle Patterns\" records\n\n/* Some properties of the previous 2 candles are needed (max, min, open and close) */\nlet candle1Back = mainDependency.records[index - 1] \nlet candle2Back = mainDependency.records[index - 2] \n\n/* To avoid \"undefined\" elements during calculations, the following if() condition will include all the entire code */\nif (basicCandle !== undefined && oneCandlePattern !== undefined && candle1Back !== undefined && candle2Back !== undefined) { \n\n/*To define patterns, another properties of the 2 previous candles are needed (trend, size, name and direction)*/\nvariable.recordsBack.push(oneCandlePattern.trend, basicCandle.size, basicCandle.name, basicCandle.direction)\nlet trend1Back = \"None\"\nlet size1Back = \"None\"\nlet name1Back = \"None\"\nlet direction1Back = \"None\"\nlet trend2Back = \"None\"\nlet size2Back = \"None\"\nlet name2Back = \"None\"\nlet direction2Back = \"None\"\n\nif (variable.recordsBack[0] !== undefined) {\n trend2Back = variable.recordsBack[0] // Taking first element of the array (index 0)\n}\nif (variable.recordsBack[1] !== undefined) {\n size2Back = variable.recordsBack[1] // Taking second element of the array (index 1)\n}\nif (variable.recordsBack[2] !== undefined) {\n name2Back = variable.recordsBack[2] // Taking third element of the array (index 2)\n}\nif (variable.recordsBack[3] !== undefined) {\n direction2Back = variable.recordsBack[3] // Taking fourth element of the array (index 3)\n}\nif (variable.recordsBack[0] !== undefined) {\n trend1Back = variable.recordsBack[4] // Taking fifth element of the array (index 4)\n}\nif (variable.recordsBack[1] !== undefined) {\n size1Back = variable.recordsBack[5] // Taking sixth element of the array (index 5)\n}\nif (variable.recordsBack[2] !== undefined) {\n name1Back = variable.recordsBack[6] // Taking seventh element of the array (index 6)\n}\nif (variable.recordsBack[3] !== undefined) {\n direction1Back = variable.recordsBack[7] // Taking eigthth element of the array (index 7)\n}\nif (variable.recordsBack.length === 12) { // Array with 12 elements, 4 currents, 4 from 1 previous and 4 from 2 previous \n variable.recordsBack.splice(0, 4) // Remove the first 4 elements of the array\n} \n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here patterns will be defined\n// ----------------------------------------------------------------------------------------------------------------------------\n\n/* Patterns will be grouped as follows:\n1) Bearish continuation --> These patterns indicates that the current downtrend could continue.\n2) Bearish Reversal --> These patterns indicates that the current uptrend could turn to downtrend.\n3) Bullish Continuation --> These patterns indicates that the current uptrend could continue.\n4) Bullish Reversal --> These patterns indicates that the current downtrend could turn to uptrend. */\n\n/* \"BEARISH CONTINUATION\" group:\nThese patterns should appear during a downtrend to be valid*/\nif (trend2Back === \"Downtrend\") {\n\n} // Closing \"Bearish Continuation\" group\n\n//-------------------------------------------------------\n\n/* \"BEARISH REVERSAL\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend2Back === \"Uptrend\") {\n\n/* \"ADVANCE BLOCK\" properties:\n--First candle\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu or Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Bullish.\n2) Body shortet than the previous candle.\n3) Shadows longer than the first candle.\n--Third Candle \n1) Bullish.\n2) Body shortet than the previous candle.\n3) Shadows longer than the first candle. */\n\nif (name2Back === \"Green Candle\" || name2Back === \"Long Green Candle\" || name2Back === \"Opening Green Marubozu\" || name2Back === \"Closing Green Marubozu\" || name2Back === \"Green Marubozu\") {\n if (size2Back === \"Long\") {\n if (direction1Back === \"Bullish\" && (candle1Back.close - candle1Back.open) < (candle2Back.close - candle2Back.open) ) {\n if (basicCandle.direction === \"Bullish\" && (candle.close-candle.open) < (candle1Back.close - candle1Back.open) ) {\n variable.name = \"Advance Block\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"DELIBERATION\" properties:\n--First candle\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu or Green Marubozu.\n--Second candle\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu or Green Marubozu.\n2) Opening price is above the previous opening price.\n3) Closing price is above the previous closing price.\n--Third Candle \n1) Any following bullish basic candle: Short Green Candle or Green Spinning Top.\n2) Opening price is slightly lower or higher than the previous closing price.\n3) Closing price is above the previous closing price.\n4) Average size: Short. */\n\nif (name2Back === \"Green Candle\" || name2Back === \"Long Green Candle\" || name2Back === \"Opening Green Marubozu\" || name2Back === \"Closing Green Marubozu\" || name2Back === \"Green Marubozu\") {\n if (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\" || name1Back === \"Green Marubozu\") {\n if (candle1Back.open > candle2Back.open && candle1Back.close > candle2Back.close) {\n if (basicCandle.name === \"Short Green Candle\" || basicCandle.name === \"Green Spinning Top\") { \n if (basicCandle.size === \"Short\" && candle.close > candle1Back.close) {\n variable.name = \"Deliberation\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n }\n}\n\n/* \"IDENTICAL THREE CROWS\" properties:\n--First candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long.\n--Second candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long. \n3) Opening price at or near the prior close.\n--Third Candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long. \n3) Opening price at or near the prior close.*/\n\nif (name2Back === \"Red Candle\" || name2Back === \"Long Red Candle\" || name2Back === \"Red Marubozu\" || name2Back === \"Opening Red Marubozu\" || name2Back === \"Closing Red Marubozu\") {\n if (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\") {\n if (basicCandle.name === \"Red Candle\" || basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (size2Back === \"Long\" && size1Back === \"Long\" && basicCandle.size === \"Long\") {\n variable.name = \"Identical Three Crows\"\n variable.forecast = \"Bulliish Reversal\"\n }\n }\n }\n}\n\n/* \"THREE INSIDE DOWN\" properties:\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu or Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu or Red Spinning Top.\n2) Candle body is engulfed by the prior candle body.\n--Third Candle \n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu or Red Spinning Top.\n2) Closing price is below the previous closing price. */\n\nif (name2Back === \"Green Candle\" || name2Back === \"Long Green Candle\" || name2Back === \"Opening Green Marubozu\" || name2Back === \"Closing Green Marubozu\" || name2Back === \"Green Marubozu\") {\n if (size2Back === \"Long\") {\n if (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\" || name1Back === \"Red Spinning Top\") {\n if (candle1Back.close > candle2Back.open) {\n if (basicCandle.name === \"Red Candle\" || basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\" || basicCandle.name === \"Red Spinning Top\") {\n variable.name = \"Three Inside Down\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n }\n}\n\n/* \"THREE OUTSIDE DOWN\" properties:\n1) Any bullish basic candle except \"Four-Price Doji\".\n--Second candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Candle's body engulfs the prior candle's body. \n3) Average size: Long.\n--Third Candle \n1) Any bearish basic candle except \"Four-Price Doji\".\n2) Closing price is below the previous closing price. */ \n\nif (direction2Back === \"Bullish\" && name2Back !== \"Four-Price Doji\") {\n if (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\") {\n if (candle1Back.close < candle2Back.open && size1Back === \"Long\") {\n if (basicCandle.direction === \"Bearish\" && basicCandle.name !== \"Four-Price Doji\") {\n variable.name = \"Three Outside Down\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Reversal\" group\n\n//-------------------------------------------------------\n\n/* \"BULLISH CONTINUATION\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend2Back === \"Uptrend\") {\n\n\n\n} // Closing \"Bullish Continuation\" group\n \n//-------------------------------------------------------\n\n/* \"BULLISH REVERSAL\" group:\nThese patterns should appear during a downtrend*/\nif (trend2Back === \"Downtrend\") {\n\n/* \"THREE INSIDE UP\" properties:\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long.\n--Second candle\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu, Green Marubozu or Green Spinning Top.\n2) Candle body is engulfed by the prior candle body.\n--Third Candle \n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu, Green Marubozu or Green Spinning Top.\n2) Closing price is above the previous closing price. */\n\nif (name2Back === \"Red Candle\" || name2Back === \"Long Red Candle\" || name2Back === \"Opening Red Marubozu\" || name2Back === \"Closing Red Marubozu\" || name2Back === \"Red Marubozu\") {\n if (size2Back === \"Long\") {\n if (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\" || name1Back === \"Green Spinning Top\") {\n if (candle1Back.close < candle2Back.open) {\n if (basicCandle.name === \"Green Candle\" || basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\" || basicCandle.name === \"Green Spinning Top\") {\n variable.name = \"Three Inside Up\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n }\n}\n\n/* \"THREE OUTSIDE UP\" properties:\n1) Any bearish basic candle except \"Four-Price Doji\".\n--Second candle\n1) Any following bearish basic candle: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Candle's body engulfs the prior candle's body. \n3) Average size: Long.\n--Third Candle \n1) Any bullish basic candle except \"Four-Price Doji\".\n2) Closing price is above the previous closing price. */ \n\nif (direction2Back === \"Bearish\" && name2Back !== \"Four-Price Doji\") {\n if (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (candle1Back.close > candle2Back.open && size1Back === \"Long\") {\n if (basicCandle.direction === \"Bullish\" && basicCandle.name !== \"Four-Price Doji\") {\n variable.name = \"Three Outside Up\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bullish Reversal\" group\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here all the variables that will be written in the records are defined \n// ----------------------------------------------------------------------------------------------------------------------------\n\nvariable.trend = trend2Back\nvariable.trendLine = oneCandlePattern.trendLine\nvariable.period = oneCandlePattern.period\nvariable.trendMethod = oneCandlePattern.trendMethod\nvariable.bearishArrowHead = candle.max*1.02\nvariable.bullishArrowHead = candle.min*0.98 \n\n} // Closing initial \"undefined\" avoid","id":"e4b8fa10-e9de-48b2-871b-fd5bc2be8544","savedPayload":{"position":{"x":13142.912800841958,"y":13958.22738315719},"targetPosition":{"x":13133.406897710382,"y":13636.959376914901},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a3ca00b1-8cb7-40f0-9d46-e86bcae26607","savedPayload":{"position":{"x":13133.406897710382,"y":13636.959376914901},"targetPosition":{"x":13123.908174017677,"y":13315.777079336249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* Because of these patterns have three candles, the properties of the previous 2 candles are needed. */\nvariable.recordsBack = [ ] // The properties will be recorded in this array","id":"69da8b87-1e7f-45f4-bd47-9a9b0a2057e0","savedPayload":{"position":{"x":12577.05122235381,"y":13653.728456911864},"targetPosition":{"x":12850.45315023664,"y":13484.773677918183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"20684141-89f4-4049-8130-5219f9934b94","savedPayload":{"position":{"x":12850.45315023664,"y":13484.773677918183},"targetPosition":{"x":13123.908174017677,"y":13315.777079336249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1193e656-0fce-4d39-8f46-316d51a8bb95","savedPayload":{"position":{"x":13123.908174017677,"y":13315.777079336249},"targetPosition":{"x":13427.889262586501,"y":12750.836137278113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1b6f79d8-d1ba-49e5-a808-42f71fba5657","savedPayload":{"position":{"x":13950.1700806815,"y":13075.792399298009},"targetPosition":{"x":13606.59207657629,"y":12362.027718520723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Three-Candles Patterns","id":"acdb9c43-0859-42be-87b0-1a600cf513d4"}}}],"id":"254b4e7d-0ede-4208-8f0a-a486dd1a0faf","savedPayload":{"position":{"x":13606.59207657629,"y":12362.027718520723},"targetPosition":{"x":12813.422748313864,"y":12362.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"tradingBots":[],"plotters":[{"type":"Plotter","name":"Candle Patterns","code":"{\n\"codeName\": \"Candle-Patterns\"\n}","modules":[{"type":"Plotter Module","name":"Basic Candles","code":"{ \n\"codeName\": \"Basic-Candles\"\n}","shapes":{"type":"Shapes","name":"Basic Candles","chartPoints":[{"type":"Chart Points","name":"Candle Min","points":[{"type":"Point","name":"Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)/2\ny = record.previous.min","id":"da43ce7b-c3af-49b7-a95c-025494c40a6e","savedPayload":{"position":{"x":13108.977936557767,"y":12188.383729155756},"targetPosition":{"x":12992.912224357988,"y":12465.951795130548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"84c72ff6-fc9c-4869-bd8e-ea8404df0a0f","savedPayload":{"position":{"x":12992.912224357988,"y":12465.951795130548},"targetPosition":{"x":12874.382023295504,"y":12749.007888679644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.min","id":"ee2ef08b-7253-46c1-a087-49feaeae0bd9","savedPayload":{"position":{"x":13359.207789242111,"y":12380.215962023818},"targetPosition":{"x":13119.485580714008,"y":12562.33832997655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b077cf02-7c54-4023-9182-4de81327ff35","savedPayload":{"position":{"x":13119.485580714008,"y":12562.33832997655},"targetPosition":{"x":12874.382023295504,"y":12749.007888679644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2fe07cd8-53ed-4533-a747-05b3906b4755","savedPayload":{"position":{"x":12902.05239713271,"y":12933.635229601114},"targetPosition":{"x":12636.947299989895,"y":13276.879874685575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Mean Length","points":[{"type":"Point","name":"Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)/2\ny = record.previous.min + record.previous.meanLength","id":"c8b8a404-7746-458c-91a4-61d13114c824","savedPayload":{"position":{"x":13673.67750381596,"y":12508.224804263064},"targetPosition":{"x":13349.1040677911,"y":12795.400192005116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2b2ed3d9-a095-403e-8ed8-62f7e73e9f1c","savedPayload":{"position":{"x":13349.1040677911,"y":12795.400192005116},"targetPosition":{"x":13024.73065709388,"y":13082.971349162055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.min + record.meanLength","id":"372fd8b2-9346-4c0a-8465-cb4e2ece90bc","savedPayload":{"position":{"x":13874.48022293734,"y":12909.507347296605},"targetPosition":{"x":13449.660696018584,"y":12996.332616362892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"628ac9f1-445b-4638-8fd5-aa62f6fd859c","savedPayload":{"position":{"x":13449.660696018584,"y":12996.332616362892},"targetPosition":{"x":13024.73065709388,"y":13082.971349162055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"86515391-e909-4183-a0bb-2f6b6d452087","savedPayload":{"position":{"x":13025.021918291819,"y":13082.660247868029},"targetPosition":{"x":12636.947299989895,"y":13276.879874685575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"avgRef","points":[{"type":"Point","name":"Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)/2\ny = record.previous.min + record.previous.avgRef","id":"a231e15f-f884-4326-983c-001a812d2e08","savedPayload":{"position":{"x":13578.803437753708,"y":12816.49484688219},"targetPosition":{"x":13289.589120403027,"y":12897.623893279399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"41fec509-9af9-4ef7-b947-90382ad5ee5d","savedPayload":{"position":{"x":13289.589120403027,"y":12897.623893279399},"targetPosition":{"x":12990.869619180365,"y":12982.381124986036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.min + record.avgRef","id":"69d5c95c-ec98-4656-9057-54ab9fc64a1e","savedPayload":{"position":{"x":13588.803821069829,"y":13118.492608097265},"targetPosition":{"x":13289.456404283654,"y":13057.80208764004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9703549c-8ca6-4293-b4ec-83a4f899c806","savedPayload":{"position":{"x":13289.456404283654,"y":13057.80208764004},"targetPosition":{"x":12990.869619180365,"y":12982.381124986036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3fe2df6a-c2fe-4f66-8529-c959ba7dd010","savedPayload":{"position":{"x":13070.913458756182,"y":13270.299786173973},"targetPosition":{"x":12636.947299989895,"y":13276.879874685575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Candle Min","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.4,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","id":"e19cb185-a1ae-4595-b22f-825aabca3f15","savedPayload":{"position":{"x":13898.021347587734,"y":13494.579614494232},"targetPosition":{"x":13464.696463105538,"y":13476.688840008886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"0c47d43f-28d6-4e22-bcab-ce1a5ba86b13","savedPayload":{"position":{"x":13464.696463105538,"y":13476.688840008886},"targetPosition":{"x":13031.145557927823,"y":13459.07687683122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","id":"aeb3daf8-939c-472d-a653-bb053b201626","savedPayload":{"position":{"x":13424.961913957333,"y":13641.327996042652},"targetPosition":{"x":13031.145557927823,"y":13459.07687683122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"84c72ff6-fc9c-4869-bd8e-ea8404df0a0f"}}},{"type":"Polygon Vertex","name":"End","id":"cf9cdbd9-6a4d-4958-906f-555616617a31","savedPayload":{"position":{"x":13340.7104577407,"y":13755.603986751803},"targetPosition":{"x":13031.145557927823,"y":13459.07687683122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"b077cf02-7c54-4023-9182-4de81327ff35"}}}],"id":"0e718fe1-b457-49b9-a1cd-118bd9f111f4","savedPayload":{"position":{"x":13031.145557927823,"y":13459.07687683122},"targetPosition":{"x":12636.947299989895,"y":13276.879874685575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Mean Length","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.4,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","id":"51351071-cd12-48d6-aa76-8755bd6322b4","savedPayload":{"position":{"x":13665.695313969807,"y":14042.575803215057},"targetPosition":{"x":13283.077530411732,"y":13838.513756463306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8487ed2a-b56a-4d41-895c-569bf127fedc","savedPayload":{"position":{"x":13283.077530411732,"y":13838.513756463306},"targetPosition":{"x":12915.71562588088,"y":13611.66361370111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","id":"4db28f87-f9dd-4420-87bc-d210699f8a01","savedPayload":{"position":{"x":13191.347301384953,"y":13946.99420050665},"targetPosition":{"x":12915.71562588088,"y":13611.66361370111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"2b2ed3d9-a095-403e-8ed8-62f7e73e9f1c"}}},{"type":"Polygon Vertex","name":"End","id":"a4fa988d-7488-4bf4-90f9-2ee6fd939475","savedPayload":{"position":{"x":13064.240731414515,"y":14016.02494944438},"targetPosition":{"x":12915.71562588088,"y":13611.66361370111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"628ac9f1-445b-4638-8fd5-aa62f6fd859c"}}}],"id":"32840d7a-c3be-4c5c-8604-ddec41903a8e","savedPayload":{"position":{"x":12915.71562588088,"y":13611.66361370111},"targetPosition":{"x":12636.947299989895,"y":13276.879874685575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"avgRef","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.4,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","id":"dc036a39-a0d7-43f5-ae0a-f49f80566f35","savedPayload":{"position":{"x":13229.33091362232,"y":14410.229144070205},"targetPosition":{"x":12973.163921033449,"y":14060.158090951238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"332c16f9-b95f-4a5d-a0a7-825adec7b190","savedPayload":{"position":{"x":12973.163921033449,"y":14060.158090951238},"targetPosition":{"x":12739.274799254119,"y":13699.009204216736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","id":"6df63fd0-62c4-49d9-aa62-43e4ebb9e2a3","savedPayload":{"position":{"x":12841.775246025314,"y":14120.818786566584},"targetPosition":{"x":12739.274799254119,"y":13699.009204216736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"41fec509-9af9-4ef7-b947-90382ad5ee5d"}}},{"type":"Polygon Vertex","name":"End","id":"66870fcb-caf4-4e03-9db2-4f7fc0f8cae2","savedPayload":{"position":{"x":12673.03883864232,"y":14128.100137931784},"targetPosition":{"x":12739.274799254119,"y":13699.009204216736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"9703549c-8ca6-4293-b4ec-83a4f899c806"}}}],"id":"b504d259-c93f-4dfa-af0f-ffc23b3e616d","savedPayload":{"position":{"x":12739.274799254119,"y":13699.009204216736},"targetPosition":{"x":12636.947299989895,"y":13276.879874685575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dc146044-78b9-46c7-8e91-47619c333444","savedPayload":{"position":{"x":12636.947299989895,"y":13276.879874685575},"targetPosition":{"x":12212.72884485266,"y":13187.077894379872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Basic Candles","code":"{ \n\"codeName\": \"Basic-Candles\"\n}","panelData":[{"type":"Panel Data","name":"Name","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.name","id":"b94b9d37-1552-4a01-b14b-4897feedd52f","savedPayload":{"position":{"x":12949.630260119242,"y":13182.414450702889},"targetPosition":{"x":12530.612237229694,"y":13296.48962114836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c416dd7-5075-49cc-b404-52fcca7a314c","savedPayload":{"position":{"x":12530.612237229694,"y":13296.48962114836},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.size","id":"7ab67e86-30c4-4d4c-9048-156de658edaa","savedPayload":{"position":{"x":12816.817350046273,"y":13632.297181375847},"targetPosition":{"x":12409.260001385079,"y":13500.956335236164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"84776c6f-6b89-4889-a119-f407ad30a39b","savedPayload":{"position":{"x":12409.260001385079,"y":13500.956335236164},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Upper Shadow %","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.upperShadowPercent","id":"1515c038-a83d-4a33-803d-93f19df9d44f","savedPayload":{"position":{"x":12550.381326036735,"y":14037.469816083092},"targetPosition":{"x":12273.262806955621,"y":13704.12039771927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5bfcb212-425e-481c-93ee-4ddfe0365d04","savedPayload":{"position":{"x":12273.262806955621,"y":13704.12039771927},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Body %","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.bodyPercent","id":"13fb74c6-4320-4755-b896-e3c15b507a8c","savedPayload":{"position":{"x":12102.300757918912,"y":14231.879548647366},"targetPosition":{"x":12049.07457118533,"y":13801.358948162142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4787fdfa-a1b4-4252-be30-1c394ae28d23","savedPayload":{"position":{"x":12049.07457118533,"y":13801.358948162142},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Lower Shadow %","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.lowerShadowPercent","id":"621a0736-7286-407f-be3c-7f9237c1c4e6","savedPayload":{"position":{"x":11620.425246523768,"y":14152.966743446337},"targetPosition":{"x":11808.091895536174,"y":13761.905791832762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"10570ba3-e68c-4aa0-83b9-daed46a61cee","savedPayload":{"position":{"x":11808.091895536174,"y":13761.905791832762},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Parameter: \"Nbodies\"","code":"{\n \"valueDecimals\": 0\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.Nbodies","id":"1ae2288d-9479-410d-9243-21430691060b","savedPayload":{"position":{"x":11257.070102854932,"y":13825.7521669367},"targetPosition":{"x":11626.384453779205,"y":13598.27016763233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"34f62235-4353-4f23-8630-841fbee8665b","savedPayload":{"position":{"x":11626.384453779205,"y":13598.27016763233},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Parameter: \"dojiFactor\" %","code":"{\n \"valueDecimals\": 0\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.dojiFactor","id":"165f2a72-3eac-4740-8445-c9aa133e0ae4","savedPayload":{"position":{"x":11128.212021323285,"y":13354.727980753762},"targetPosition":{"x":11561.962833022772,"y":13362.694365750584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8fe17343-1ae4-4ba8-990a-bfe78872d998","savedPayload":{"position":{"x":11561.962833022772,"y":13362.694365750584},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Parameter: \"sizeFactor\" %","code":"{\n \"valueDecimals\": 0\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFactor","id":"6d9b3c35-1b25-46fb-8b16-ad551cf53493","savedPayload":{"position":{"x":11329.926819301452,"y":12915.28549485325},"targetPosition":{"x":11635.3026294884,"y":13129.436859171616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c2bd7cb-ea2a-48fe-9328-6e7cf397abe5","savedPayload":{"position":{"x":11635.3026294884,"y":13129.436859171616},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Parameter: \"Nlengths\"","code":"{\n \"valueDecimals\": 0\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.Nlengths","id":"42a0f840-7b6f-4e38-ac13-442a40767d70","savedPayload":{"position":{"x":11650.230180812932,"y":12575.088276018505},"targetPosition":{"x":11823.069688597921,"y":12972.80360620623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"26d5e8b8-22fc-40fc-bb28-c3d5272845d0","savedPayload":{"position":{"x":11823.069688597921,"y":12972.80360620623},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Average Size Method","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeMethod","id":"867e57e7-6fc8-4e52-834d-f20f077f37fd","savedPayload":{"position":{"x":12100.695122814745,"y":12456.860795743183},"targetPosition":{"x":12031.325086366693,"y":12885.561054720325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"87d0bb1d-c8e2-47a6-85cc-4e747082305f","savedPayload":{"position":{"x":12031.325086366693,"y":12885.561054720325},"targetPosition":{"x":11995.91387719581,"y":13370.64016764527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7e6dc8b6-bdeb-4f1a-bf39-a239fa100200","savedPayload":{"position":{"x":11995.91387719581,"y":13370.64016764527},"targetPosition":{"x":12212.72884485266,"y":13187.077894379872},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"09e0a24c-ead1-40c6-9e43-72b46e4294c5","savedPayload":{"position":{"x":12212.801118375293,"y":13187.56026971265},"targetPosition":{"x":11944.774819498161,"y":12362.05365917036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"One-Candle Patterns","code":"{ \n\"codeName\": \"One-Candle-Patterns\"\n}","shapes":{"type":"Shapes","name":"One-Candle Pattern","chartPoints":[{"type":"Chart Points","name":"Bearish Arrow","points":[{"type":"Point","name":"-1-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bearishArrowHead*1.01","id":"e175ab11-cdad-4cfa-bc0e-e9d68fd56419","savedPayload":{"position":{"x":12965.483055921071,"y":12868.64329873116},"targetPosition":{"x":12751.830573939056,"y":13103.9914215748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f0e4b32d-4c67-44a9-b215-46dd2de99095","savedPayload":{"position":{"x":12751.830573939056,"y":13103.9914215748},"targetPosition":{"x":12325.132217733979,"y":13574.414781135878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.01","id":"ad0cc3d5-6a7a-45ac-b7db-41438836230c","savedPayload":{"position":{"x":13187.394324262874,"y":13167.773151426483},"targetPosition":{"x":12899.596747782605,"y":13303.156224936247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"23dc1c78-a55d-482c-be5b-f6893e5294c7","savedPayload":{"position":{"x":12899.596747782605,"y":13303.156224936247},"targetPosition":{"x":12325.132217733979,"y":13574.414781135878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.03","id":"16686f17-868b-406b-a3ab-f4e9dbc8a002","savedPayload":{"position":{"x":13278.11981347048,"y":13528.503138391638},"targetPosition":{"x":12960.259486967265,"y":13543.678389079925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2c9565a9-49d5-4f04-91ad-a073ff669a46","savedPayload":{"position":{"x":12960.259486967265,"y":13543.678389079925},"targetPosition":{"x":12325.132217733979,"y":13574.414781135878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.03","id":"1c6a13b5-d22c-4c2f-b692-a387651394ab","savedPayload":{"position":{"x":13222.739691656414,"y":13896.057843602894},"targetPosition":{"x":12923.159535456434,"y":13788.691205248766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fe68b37d-0bf8-4347-9e38-4013fa120bc8","savedPayload":{"position":{"x":12923.159535456434,"y":13788.691205248766},"targetPosition":{"x":12325.132217733979,"y":13574.414781135878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.01","id":"7de429ac-d43c-4d1f-970a-69cfdcbc1fcc","savedPayload":{"position":{"x":13031.388885189543,"y":14215.395793400503},"targetPosition":{"x":12795.742097139453,"y":14001.402450098667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a4e0461d-4d13-4a01-9332-3fd94aa6647a","savedPayload":{"position":{"x":12795.742097139453,"y":14001.402450098667},"targetPosition":{"x":12325.132217733979,"y":13574.414781135878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bearishArrowHead*1.01","id":"e156a730-1cf6-40a2-8272-8ba1ff8534a7","savedPayload":{"position":{"x":12732.143036938007,"y":14436.801488517705},"targetPosition":{"x":12596.296975152018,"y":14149.137635633617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7b205c46-8dc6-4e0b-bca6-258a84c652c5","savedPayload":{"position":{"x":12596.296975152018,"y":14149.137635633617},"targetPosition":{"x":12325.132217733979,"y":13574.414781135878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bearishArrowHead","id":"459bad82-6540-43d3-8c3c-73b119d4dfed","savedPayload":{"position":{"x":12370.78210048176,"y":14527.175870211293},"targetPosition":{"x":12355.689024391071,"y":14209.156277807786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"71bbdced-dc17-4019-a104-c37bd0ecdc98","savedPayload":{"position":{"x":12355.689024391071,"y":14209.156277807786},"targetPosition":{"x":12325.132217733979,"y":13574.414781135878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fccdf048-5edb-4377-9f0e-27a4c21e21f1","savedPayload":{"position":{"x":12353.367503585854,"y":13505.45441654266},"targetPosition":{"x":11788.958007882462,"y":13302.96903920655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Trend Line","points":[{"type":"Point","name":"Trend Line Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.trendLine\n","id":"1b000a16-4143-4eb2-8b9c-9661ddad10ed","savedPayload":{"position":{"x":12563.190535024169,"y":13756.297769489316},"targetPosition":{"x":12256.577146985215,"y":13671.542095945184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a20e46e-5535-4cb4-b34a-36faec96f4da","savedPayload":{"position":{"x":12256.577146985215,"y":13671.542095945184},"targetPosition":{"x":11950.136160700109,"y":13586.56103909256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Trend Line End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.trendLine","id":"f159d45c-483e-4c46-b6ef-b1cd92d00cb7","savedPayload":{"position":{"x":12110.20290112685,"y":14202.628591547256},"targetPosition":{"x":12030.272260088852,"y":13894.498807566852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"58992b77-271b-4362-b130-251d65d8be55","savedPayload":{"position":{"x":12030.272260088852,"y":13894.498807566852},"targetPosition":{"x":11950.136160700109,"y":13586.56103909256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"edfd4367-c042-4fa0-8f77-31c218fc8d78","savedPayload":{"position":{"x":12004.857202186486,"y":13522.3871105841},"targetPosition":{"x":11788.958007882462,"y":13302.96903920655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Bullish Arrow","points":[{"type":"Point","name":"-1-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bullishArrowHead*0.99","id":"fba54222-55a5-437d-92aa-756f08eecdb5","savedPayload":{"position":{"x":12884.050693370733,"y":14021.323169752775},"targetPosition":{"x":12566.608309237596,"y":14001.316971556336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e8aef2aa-6d0c-42f5-82a4-7c37a157c8de","savedPayload":{"position":{"x":12566.608309237596,"y":14001.316971556336},"targetPosition":{"x":11932.50874538122,"y":13961.039115376421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.99","id":"187b028b-4696-4003-90a1-b5beb8ea2ba3","savedPayload":{"position":{"x":12788.595239524107,"y":14381.163669077672},"targetPosition":{"x":12502.841142236866,"y":14240.837003499404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b834103f-86be-4106-ac3c-47b326cd97b4","savedPayload":{"position":{"x":12502.841142236866,"y":14240.837003499404},"targetPosition":{"x":11932.50874538122,"y":13961.039115376421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.97","id":"e51d81db-649a-4b1b-8aad-ed2f24a9affa","savedPayload":{"position":{"x":12562.577984845044,"y":14676.818415156464},"targetPosition":{"x":12352.355755387507,"y":14437.89708951016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"54a1db25-bb24-4ef9-bcbd-1432848214fd","savedPayload":{"position":{"x":12352.355755387507,"y":14437.89708951016},"targetPosition":{"x":11932.50874538122,"y":13961.039115376421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.97","id":"bb33e4b3-dea3-40d4-89d6-4621df7a0ae0","savedPayload":{"position":{"x":12240.629646714464,"y":14863.711297217418},"targetPosition":{"x":12137.941308197125,"y":14562.57552425211},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"800f7290-42e1-4970-a00c-f4a5cd30312b","savedPayload":{"position":{"x":12137.941308197125,"y":14562.57552425211},"targetPosition":{"x":11932.50874538122,"y":13961.039115376421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.99","id":"a09fda1a-0f15-45d2-92ae-e780435c819e","savedPayload":{"position":{"x":11872.148343880908,"y":14913.172845339974},"targetPosition":{"x":11892.179029474377,"y":14595.373171973026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4a83e816-d5a4-47f0-a30e-3f5e5320147e","savedPayload":{"position":{"x":11892.179029474377,"y":14595.373171973026},"targetPosition":{"x":11932.50874538122,"y":13961.039115376421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bullishArrowHead*0.99","id":"1b3b0d03-bef2-4f05-9460-19227819c39b","savedPayload":{"position":{"x":11512.246000757412,"y":14817.147676223887},"targetPosition":{"x":11652.489877668344,"y":14531.57038171824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c6806791-bd74-413b-b86c-61383118cba6","savedPayload":{"position":{"x":11652.489877668344,"y":14531.57038171824},"targetPosition":{"x":11932.50874538122,"y":13961.039115376421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bullishArrowHead","id":"931a9f64-7ec8-44a9-8555-6d03477940f2","savedPayload":{"position":{"x":11216.643926630622,"y":14590.919195459615},"targetPosition":{"x":11455.577456180035,"y":14380.865419957876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2f37b7be-5805-419d-a0a8-3e2fc5eb9e3b","savedPayload":{"position":{"x":11455.577456180035,"y":14380.865419957876},"targetPosition":{"x":11932.50874538122,"y":13961.039115376421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2591fc95-5f9b-409c-8816-11a3dd6d8581","savedPayload":{"position":{"x":11982.730643990966,"y":13870.65896417198},"targetPosition":{"x":11788.958007882462,"y":13302.96903920655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Bearish Arrow","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bearish Reversal\" || record.forecast === \"Bearish Continuation\" ","id":"c92a8076-d1cf-4879-88e2-16f89c878649","savedPayload":{"position":{"x":12235.615205815931,"y":14242.043383584158},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","id":"921dec12-c29d-4656-8ea5-6e5fc7c92469","savedPayload":{"position":{"x":12386.543247211037,"y":14599.372943005143},"targetPosition":{"x":12141.383879811041,"y":14396.716873901229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d7ca8665-bd27-421a-be79-e5b48c4ffd3f","savedPayload":{"position":{"x":12141.383879811041,"y":14396.716873901229},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","id":"2360af46-2b53-4cea-a26b-019107a4e4dc","savedPayload":{"position":{"x":12185.23587033499,"y":14782.072668870904},"targetPosition":{"x":12007.154540660602,"y":14518.332468126262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1beaa578-f91e-4eb9-bcc9-4c979bc9a87c","savedPayload":{"position":{"x":12007.154540660602,"y":14518.332468126262},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","id":"6c20d736-5211-4bb1-836f-3ee460ba4f75","savedPayload":{"position":{"x":11716.852909625657,"y":14624.232075949345},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"f0e4b32d-4c67-44a9-b215-46dd2de99095"}}},{"type":"Polygon Vertex","name":"-2-","id":"7870b61d-7540-4f9e-9d57-bc8b54dab81d","savedPayload":{"position":{"x":11623.59231302339,"y":14627.66878102049},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"23dc1c78-a55d-482c-be5b-f6893e5294c7"}}},{"type":"Polygon Vertex","name":"-3-","id":"666d3979-14ea-4753-8d79-36a17ace6f3b","savedPayload":{"position":{"x":11531.977950824123,"y":14617.239015482895},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"2c9565a9-49d5-4f04-91ad-a073ff669a46"}}},{"type":"Polygon Vertex","name":"-4-","id":"58596c8a-eab1-4926-a006-4c287afd7096","savedPayload":{"position":{"x":11443.396226776775,"y":14593.729412979172},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"fe68b37d-0bf8-4347-9e38-4013fa120bc8"}}},{"type":"Polygon Vertex","name":"-5-","id":"e6073465-7636-48b1-8344-5e82a314ac1d","savedPayload":{"position":{"x":11359.384708955913,"y":14557.807998817012},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"a4e0461d-4d13-4a01-9332-3fd94aa6647a"}}},{"type":"Polygon Vertex","name":"-6-","id":"87a3f44c-5361-4e65-a9f3-1c5a461600b0","savedPayload":{"position":{"x":11281.510600734495,"y":14510.28688448735},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"7b205c46-8dc6-4e0b-bca6-258a84c652c5"}}},{"type":"Polygon Vertex","name":"-7-","id":"dcd75a74-5275-4181-8801-8bb625ab2545","savedPayload":{"position":{"x":11204.2163719251,"y":14444.367521032163},"targetPosition":{"x":11651.510516632672,"y":13991.706520612408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"71bbdced-dc17-4019-a104-c37bd0ecdc98"}}}],"id":"d503108f-9b4f-4aae-9e99-b92e1aedb6c8","savedPayload":{"position":{"x":11717.295634801481,"y":13899.316787849044},"targetPosition":{"x":11788.958007882462,"y":13302.96903920655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Trend Line","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\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}","id":"8b777f5a-b79e-45c5-ae85-3693d946b577","savedPayload":{"position":{"x":11754.491297468012,"y":14221.928059725631},"targetPosition":{"x":11690.670498529573,"y":13928.733372537468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9ec3107b-2173-46b2-b831-7144910bd2ed","savedPayload":{"position":{"x":11690.670498529573,"y":13928.733372537468},"targetPosition":{"x":11640.674066617728,"y":13577.428401494675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Trend Line End","id":"66cee7f2-7951-4c23-84d9-8af01e017f34","savedPayload":{"position":{"x":11446.52123541505,"y":13881.528809602585},"targetPosition":{"x":11640.674066617728,"y":13577.428401494675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line End","id":"58992b77-271b-4362-b130-251d65d8be55"}}},{"type":"Polygon Vertex","name":"Trend Line Begin","id":"968f315d-33e1-4866-b061-42fb61964ad6","savedPayload":{"position":{"x":11291.487886964725,"y":13665.409189827207},"targetPosition":{"x":11640.674066617728,"y":13577.428401494675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line Begin","id":"0a20e46e-5535-4cb4-b34a-36faec96f4da"}}}],"id":"2e0fe089-4dae-4895-b46b-4f5e07ac9926","savedPayload":{"position":{"x":11623.025853596115,"y":13562.808922097776},"targetPosition":{"x":11788.958007882462,"y":13302.96903920655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Bullish Arrow","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bullish Reversal\" || record.forecast === \"Bullish Continuation\" ","id":"e32f5ba5-7e4e-4b48-9255-985134b35bf6","savedPayload":{"position":{"x":11356.333851880048,"y":14309.19499572535},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","id":"dc4c1077-65c7-4b76-8420-ea719c497798","savedPayload":{"position":{"x":11171.794743914175,"y":14650.734757758717},"targetPosition":{"x":11175.745440661813,"y":14330.932431226403},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8f42597b-9b13-46a3-b926-bf79570f27eb","savedPayload":{"position":{"x":11175.745440661813,"y":14330.932431226403},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","id":"97b28c5b-f7c8-41d4-82a7-2db8fe1bd533","savedPayload":{"position":{"x":10900.571835786326,"y":14607.936193660593},"targetPosition":{"x":10995.921202414036,"y":14303.32115943792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"fc855e6f-bb88-485d-8079-99653a800a36","savedPayload":{"position":{"x":10995.921202414036,"y":14303.32115943792},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","id":"6f1e0d8e-a1a7-4fc7-ab01-d2e4d5cb0807","savedPayload":{"position":{"x":10730.677169859624,"y":14140.232690672607},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"e8aef2aa-6d0c-42f5-82a4-7c37a157c8de"}}},{"type":"Polygon Vertex","name":"-2-","id":"7bff821f-bb70-4a9f-89b9-74bd1dcde01f","savedPayload":{"position":{"x":10669.455225389724,"y":14069.029034667272},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"b834103f-86be-4106-ac3c-47b326cd97b4"}}},{"type":"Polygon Vertex","name":"-3-","id":"e14aa3b8-ed10-4358-87db-81d0f2fd580c","savedPayload":{"position":{"x":10619.03190035281,"y":13991.292631787524},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"54a1db25-bb24-4ef9-bcbd-1432848214fd"}}},{"type":"Polygon Vertex","name":"-4-","id":"fa285436-8897-49fa-81bf-bcf727e368de","savedPayload":{"position":{"x":10580.696718259642,"y":13907.589130141916},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"800f7290-42e1-4970-a00c-f4a5cd30312b"}}},{"type":"Polygon Vertex","name":"-5-","id":"cb9d9c29-9b41-42ba-bb6b-3e63dcbd253e","savedPayload":{"position":{"x":10556.368939645708,"y":13819.304483172136},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"4a83e816-d5a4-47f0-a30e-3f5e5320147e"}}},{"type":"Polygon Vertex","name":"-6-","id":"56ccabba-f502-416d-92ff-da20ee90ddf3","savedPayload":{"position":{"x":10547.376439499101,"y":13728.662757496488},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"c6806791-bd74-413b-b86c-61383118cba6"}}},{"type":"Polygon Vertex","name":"-7-","id":"688ebb45-45d7-4e2a-bfbc-f0bb799b2360","savedPayload":{"position":{"x":10551.83122632822,"y":13627.127452074243},"targetPosition":{"x":11185.66041236107,"y":13695.172255559371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"2f37b7be-5805-419d-a0a8-3e2fc5eb9e3b"}}}],"id":"2cd7982f-ecc8-41ce-8b27-ede1d1ad7d8c","savedPayload":{"position":{"x":11278.026117322934,"y":13618.688201219642},"targetPosition":{"x":11788.958007882462,"y":13302.96903920655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0a02f148-0036-4d1c-aac5-a4e4ee5c25e7","savedPayload":{"position":{"x":11788.985336730206,"y":13303.148965975284},"targetPosition":{"x":11726.454631962377,"y":12706.323293734202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"One-Candle Patterns","code":"{ \n\"codeName\": \"One-Candle-Patterns\"\n}","panelData":[{"type":"Panel Data","name":"Pattern Name","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.name","id":"664bc7e8-5c76-4dea-82ad-acef43eaa2da","savedPayload":{"position":{"x":11501.93740317275,"y":13176.94603730852},"targetPosition":{"x":11426.363737763586,"y":12886.064548854436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"119aa231-cf07-40a8-98ee-679e8d4e99ce","savedPayload":{"position":{"x":11426.363737763586,"y":12886.064548854436},"targetPosition":{"x":11404.41259716337,"y":12563.288189030278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Direction","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trend","id":"d4102f27-72a7-412c-b9b4-244e3ef5100d","savedPayload":{"position":{"x":11043.95740825339,"y":13044.183060725472},"targetPosition":{"x":11223.967414000515,"y":12803.702728176195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2409211c-7992-4b1a-8273-25ce7e284b72","savedPayload":{"position":{"x":11223.967414000515,"y":12803.702728176195},"targetPosition":{"x":11404.41259716337,"y":12563.288189030278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Forecast","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.forecast","id":"19821933-d558-452e-9dc0-5df90116fcc1","savedPayload":{"position":{"x":10803.749528281682,"y":12581.122148207885},"targetPosition":{"x":11103.854307668524,"y":12572.148609337759},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e240fe07-156c-4766-8fe0-f123781842ef","savedPayload":{"position":{"x":11103.854307668524,"y":12572.148609337759},"targetPosition":{"x":11404.41259716337,"y":12563.288189030278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Method","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendMethod","id":"7541dc87-d801-48bc-b2d8-391e605c0c5e","savedPayload":{"position":{"x":11015.814020906739,"y":12105.124543641734},"targetPosition":{"x":11209.89927891457,"y":12334.131330156766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e0c328ed-84b7-43a2-bfb2-274d1b1d3bae","savedPayload":{"position":{"x":11209.89927891457,"y":12334.131330156766},"targetPosition":{"x":11404.41259716337,"y":12563.288189030278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Period","code":"{\n \"valueDecimals\": 0\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","id":"6b66e742-6d13-43d6-a00f-a6ed9d070249","savedPayload":{"position":{"x":11519.191959073312,"y":11973.773593496275},"targetPosition":{"x":11461.907216338393,"y":12268.52539343757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e457e54c-7cbb-4866-9b67-3bb71332e2c5","savedPayload":{"position":{"x":11461.907216338393,"y":12268.52539343757},"targetPosition":{"x":11404.41259716337,"y":12563.288189030278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Value","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendLine","id":"e33fff96-c3f5-4376-8d90-4feafc0df08b","savedPayload":{"position":{"x":11924.983441013894,"y":12225.374211815923},"targetPosition":{"x":11658.458671376004,"y":12362.787527456234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"42d2f0eb-65fa-4358-af25-484517433307","savedPayload":{"position":{"x":11658.458671376004,"y":12362.787527456234},"targetPosition":{"x":11404.41259716337,"y":12563.288189030278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d2af80dc-8d17-42f3-b88a-af1726c59859","savedPayload":{"position":{"x":11404.41259716337,"y":12563.288189030278},"targetPosition":{"x":11726.454631962377,"y":12706.323293734202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"14f83391-e4a6-470c-90c0-19763f83429b","savedPayload":{"position":{"x":11242.580100163783,"y":12872.161390267005},"targetPosition":{"x":11944.774819498161,"y":12362.05365917036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Two-Candles Patterns","code":"{ \n\"codeName\": \"Two-Candles Patterns\"\n}","shapes":{"type":"Shapes","name":"Two-Candles Patterns","chartPoints":[{"type":"Chart Points","name":"Bearish Arrow","points":[{"type":"Point","name":"-1-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bearishArrowHead*1.01","id":"7dc394b3-ca00-4738-a554-420b393aa4f8","savedPayload":{"position":{"x":12080.364766906878,"y":13220.782956633711},"targetPosition":{"x":11790.248866809208,"y":13090.111787601752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7291f0d5-78e1-4d7c-a73d-2068e491344b","savedPayload":{"position":{"x":11790.248866809208,"y":13090.111787601752},"targetPosition":{"x":11210.883601978836,"y":12829.416928291432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.01","id":"cfdc25f2-f236-4fd0-a09c-11759c6a4e07","savedPayload":{"position":{"x":11864.254631850083,"y":13523.767719263178},"targetPosition":{"x":11646.060247337566,"y":13291.842840506357},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"87745033-dc64-4d86-8579-29cf35124f9a","savedPayload":{"position":{"x":11646.060247337566,"y":13291.842840506357},"targetPosition":{"x":11210.883601978836,"y":12829.416928291432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.04","id":"f30d7904-2195-4bab-93d4-d5083000fe6b","savedPayload":{"position":{"x":11548.872612758332,"y":13721.322106848394},"targetPosition":{"x":11436.15829430936,"y":13423.781375380397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"87fc7e3a-455f-49bb-ab44-fc06ba845f00","savedPayload":{"position":{"x":11436.15829430936,"y":13423.781375380397},"targetPosition":{"x":11210.883601978836,"y":12829.416928291432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.04","id":"f29b34a0-8604-4cde-b52c-237a422ccb31","savedPayload":{"position":{"x":11182.440371853707,"y":13782.892125833674},"targetPosition":{"x":11191.895398924,"y":13464.716740789758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2bab7192-a08c-4461-b36e-f369491dfd42","savedPayload":{"position":{"x":11191.895398924,"y":13464.716740789758},"targetPosition":{"x":11210.883601978836,"y":12829.416928291432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.01","id":"20df1362-6e33-45c3-bf48-c4a76035b428","savedPayload":{"position":{"x":10819.670867042692,"y":13699.328603873406},"targetPosition":{"x":10950.196779102633,"y":13409.036213563837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3c9d80e6-ad20-4b47-a8f5-1bf19a0b80e2","savedPayload":{"position":{"x":10950.196779102633,"y":13409.036213563837},"targetPosition":{"x":11210.883601978836,"y":12829.416928291432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bearishArrowHead*1.01","id":"64a8c860-86c4-40da-9ca0-d5e424ade757","savedPayload":{"position":{"x":10516.426943651764,"y":13483.271111995491},"targetPosition":{"x":10748.207670935357,"y":13265.113689035281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c6a0d716-6534-453b-9d0f-a8c6faa502f0","savedPayload":{"position":{"x":10748.207670935357,"y":13265.113689035281},"targetPosition":{"x":11210.883601978836,"y":12829.416928291432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bearishArrowHead","id":"62fc84a0-55e5-452c-b72d-4c91174ea85a","savedPayload":{"position":{"x":10319.068694124551,"y":13167.497391595014},"targetPosition":{"x":10616.657668901848,"y":13054.714065527793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fef9ea3b-84c5-43cd-9602-96f8170065bd","savedPayload":{"position":{"x":10616.657668901848,"y":13054.714065527793},"targetPosition":{"x":11210.883601978836,"y":12829.416928291432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9020cd21-a011-4b59-aec4-56469a5ce79f","savedPayload":{"position":{"x":11212.08238612305,"y":12793.886426050642},"targetPosition":{"x":11230.088306354333,"y":12194.214105362249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Trend Line","points":[{"type":"Point","name":"Trend Line Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.trendLine\n","id":"aed6b5b4-e6e5-4e5c-a13b-1d707c93c15a","savedPayload":{"position":{"x":11112.203423838924,"y":13135.049712488144},"targetPosition":{"x":11098.154486588639,"y":12816.675111736882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"691a374a-ab65-4dc5-b788-979162f87185","savedPayload":{"position":{"x":11098.154486588639,"y":12816.675111736882},"targetPosition":{"x":11083.52637072901,"y":12476.574737981895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Trend Line End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.trendLine","id":"9b3acde4-3360-4869-8685-c08922111bd5","savedPayload":{"position":{"x":10528.328676106998,"y":12831.586770785856},"targetPosition":{"x":10796.587520809484,"y":12660.256912026685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1e2e8a50-8a93-4696-9ed7-f8ea1da75c5e","savedPayload":{"position":{"x":10796.587520809484,"y":12660.256912026685},"targetPosition":{"x":11083.52637072901,"y":12476.574737981895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7af63af8-4b52-4c71-b427-906a0eaa37d2","savedPayload":{"position":{"x":11091.612510483377,"y":12460.869122431828},"targetPosition":{"x":11230.088306354333,"y":12194.214105362249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Bullish Arrow","points":[{"type":"Point","name":"-1-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bullishArrowHead*0.99","id":"7cd5ae63-7c34-4ce3-84f9-8de0b14fbafa","savedPayload":{"position":{"x":10957.995336187574,"y":13499.347586436937},"targetPosition":{"x":10879.208138403894,"y":13191.010310464353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"38b0018b-d162-492e-90b3-604efc79c16e","savedPayload":{"position":{"x":10879.208138403894,"y":13191.010310464353},"targetPosition":{"x":10721.704601814654,"y":12575.369642451864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.99","id":"3221cc5c-76c7-4335-bc1c-a781c1c7a6f4","savedPayload":{"position":{"x":10586.804919038863,"y":13519.5759173753},"targetPosition":{"x":10631.795073687696,"y":13204.472858274814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"66a65473-db28-42bf-8491-3497a35cc42b","savedPayload":{"position":{"x":10631.795073687696,"y":13204.472858274814},"targetPosition":{"x":10721.704601814654,"y":12575.369642451864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.96","id":"5dbc1498-0b47-48cd-a37c-1a4f19f6c788","savedPayload":{"position":{"x":10235.638110508145,"y":13395.963856067829},"targetPosition":{"x":10397.830607018597,"y":13122.11928578089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cb37189b-fdb7-4cd7-aa78-1dfd71c8e614","savedPayload":{"position":{"x":10397.830607018597,"y":13122.11928578089},"targetPosition":{"x":10721.704601814654,"y":12575.369642451864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.96","id":"1bcf2a18-15b8-4a2c-b7b6-1167c00ff5e9","savedPayload":{"position":{"x":9958.51463690534,"y":13147.352166790564},"targetPosition":{"x":10213.201596397783,"y":12956.49560590405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"aae0a6cc-e05b-402f-800c-807df07b1f37","savedPayload":{"position":{"x":10213.201596397783,"y":12956.49560590405},"targetPosition":{"x":10721.704601814654,"y":12575.369642451864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.99","id":"8011dcdd-1c27-4bcb-8ea6-3344573aa905","savedPayload":{"position":{"x":9797.608411032441,"y":12811.642008035207},"targetPosition":{"x":10106.006106977726,"y":12732.832615058134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a5f609bd-7162-4155-8778-d085b000ef04","savedPayload":{"position":{"x":10106.006106977726,"y":12732.832615058134},"targetPosition":{"x":10721.704601814654,"y":12575.369642451864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bullishArrowHead*0.99","id":"37fa781c-1480-47fd-a862-39894108dc46","savedPayload":{"position":{"x":9777.434768608586,"y":12440.483473176917},"targetPosition":{"x":10092.560564373696,"y":12485.454399858972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6edd83d4-739a-4651-9204-2a0f617e1256","savedPayload":{"position":{"x":10092.560564373696,"y":12485.454399858972},"targetPosition":{"x":10721.704601814654,"y":12575.369642451864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bullishArrowHead","id":"65f9907e-ab3a-4ef4-a902-b8204afc49d7","savedPayload":{"position":{"x":9901.123266502633,"y":12089.222366557253},"targetPosition":{"x":10174.944718196417,"y":12251.419740461577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b98d1777-f3a2-4bcc-8312-6d89d1c6662e","savedPayload":{"position":{"x":10174.944718196417,"y":12251.419740461577},"targetPosition":{"x":10721.704601814654,"y":12575.369642451864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20da6d05-3166-4ba2-bd3c-b21770ae1958","savedPayload":{"position":{"x":10750.266363912004,"y":12553.875282572766},"targetPosition":{"x":11230.088306354333,"y":12194.214105362249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Bearish Arrow","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bearish Reversal\" || record.forecast === \"Bearish Continuation\" ","id":"bebcd91f-d028-4d8c-bc25-317d19f1b955","savedPayload":{"position":{"x":10545.921551362917,"y":12950.461440057985},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","id":"8d874a62-2e9c-43e9-9632-e93a7e25d8c3","savedPayload":{"position":{"x":10254.470661709795,"y":13203.968708192891},"targetPosition":{"x":10370.531202082246,"y":12907.47369966236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6e948385-96a4-40ba-b8db-eb11d079aad1","savedPayload":{"position":{"x":10370.531202082246,"y":12907.47369966236},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","id":"65302767-1fb6-4a56-b981-4ca898e3fc1f","savedPayload":{"position":{"x":10019.354758517326,"y":13068.057848255628},"targetPosition":{"x":10214.217089568454,"y":12817.719639137931},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6365634c-c753-4be1-9f4e-d81a88690b96","savedPayload":{"position":{"x":10214.217089568454,"y":12817.719639137931},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","id":"952bb578-3cc3-4576-b7dd-a043f2b4d719","savedPayload":{"position":{"x":10022.184079381099,"y":12573.955392658285},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"7291f0d5-78e1-4d7c-a73d-2068e491344b"}}},{"type":"Polygon Vertex","name":"-2-","id":"bc4ee454-7c2b-4808-a99c-002afae05d39","savedPayload":{"position":{"x":9990.314472494567,"y":12485.992965465333},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"87745033-dc64-4d86-8579-29cf35124f9a"}}},{"type":"Polygon Vertex","name":"-3-","id":"6ad8a90c-4d6e-47ed-a4be-ae3a5684b26d","savedPayload":{"position":{"x":9971.59872853725,"y":12395.55272137446},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"87fc7e3a-455f-49bb-ab44-fc06ba845f00"}}},{"type":"Polygon Vertex","name":"-4-","id":"a49d5c98-f797-45ec-832a-c89de61c5030","savedPayload":{"position":{"x":9966.45605918407,"y":12303.952338163099},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"2bab7192-a08c-4461-b36e-f369491dfd42"}}},{"type":"Polygon Vertex","name":"-5-","id":"5ee4c947-de43-4212-adf9-28d28820da8e","savedPayload":{"position":{"x":9974.562593159011,"y":12212.881430747817},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"3c9d80e6-ad20-4b47-a8f5-1bf19a0b80e2"}}},{"type":"Polygon Vertex","name":"-6-","id":"c6e490ea-bdfd-4738-84e7-dcd8e1078605","savedPayload":{"position":{"x":9996.735865147144,"y":12124.449288633105},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"c6a0d716-6534-453b-9d0f-a8c6faa502f0"}}},{"type":"Polygon Vertex","name":"-7-","id":"2aaa39e8-be04-491e-862e-b1bb03c8d29d","savedPayload":{"position":{"x":10035.594561056812,"y":12030.551045346489},"targetPosition":{"x":10604.569933994353,"y":12316.386913442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"fef9ea3b-84c5-43cd-9602-96f8170065bd"}}}],"id":"49566c3d-5038-4737-a68a-4f1f99a53296","savedPayload":{"position":{"x":10640.963579422994,"y":12310.144397142643},"targetPosition":{"x":11230.088306354333,"y":12194.214105362249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Trend Line","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\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}","id":"5d90400c-c680-452a-b5d6-dd01f3483a67","savedPayload":{"position":{"x":10336.04431049231,"y":12450.530040797157},"targetPosition":{"x":10610.378394632273,"y":12289.861961035038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6ab5c6b9-d4e4-4b61-a135-17bb3a0204cb","savedPayload":{"position":{"x":10610.378394632273,"y":12289.861961035038},"targetPosition":{"x":10921.79645213607,"y":12114.128738025604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Trend Line End","id":"d99e5489-5977-4ca7-9d11-a65feaeb3e1e","savedPayload":{"position":{"x":10568.411398546887,"y":12022.163589007218},"targetPosition":{"x":10921.79645213607,"y":12114.128738025604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line End","id":"1e2e8a50-8a93-4696-9ed7-f8ea1da75c5e"}}},{"type":"Polygon Vertex","name":"Trend Line Begin","id":"0f83b930-9073-41a5-a3e6-59ea6b3ebafd","savedPayload":{"position":{"x":10727.167582598435,"y":11850.56892593657},"targetPosition":{"x":10921.79645213607,"y":12114.128738025604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line Begin","id":"691a374a-ab65-4dc5-b788-979162f87185"}}}],"id":"f826e8bf-cc5c-4b7f-9d15-1fc6a45d7ced","savedPayload":{"position":{"x":10939.089469477603,"y":12118.64120094056},"targetPosition":{"x":11230.088306354333,"y":12194.214105362249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Bullish Arrow","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bullish Reversal\" || record.forecast === \"Bullish Continuation\" ","id":"edbfaf8f-8507-4d7b-9057-353f9571e615","savedPayload":{"position":{"x":10213.778124897002,"y":12132.269517906983},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","id":"010c4131-393a-474e-98af-444ebfbb7a8d","savedPayload":{"position":{"x":9832.110411093618,"y":12061.536130343056},"targetPosition":{"x":10136.738383878033,"y":11968.48508335417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"5f6e62fc-4d25-4af4-86df-ca18bdd1e897","savedPayload":{"position":{"x":10136.738383878033,"y":11968.48508335417},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","id":"51545ef3-4202-4f31-8746-908b4d04e273","savedPayload":{"position":{"x":9790.998444728728,"y":11792.777718410327},"targetPosition":{"x":10109.09160879138,"y":11789.752637665544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"504af6cf-5682-4ec9-90f1-3b5ac174cb67","savedPayload":{"position":{"x":10109.09160879138,"y":11789.752637665544},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","id":"e9090bdf-ffe5-4031-89d1-3de33dec1105","savedPayload":{"position":{"x":10180.91832187618,"y":11489.022185253545},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"38b0018b-d162-492e-90b3-604efc79c16e"}}},{"type":"Polygon Vertex","name":"-2-","id":"4a190301-2d52-49ae-a061-9bb553ea1c0f","savedPayload":{"position":{"x":10229.487357706232,"y":11409.369514204043},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"66a65473-db28-42bf-8491-3497a35cc42b"}}},{"type":"Polygon Vertex","name":"-3-","id":"f5a0eaa5-7837-4d60-8040-37f4353e3b27","savedPayload":{"position":{"x":10288.806371235347,"y":11338.81796836232},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"cb37189b-fdb7-4cd7-aa78-1dfd71c8e614"}}},{"type":"Polygon Vertex","name":"-4-","id":"13577516-ccb2-469f-9d59-f5bc71c16e77","savedPayload":{"position":{"x":10356.915208917773,"y":11277.45963608795},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"aae0a6cc-e05b-402f-800c-807df07b1f37"}}},{"type":"Polygon Vertex","name":"-5-","id":"9884c89e-fbb3-4101-b19f-0522b933175c","savedPayload":{"position":{"x":10433.13499988092,"y":11227.026027209664},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"a5f609bd-7162-4155-8778-d085b000ef04"}}},{"type":"Polygon Vertex","name":"-6-","id":"a089c901-705c-4b1a-bf29-fca8669ad902","savedPayload":{"position":{"x":10515.800630207897,"y":11188.449222250814},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"6edd83d4-739a-4651-9204-2a0f617e1256"}}},{"type":"Polygon Vertex","name":"-7-","id":"6a3d330f-6852-4cb0-80fe-72c3bf02aa31","savedPayload":{"position":{"x":10613.300853575201,"y":11160.109996005818},"targetPosition":{"x":10744.80357975978,"y":11782.900088054459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"b98d1777-f3a2-4bcc-8312-6d89d1c6662e"}}}],"id":"ba0bcada-77c5-450e-a1fc-7708bcaca60b","savedPayload":{"position":{"x":10772.02987586426,"y":11806.085959361126},"targetPosition":{"x":11230.088306354333,"y":12194.214105362249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e0c63725-4cfb-4d1e-9b70-80343de2e9b3","savedPayload":{"position":{"x":11230.088306354333,"y":12194.214105362249},"targetPosition":{"x":11726.311308429293,"y":12000.002156669318},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Two-Candles Patterns","code":"{ \n\"codeName\": \"Two-Candles Patterns\"\n}","panelData":[{"type":"Panel Data","name":"Pattern Name","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.name","id":"6d2625d7-82c7-4186-95a7-8bfe0892446a","savedPayload":{"position":{"x":11282.2990000533,"y":11726.161646922197},"targetPosition":{"x":11535.512418924576,"y":11564.887805754493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f5538abe-a9aa-42ad-9c30-798dc41ddb80","savedPayload":{"position":{"x":11535.512418924576,"y":11564.887805754493},"targetPosition":{"x":11788.733371624632,"y":11403.513224859445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Direction","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trend","id":"7f273725-f758-4f3e-bc3a-d7d47f919c7a","savedPayload":{"position":{"x":11220.037908516686,"y":11209.153715114357},"targetPosition":{"x":11504.352857782778,"y":11306.304335360548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e819599-22c9-4acd-ac77-92f18b20cb61","savedPayload":{"position":{"x":11504.352857782778,"y":11306.304335360548},"targetPosition":{"x":11788.733371624632,"y":11403.513224859445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Forecast","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.forecast","id":"43090bdd-e415-48e8-ba75-4b80d4f0aeee","savedPayload":{"position":{"x":11586.129481188585,"y":10837.61793014342},"targetPosition":{"x":11687.410807177355,"y":11120.507471023042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"39649444-cba8-41d2-bb32-064f43cf8df4","savedPayload":{"position":{"x":11687.410807177355,"y":11120.507471023042},"targetPosition":{"x":11788.733371624632,"y":11403.513224859445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Method","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendMethod","id":"f7a45eca-7fe0-4837-b719-92e81fa0774d","savedPayload":{"position":{"x":12104.279119313203,"y":10892.061094636183},"targetPosition":{"x":11946.510748979814,"y":11147.737856386202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6cb4eef6-735b-409a-92c4-fe2b2e1e82be","savedPayload":{"position":{"x":11946.510748979814,"y":11147.737856386202},"targetPosition":{"x":11788.733371624632,"y":11403.513224859445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Period","code":"{\n \"valueDecimals\": 0\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","id":"75c3e3bd-c749-463d-bae4-296abf83f078","savedPayload":{"position":{"x":12385.01152304191,"y":11331.348876381158},"targetPosition":{"x":12086.880994256426,"y":11367.456255990743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4c31ec17-bf6c-4dfc-8f42-1e7fe7e77297","savedPayload":{"position":{"x":12086.880994256426,"y":11367.456255990743},"targetPosition":{"x":11788.733371624632,"y":11403.513224859445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Value","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendLine","id":"d9e33fbf-8990-4363-b674-f1ec7f71bfcd","savedPayload":{"position":{"x":12215.748183200936,"y":11824.340368643023},"targetPosition":{"x":12002.46074564505,"y":11613.906972541092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d4f75b19-1a90-48d8-b6fe-9f064505ae93","savedPayload":{"position":{"x":12002.46074564505,"y":11613.906972541092},"targetPosition":{"x":11788.733371624632,"y":11403.513224859445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6426039f-b3dc-443b-bf6a-faa1dd1e3f2c","savedPayload":{"position":{"x":11788.733371624632,"y":11403.513224859445},"targetPosition":{"x":11726.311308429293,"y":12000.002156669318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3bf46641-3478-41fd-8407-0af20e72f30b","savedPayload":{"position":{"x":11242.579324512362,"y":11851.939369699156},"targetPosition":{"x":11944.774819498161,"y":12362.05365917036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Three-Candles Patterns","code":"{ \n\"codeName\": \"Three-Candles Patterns\"\n}","shapes":{"type":"Shapes","name":"Three-Candles Patterns","chartPoints":[{"type":"Chart Points","name":"Bearish Arrow","points":[{"type":"Point","name":"-1-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bearishArrowHead*1.01","id":"050fd307-0763-423f-b0a7-488f1e22b2f0","savedPayload":{"position":{"x":11323.22312544964,"y":12398.77290242567},"targetPosition":{"x":11355.846289853453,"y":12100.317423764762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b20f834d-a9d0-419e-87ce-c9d56cdfe948","savedPayload":{"position":{"x":11355.846289853453,"y":12100.317423764762},"targetPosition":{"x":11420.877930333358,"y":11503.982415719443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.01","id":"ea09a04d-33f3-430d-9210-b60a0d93accf","savedPayload":{"position":{"x":10988.173987892253,"y":12293.359470804624},"targetPosition":{"x":11132.623775381358,"y":12029.93345933905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d119f364-4c32-4605-afcb-025e62d32f20","savedPayload":{"position":{"x":11132.623775381358,"y":12029.93345933905},"targetPosition":{"x":11420.877930333358,"y":11503.982415719443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.05","id":"c472d80d-ff4c-4bdf-af76-b8fb1c9dd3f5","savedPayload":{"position":{"x":10718.975254856272,"y":12067.705534662236},"targetPosition":{"x":10953.244304894615,"y":11879.595091179535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0e94de71-51dc-4d00-81fc-db6a47af48e9","savedPayload":{"position":{"x":10953.244304894615,"y":11879.595091179535},"targetPosition":{"x":11420.877930333358,"y":11503.982415719443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.05","id":"c851f754-5148-4d6c-abef-446f4dcbf95c","savedPayload":{"position":{"x":10556.586322739728,"y":11756.177469363914},"targetPosition":{"x":10845.051173261003,"y":11672.051259630229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"54f3f9d8-a0fd-489b-a280-5791c92afe4a","savedPayload":{"position":{"x":10845.051173261003,"y":11672.051259630229},"targetPosition":{"x":11420.877930333358,"y":11503.982415719443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.01","id":"305bea41-e179-499b-bff8-687f861b575a","savedPayload":{"position":{"x":10525.745074217419,"y":11406.81436868035},"targetPosition":{"x":10824.50657379665,"y":11439.198329378869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"75712c99-427f-4995-ad28-116f514f1b1d","savedPayload":{"position":{"x":10824.50657379665,"y":11439.198329378869},"targetPosition":{"x":11420.877930333358,"y":11503.982415719443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bearishArrowHead*1.01","id":"3fd2696f-e7e8-41f5-ae74-e757cb72b755","savedPayload":{"position":{"x":10631.124209494767,"y":11071.749322646681},"targetPosition":{"x":10894.737895024446,"y":11215.962561313583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"32a9e24a-ecbb-4272-868f-8a2c1131d780","savedPayload":{"position":{"x":10894.737895024446,"y":11215.962561313583},"targetPosition":{"x":11420.877930333358,"y":11503.982415719443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bearishArrowHead","id":"b02696af-5430-4311-a2b8-b7a69d5f085b","savedPayload":{"position":{"x":10867.949211062165,"y":10813.470283355004},"targetPosition":{"x":11044.961393591799,"y":11036.833646122217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"da13c2e7-5b21-44b3-98ef-e101a208cd82","savedPayload":{"position":{"x":11044.961393591799,"y":11036.833646122217},"targetPosition":{"x":11420.877930333358,"y":11503.982415719443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ed6c9b38-f0d8-49d8-b6e6-831ba4391e67","savedPayload":{"position":{"x":11420.37969691572,"y":11503.86735025911},"targetPosition":{"x":11996.288685770072,"y":11335.876531559219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Trend Line","points":[{"type":"Point","name":"Trend Line Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.trendLine\n","id":"8df901ad-9507-4c1b-aa66-e80e52142e64","savedPayload":{"position":{"x":11016.722031728412,"y":11454.378828646537},"targetPosition":{"x":11316.130511374482,"y":11343.228840785512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f05e403b-b940-4007-be9d-517cd5f5b761","savedPayload":{"position":{"x":11316.130511374482,"y":11343.228840785512},"targetPosition":{"x":11634.746916819295,"y":11224.7967380953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Trend Line End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.trendLine","id":"c790f239-fe7c-488c-a22c-ea82c2ea43f3","savedPayload":{"position":{"x":11123.976317395478,"y":10806.782956392311},"targetPosition":{"x":11370.717363619271,"y":11009.24532402787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e185278f-a45c-43e3-8691-6252e48809cc","savedPayload":{"position":{"x":11370.717363619271,"y":11009.24532402787},"targetPosition":{"x":11634.746916819295,"y":11224.7967380953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"30170318-2cab-4bb6-ad3b-362b5a25d245","savedPayload":{"position":{"x":11699.858996619034,"y":11286.736822449375},"targetPosition":{"x":11996.288685770072,"y":11335.876531559219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Bullish Arrow","points":[{"type":"Point","name":"-1-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bullishArrowHead*0.99","id":"91cd5c4e-6dc9-41f4-abba-e66c6d9c7c3e","savedPayload":{"position":{"x":10622.722060799468,"y":11421.307241331033},"targetPosition":{"x":10891.625071432056,"y":11250.994753964025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a9852c0f-8ac8-4b9d-ac29-e8d8f29da720","savedPayload":{"position":{"x":10891.625071432056,"y":11250.994753964025},"targetPosition":{"x":11428.37470788099,"y":10910.903506853843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.99","id":"99075b18-7979-4f15-915a-272a4debd949","savedPayload":{"position":{"x":10488.598236123893,"y":11073.923504266513},"targetPosition":{"x":10802.297353325306,"y":11019.557174673808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bb29fdb8-abfe-4377-9063-6790f2eb8d8f","savedPayload":{"position":{"x":10802.297353325306,"y":11019.557174673808},"targetPosition":{"x":11428.37470788099,"y":10910.903506853843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.94","id":"9ab43674-72c8-4525-8697-49cbf37785e0","savedPayload":{"position":{"x":10497.727053251536,"y":10702.345373796044},"targetPosition":{"x":10808.36473501717,"y":10771.960855075955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a46f8fdb-d00f-46f6-8ec9-3ef0166107ef","savedPayload":{"position":{"x":10808.36473501717,"y":10771.960855075955},"targetPosition":{"x":11428.37470788099,"y":10910.903506853843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.94","id":"cb153aae-7f46-4fbc-aa01-26f7193e8eaf","savedPayload":{"position":{"x":10648.465081528218,"y":10361.987151463314},"targetPosition":{"x":10908.81157590773,"y":10545.175423604298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2e60f4be-e8cc-4489-81f6-27fa3f61921b","savedPayload":{"position":{"x":10908.81157590773,"y":10545.175423604298},"targetPosition":{"x":11428.37470788099,"y":10910.903506853843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.99","id":"0b2f59a6-9de6-4ccd-81bc-28288491d705","savedPayload":{"position":{"x":10917.982222647839,"y":10105.243364118034},"targetPosition":{"x":11088.280310237424,"y":10374.161971966498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1740e52b-986e-49cf-bb3f-c373200c4449","savedPayload":{"position":{"x":11088.280310237424,"y":10374.161971966498},"targetPosition":{"x":11428.37470788099,"y":10910.903506853843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bullishArrowHead*0.99","id":"ee129388-9aec-4709-bf79-3a3b83fe769e","savedPayload":{"position":{"x":11265.239362694574,"y":9971.125616480742},"targetPosition":{"x":11319.681104897198,"y":10284.73143550902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c8b169eb-6d38-41ab-bc48-e5a08c6f9f45","savedPayload":{"position":{"x":11319.681104897198,"y":10284.73143550902},"targetPosition":{"x":11428.37470788099,"y":10910.903506853843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bullishArrowHead","id":"c58904a7-8615-4a27-bd74-1966b35e8924","savedPayload":{"position":{"x":11637.053653088271,"y":9980.249492741956},"targetPosition":{"x":11567.473909210032,"y":10290.876282666291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f5cee1fe-b34d-47e5-8d4a-26061487b242","savedPayload":{"position":{"x":11567.473909210032,"y":10290.876282666291},"targetPosition":{"x":11428.37470788099,"y":10910.903506853843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b8b4b3de-a98c-4d32-a385-61a186871641","savedPayload":{"position":{"x":11505.611569683755,"y":10990.706000633125},"targetPosition":{"x":11996.288685770072,"y":11335.876531559219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Bearish Arrow","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bearish Reversal\" || record.forecast === \"Bearish Continuation\" ","id":"4db8acef-2d4b-4e56-b319-d32b145c4fc1","savedPayload":{"position":{"x":11119.128095792617,"y":10944.30589967562},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","id":"da54ef22-f928-44a9-ba54-ddc157d6e2fd","savedPayload":{"position":{"x":10805.569639139107,"y":10755.57900249862},"targetPosition":{"x":11105.440095096237,"y":10774.203022515425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bd6aeeb9-f9ce-4289-84ee-b89e5bce37ed","savedPayload":{"position":{"x":11105.440095096237,"y":10774.203022515425},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","id":"e73e98ac-0abf-488c-88c7-5f218487754a","savedPayload":{"position":{"x":10857.94135517372,"y":10504.319824510389},"targetPosition":{"x":11140.326425888801,"y":10606.83889254854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"871328e3-7832-4dc2-8758-72612387f556","savedPayload":{"position":{"x":11140.326425888801,"y":10606.83889254854},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","id":"bc05844f-b3a3-4f25-8688-b555ff25cd31","savedPayload":{"position":{"x":11301.050977821582,"y":10366.359233076688},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"b20f834d-a9d0-419e-87ce-c9d56cdfe948"}}},{"type":"Polygon Vertex","name":"-2-","id":"a7f33d57-8a91-4bf6-a755-2f9572b02d0b","savedPayload":{"position":{"x":11371.1722624145,"y":10310.524995235808},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"d119f364-4c32-4605-afcb-025e62d32f20"}}},{"type":"Polygon Vertex","name":"-3-","id":"4f2d69c6-4919-44a1-b4f4-b11c4d07a8d5","savedPayload":{"position":{"x":11447.492241286429,"y":10267.014695489712},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"0e94de71-51dc-4d00-81fc-db6a47af48e9"}}},{"type":"Polygon Vertex","name":"-4-","id":"cae92b34-1055-4413-8521-b00838b6b3a1","savedPayload":{"position":{"x":11528.553759990715,"y":10235.52821971701},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"54f3f9d8-a0fd-489b-a280-5791c92afe4a"}}},{"type":"Polygon Vertex","name":"-5-","id":"26a5fbf5-1e3c-49a3-a80e-89a38760a6ce","savedPayload":{"position":{"x":11612.88523066173,"y":10216.204955748748},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"75712c99-427f-4995-ad28-116f514f1b1d"}}},{"type":"Polygon Vertex","name":"-6-","id":"85dd4fe1-e267-4e2c-8249-e5a4ad8ac57b","savedPayload":{"position":{"x":11698.894659071782,"y":10209.23251766486},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"32a9e24a-ecbb-4272-868f-8a2c1131d780"}}},{"type":"Polygon Vertex","name":"-7-","id":"0b35f295-6655-45ea-8050-3ea4d565b0a8","savedPayload":{"position":{"x":11799.939994389679,"y":10218.071780310376},"targetPosition":{"x":11704.157873009914,"y":10811.585371354007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"da13c2e7-5b21-44b3-98ef-e101a208cd82"}}}],"id":"d6bca38f-dad2-4bad-b869-718840793911","savedPayload":{"position":{"x":11703.84184652783,"y":10811.247330102198},"targetPosition":{"x":11996.288685770072,"y":11335.876531559219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Trend Line","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\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}","id":"735def02-7235-4d8d-b742-2606e271785c","savedPayload":{"position":{"x":11434.031783580725,"y":10494.076725758625},"targetPosition":{"x":11671.890060263624,"y":10704.93803143185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1cb25c02-7f14-4290-a1dd-cdecfa3d41f1","savedPayload":{"position":{"x":11671.890060263624,"y":10704.93803143185},"targetPosition":{"x":11928.444303103635,"y":10958.74838780957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Trend Line End","id":"ca4b7aaa-e204-477b-917d-5b0d73dcd9ae","savedPayload":{"position":{"x":11906.522706605705,"y":10594.53477284026},"targetPosition":{"x":11928.444303103635,"y":10958.74838780957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line End","id":"e185278f-a45c-43e3-8691-6252e48809cc"}}},{"type":"Polygon Vertex","name":"Trend Line Begin","id":"1e9cb0f5-9153-4ebf-bea2-e4cdff34e27d","savedPayload":{"position":{"x":12145.984798752914,"y":10662.181312939032},"targetPosition":{"x":11928.444303103635,"y":10958.74838780957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line Begin","id":"f05e403b-b940-4007-be9d-517cd5f5b761"}}}],"id":"954cc880-be0c-444b-b810-ddf42e1d6d03","savedPayload":{"position":{"x":11978.403649318927,"y":11035.96342506963},"targetPosition":{"x":11996.288685770072,"y":11335.876531559219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Bullish Arrow","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bullish Reversal\" || record.forecast === \"Bullish Continuation\" ","id":"71c1088c-78e4-4b13-a432-48488e81f5a9","savedPayload":{"position":{"x":11692.554917196347,"y":10291.090417710408},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","id":"26a20027-9ab4-483f-8e8b-54c5feae8eb7","savedPayload":{"position":{"x":11642.115561638522,"y":9906.477084346494},"targetPosition":{"x":11824.629310498469,"y":10167.22023430977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"784e3863-e27c-439a-b219-d2257040f9a8","savedPayload":{"position":{"x":11824.629310498469,"y":10167.22023430977},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","id":"c87d6249-dfd9-4bfc-b6d5-1033dc34ab93","savedPayload":{"position":{"x":11884.802002959816,"y":9783.86423191742},"targetPosition":{"x":11986.280508726017,"y":10085.56687123808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c307cae0-1d47-4fbd-b17e-c71ed0b460a2","savedPayload":{"position":{"x":11986.280508726017,"y":10085.56687123808},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","id":"01f59ec4-922f-4f32-89ff-271b4a1715ff","savedPayload":{"position":{"x":12294.252799338366,"y":10060.7280535677},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"a9852c0f-8ac8-4b9d-ac29-e8d8f29da720"}}},{"type":"Polygon Vertex","name":"-2-","id":"63a0a7cf-0e25-4c76-a647-7bce1cf8349d","savedPayload":{"position":{"x":12385.026289073689,"y":10082.266763057805},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"bb29fdb8-abfe-4377-9063-6790f2eb8d8f"}}},{"type":"Polygon Vertex","name":"-3-","id":"34336858-138b-4d29-8e19-963f987eeb7a","savedPayload":{"position":{"x":12470.562647038838,"y":10116.664251173223},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"a46f8fdb-d00f-46f6-8ec9-3ef0166107ef"}}},{"type":"Polygon Vertex","name":"-4-","id":"41b893b7-8450-497e-a10e-378e2aad4f86","savedPayload":{"position":{"x":12549.705420679315,"y":10162.871690624499},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"2e60f4be-e8cc-4489-81f6-27fa3f61921b"}}},{"type":"Polygon Vertex","name":"-5-","id":"b298e992-97da-4b07-b1b5-2419ef56b05a","savedPayload":{"position":{"x":12621.14538227319,"y":10219.833486475736},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"1740e52b-986e-49cf-bb3f-c373200c4449"}}},{"type":"Polygon Vertex","name":"-6-","id":"c38d5012-bbf9-4b31-916a-e98a2557f2c3","savedPayload":{"position":{"x":12683.579723535302,"y":10286.353118900364},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"c8b169eb-6d38-41ab-bc48-e5a08c6f9f45"}}},{"type":"Polygon Vertex","name":"-7-","id":"fd3144a6-1558-42b5-82d8-54975ee48863","savedPayload":{"position":{"x":12740.522915933889,"y":10370.39277722574},"targetPosition":{"x":12189.008309004239,"y":10687.867530849851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"f5cee1fe-b34d-47e5-8d4a-26061487b242"}}}],"id":"f8d58d58-6d2e-454f-ae56-4f57ab357a85","savedPayload":{"position":{"x":12223.891295761274,"y":10780.059084585857},"targetPosition":{"x":11996.288685770072,"y":11335.876531559219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"01e600b6-8d17-4ea5-bb31-30308e68433e","savedPayload":{"position":{"x":11996.288685770072,"y":11335.876531559219},"targetPosition":{"x":12397.657402922323,"y":11781.568320022714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Three-Candles Patterns","code":"{ \n\"codeName\": \"Three-Candles Patterns\"\n}","panelData":[{"type":"Panel Data","name":"Pattern Name","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.name","id":"5a0d3dea-2329-4eb2-8c13-a112d1f03368","savedPayload":{"position":{"x":12520.225192568534,"y":11274.495236933637},"targetPosition":{"x":12752.031876878431,"y":11465.487959759146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b719d3b-612d-4978-bde8-a748068d4366","savedPayload":{"position":{"x":12752.031876878431,"y":11465.487959759146},"targetPosition":{"x":12984.005202484354,"y":11656.548224762046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Direction","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trend","id":"9d7f27b8-56b3-4b97-a3b4-1687a546f367","savedPayload":{"position":{"x":12992.798571351457,"y":11055.225497182697},"targetPosition":{"x":12988.381012769514,"y":11355.809115148824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bdf5aa9a-a121-4275-969e-5eed6ebd878d","savedPayload":{"position":{"x":12988.381012769514,"y":11355.809115148824},"targetPosition":{"x":12984.005202484354,"y":11656.548224762046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Forecast","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.forecast","id":"04bc641a-62a0-4441-b4d5-58fa30fe413e","savedPayload":{"position":{"x":13459.347048368,"y":11288.32697847158},"targetPosition":{"x":13221.660400327579,"y":11472.36407937657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6ddacd18-8603-4112-bd00-80fe0cb03dcb","savedPayload":{"position":{"x":13221.660400327579,"y":11472.36407937657},"targetPosition":{"x":12984.005202484354,"y":11656.548224762046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Method","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendMethod","id":"3b43a0f7-d76f-4b8a-8228-9b0282826022","savedPayload":{"position":{"x":13568.094005273182,"y":11796.631855760772},"targetPosition":{"x":13275.698912066033,"y":11726.80305203203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"950a394b-df06-4b90-88fc-b59cb3cc1cb5","savedPayload":{"position":{"x":13275.698912066033,"y":11726.80305203203},"targetPosition":{"x":12984.005202484354,"y":11656.548224762046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Period","code":"{\n \"valueDecimals\": 0\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","id":"2b0825d5-9e69-4b0a-861a-c88870b859c4","savedPayload":{"position":{"x":13235.632770919176,"y":12200.615384520046},"targetPosition":{"x":13109.834091389432,"y":11928.5188774151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"63fbe7e3-b323-40ea-bfdc-0aac0df03c0f","savedPayload":{"position":{"x":13109.834091389432,"y":11928.5188774151},"targetPosition":{"x":12984.005202484354,"y":11656.548224762046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Value","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendLine","id":"e838b1bb-2079-479e-b85a-38019fca078d","savedPayload":{"position":{"x":12714.895621827774,"y":12192.691719649098},"targetPosition":{"x":12849.570038510854,"y":11924.688453015544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f36e0123-4262-45d3-8e18-699407c0bb78","savedPayload":{"position":{"x":12849.570038510854,"y":11924.688453015544},"targetPosition":{"x":12984.005202484354,"y":11656.548224762046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1f14d068-2fc4-42b5-8edf-7d552f50d1ed","savedPayload":{"position":{"x":12984.005202484354,"y":11656.548224762046},"targetPosition":{"x":12397.657402922323,"y":11781.568320022714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"acdb9c43-0859-42be-87b0-1a600cf513d4","savedPayload":{"position":{"x":12212.794578909132,"y":11536.541369818186},"targetPosition":{"x":11944.774819498161,"y":12362.05365917036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e10e4374-b30c-4974-b2ff-bd789f50fde2","savedPayload":{"position":{"x":11944.774819498161,"y":12362.05365917036},"targetPosition":{"x":12813.422748313864,"y":12362.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"38d04c99-51a6-4c1c-853e-ba67e216854b","savedPayload":{"position":{"x":12813.422748313864,"y":12362.02928226611},"targetPosition":{"x":12813.422748313864,"y":12362.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Mine","name":"Alpha","code":"{ \n\"codeName\": \"Alpha\"\n}","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"ATR","code":"{\n\"codeName\": \"ATR\",\n\"repo\": \"ATR-Indicator-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates RSI.\",\n \"startMode\": {\n \"allMonths\": {\n \"run\": \"false\",\n \"minYear\": \"\",\n \"maxYear\": \"\"\n },\n \"oneMonth\": {\n \"run\": \"false\",\n \"year\": \"\",\n \"month\": \"\"\n },\n \"noTime\": {\n \"run\": \"true\"\n },\n \"fixedInterval\": {\n \"run\": \"false\",\n \"interval\": 0\n }\n },\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\",\n \"startDate\": {\n },\n \"endDate\": {\n }\n }\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market ATR - SMA","id":"5cdfa018-5ade-469b-90bf-cc523ef0a46e","savedPayload":{"position":{"x":19540.694557315,"y":11294.614350985486},"targetPosition":{"x":19767.55515705632,"y":11574.605365486632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2570d2c7-72e3-4131-97dc-a9f97f493e93"}}},{"type":"Output Dataset","name":"Multi-Period-Market ATR - RMA","id":"e7e58e02-fef8-4400-9928-f29805a96f98","savedPayload":{"position":{"x":19711.43986668846,"y":11218.750183637469},"targetPosition":{"x":19767.55515705632,"y":11574.605365486632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"67695466-be2d-43b4-9824-83baa7a08412"}}}],"id":"b345304f-fbb3-4889-934a-8f9b4941ed29","savedPayload":{"position":{"x":19743.791948943348,"y":11520.962494010673},"targetPosition":{"x":19899.170067374667,"y":11869.702220371704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","code":"{\"mainUtility\": \"Market Ending Point\"}","id":"eb499527-0f18-45f9-99ab-a7bc7fabb3aa","savedPayload":{"position":{"x":19722.063526028713,"y":11287.520897281545},"targetPosition":{"x":19933.092888333613,"y":11548.255554352378},"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":"ATR Multi-Period-Market","code":"{\"mainUtility\": \"Self Reference\"}","id":"025a6f70-c187-4b4d-aa62-6f4ebfc116ba","savedPayload":{"position":{"x":19968.02248758303,"y":11214.645272662077},"targetPosition":{"x":19933.092888333613,"y":11548.255554352378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"8a6c8b1e-950d-4819-88a9-9c45272a0799"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","id":"f25ba171-3c78-4e4f-acb8-66446be1ce0a","savedPayload":{"position":{"x":20196.459273429817,"y":11334.729584276689},"targetPosition":{"x":19933.092888333613,"y":11548.255554352378},"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"}}}],"id":"bf337039-bd28-4f50-89d1-5115e631e6cf","savedPayload":{"position":{"x":19939.98761825652,"y":11481.493241239446},"targetPosition":{"x":19899.170067374667,"y":11869.702220371704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"8a6c8b1e-950d-4819-88a9-9c45272a0799","savedPayload":{"position":{"x":20121.664490215106,"y":11563.398333005694},"targetPosition":{"x":19899.170067374667,"y":11869.702220371704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","id":"d150911d-47e9-4046-b365-ac817667cf32","savedPayload":{"position":{"x":20244.88001750722,"y":11715.79418806677},"targetPosition":{"x":19899.170067374667,"y":11869.702220371704},"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","id":"faac5fcf-e7b2-4883-84bd-427aa74bc3c1","savedPayload":{"position":{"x":20281.873987192484,"y":11909.783936376038},"targetPosition":{"x":19899.170067374667,"y":11869.702220371704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"83a07439-ad71-463a-9727-5f43ad0b03d2","savedPayload":{"position":{"x":20021.68884411221,"y":11807.923474517225},"targetPosition":{"x":19597.443779645095,"y":12392.131380058767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Calculates RSI\",\n \"startMode\": {\n \"allMonths\": {\n \"run\": \"false\",\n \"minYear\": \"\",\n \"maxYear\": \"\"\n },\n \"oneMonth\": {\n \"run\": \"false\",\n \"year\": \"\",\n \"month\": \"\"\n },\n \"noTime\": {\n \"run\": \"true\"\n },\n \"fixedInterval\": {\n \"run\": \"false\",\n \"interval\": 0\n }\n },\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\",\n \"startDate\": {\n \"takeItFromStatusDependency\": 0\n },\n \"endDate\": {\n \"takeItFromStatusDependency\": 1\n }\n }\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily ATR - SMA","id":"570c8470-a4ae-40a8-b647-d3859887c148","savedPayload":{"position":{"x":20181.68768373927,"y":11520.451838702782},"targetPosition":{"x":20200.639269300027,"y":11876.703044676911},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"93eb665f-d903-4825-9fb1-2783e917ac89"}}},{"type":"Output Dataset","name":"Multi-Period-Daily ATR - RMA","id":"60d2cf94-0cf3-4cdf-a2ec-69c012f74019","savedPayload":{"position":{"x":20362.80625647802,"y":11558.362450692179},"targetPosition":{"x":20200.639269300027,"y":11876.703044676911},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e3d0bccf-5f97-4902-92df-4ac8fe8c41a8"}}}],"id":"d6545bbe-389f-4dbe-b31e-de9d7ad95e4b","savedPayload":{"position":{"x":20213.205314276413,"y":11819.497389057586},"targetPosition":{"x":20133.88691209768,"y":12192.761682979399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"ATR Multi-Period-Daily","code":"{\"mainUtility\": \"Self Reference\"}","id":"89b9660c-6005-4381-a692-e320b9422268","savedPayload":{"position":{"x":20280.38282592733,"y":11624.321457904096},"targetPosition":{"x":20349.84908759221,"y":11952.503730452483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"619713bc-8cf4-4152-b36d-d470361f8a3b"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","code":"{\"mainUtility\": \"Market Ending Point\"}","id":"6aba1eb8-b5b6-4749-a323-16016a453194","savedPayload":{"position":{"x":20486.233737141953,"y":11646.294417090689},"targetPosition":{"x":20349.84908759221,"y":11952.503730452483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"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","code":"{\"mainUtility\": \"Market Starting Point\"}","id":"77cb48bb-f6ca-4eba-ab3d-2b5583f7285a","savedPayload":{"position":{"x":20640.295517426694,"y":11784.868077802708},"targetPosition":{"x":20349.84908759221,"y":11952.503730452483},"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":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","id":"b7383dbe-549f-4ffe-8764-9ea324d5025d","savedPayload":{"position":{"x":20683.437384151795,"y":11987.42358880939},"targetPosition":{"x":20349.84908759221,"y":11952.503730452483},"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"}}}],"id":"e1b3e953-5756-4810-abcb-67535b51f3ca","savedPayload":{"position":{"x":20394.19384366787,"y":11904.124044843873},"targetPosition":{"x":20133.88691209768,"y":12192.761682979399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"619713bc-8cf4-4152-b36d-d470361f8a3b","savedPayload":{"position":{"x":20503.255190715267,"y":12072.901607728283},"targetPosition":{"x":20133.88691209768,"y":12192.761682979399},"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","id":"54a8ad94-41a9-4b8d-83f7-c40056140ef4","savedPayload":{"position":{"x":20508.47049133572,"y":12272.400899063243},"targetPosition":{"x":20133.88691209768,"y":12192.761682979399},"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","id":"0b02390a-fc39-4f1a-a53c-8bae1492e292","savedPayload":{"position":{"x":20418.14077313909,"y":12448.873838161331},"targetPosition":{"x":20133.88691209768,"y":12192.761682979399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"61dde091-7c09-4384-ab2d-1fec0dbef7c5","savedPayload":{"position":{"x":20284.172253765544,"y":12169.14376310339},"targetPosition":{"x":19597.443779645095,"y":12392.131380058767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"ATR - RMA","code":"{\n \"codeName\": \"ATR-RMA\",\n \"singularVariableName\": \"atrRMA\",\n \"pluralVariableName\": \"atrRMAs\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"67695466-be2d-43b4-9824-83baa7a08412","savedPayload":{"position":{"x":20055.791165376304,"y":12377.91970341903},"targetPosition":{"x":19828.05646049493,"y":12543.487906318767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"e3d0bccf-5f97-4902-92df-4ac8fe8c41a8","savedPayload":{"position":{"x":20109.17942322549,"y":12543.872848415047},"targetPosition":{"x":19828.05646049493,"y":12543.487906318767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","formula":{"type":"Formula","name":"Begin","code":"record.current.begin","id":"a0cb3931-383f-4c9d-8f01-fe812c22181e","savedPayload":{"position":{"x":21132.709705337376,"y":12758.513508192202},"targetPosition":{"x":20985.004363543023,"y":12824.312388858858},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e538eb1e-f296-4e00-bdbb-8a904c5b897a","savedPayload":{"position":{"x":20985.004363543023,"y":12824.312388858858},"targetPosition":{"x":20655.84795256234,"y":12971.025469649563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"566fa39a-58b3-439a-a666-9c0d6927dfcc","savedPayload":{"position":{"x":21180.443745457265,"y":13025.852027049064},"targetPosition":{"x":21019.11544881625,"y":13009.0524064553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3a3dfa55-78be-4e15-90ae-b64d7db87d29","savedPayload":{"position":{"x":21019.11544881625,"y":13009.0524064553},"targetPosition":{"x":20655.84795256234,"y":12971.025469649563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR2","code":"{\n \"codeName\": \"atr2\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.atr2","id":"fc05c629-916b-40a9-a62d-06b309420ee6","savedPayload":{"position":{"x":21078.46228080796,"y":13277.997509204379},"targetPosition":{"x":20947.47507234246,"y":13182.84698867347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b4e9fd6c-b742-4378-851f-ec6a84183727","savedPayload":{"position":{"x":20947.47507234246,"y":13182.84698867347},"targetPosition":{"x":20655.84795256234,"y":12971.025469649563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR3","code":"{\n \"codeName\": \"atr3\",\n \"isString\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.atr3","id":"2521d41c-60fa-421e-ba7d-8d9b6ff19477","savedPayload":{"position":{"x":20868.14134445537,"y":13448.147133127213},"targetPosition":{"x":20802.35315180968,"y":13300.26175026998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"039f8d7d-2ea5-44b1-b758-4f86a4445a63","savedPayload":{"position":{"x":20802.35315180968,"y":13300.26175026998},"targetPosition":{"x":20655.84795256234,"y":12971.025469649563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR14","code":"{\n \"codeName\": \"atr14\",\n \"isString\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.atr14","id":"65b7d85e-1da0-4a77-b96f-eaa5d3b24036","savedPayload":{"position":{"x":20600.753404483705,"y":13495.20331029825},"targetPosition":{"x":20617.610606994192,"y":13334.284817681237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c6b1bb6e-17b8-45ff-8a25-b1ae575dde04","savedPayload":{"position":{"x":20617.610606994192,"y":13334.284817681237},"targetPosition":{"x":20655.84795256234,"y":12971.025469649563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2838dfa4-22e5-4583-9b08-fed43081af24","savedPayload":{"position":{"x":20224.331900501333,"y":12831.215086101498},"targetPosition":{"x":19828.05646049493,"y":12543.487906318767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current // get current candle data\nlet tr = calculateTR() // get true range value\n\nvariable.atr2 = calculateATR(tr, 2, variable.previousATR2)\nvariable.atr3 = calculateATR(tr, 3, variable.previousATR3)\nvariable.atr14 = calculateATR(tr, 14, variable.previousATR14)\n\nvariable.prevClose = candle.close\nvariable.previousATR2 = variable.atr2\nvariable.previousATR3 = variable.atr3\nvariable.previousATR14 = variable.atr14\n\n/* Helper Functions */\n\n/* Calculate True Range */\nfunction calculateTR() {\n let hl = candle.max - candle.min\n \n if (variable.prevClose === 0) { return hl } // Return High-Low when previous Close is 0\n \n let hcp = Math.abs(candle.max - variable.prevClose)\n let lcp = Math.abs(candle.min - variable.prevClose)\n \n return Math.max(hl, hcp, lcp)\n}\n\n/* Calculate Average True Range - Smoothing Function RMA*/\nfunction calculateATR(source, length, previousATR) {\n return (source + (length - 1) * previousATR) / length\n}","id":"0814b5ad-81ed-4d17-ba6c-2ecad55f5f31","savedPayload":{"position":{"x":20291.237818182275,"y":13178.747843053263},"targetPosition":{"x":20109.127963387094,"y":13014.203918520374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"752cd82a-205d-43f5-b6ee-06f5c0a82f33","savedPayload":{"position":{"x":20109.127963387094,"y":13014.203918520374},"targetPosition":{"x":19927.656754821688,"y":12850.643468638344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.prevClose = 0\n\nvariable.previousATR2 = 0\nvariable.previousATR3 = 0\nvariable.previousATR14 = 0","id":"b1ee7e9d-a89a-4c18-beaf-9b1ebdc25dd1","savedPayload":{"position":{"x":19826.141427210616,"y":13329.891774186166},"targetPosition":{"x":19876.72056559559,"y":13089.677877123988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c1dbc0e9-06b0-426a-9e7b-731bd1c2305f","savedPayload":{"position":{"x":19876.72056559559,"y":13089.677877123988},"targetPosition":{"x":19927.656754821688,"y":12850.643468638344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7779fc37-e563-4515-8c11-7732793ebfe0","savedPayload":{"position":{"x":19927.656754821688,"y":12850.643468638344},"targetPosition":{"x":19828.05646049493,"y":12543.487906318767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"660570d1-36e0-4099-817c-6c8a29b32689","savedPayload":{"position":{"x":20283.75315274229,"y":12614.991949125668},"targetPosition":{"x":19597.443779645095,"y":12392.131380058767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"ATR - RMA","id":"99088549-f1c0-4157-ba7e-ffd6dfd0d140"}}},{"type":"Product Definition","name":"ATR - SMA","code":"{\n \"codeName\": \"ATR-SMA\",\n \"singularVariableName\": \"atrSMA\",\n \"pluralVariableName\": \"atrSMAs\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"2570d2c7-72e3-4131-97dc-a9f97f493e93","savedPayload":{"position":{"x":19930.727826926264,"y":12787.448606863272},"targetPosition":{"x":19650.32550166926,"y":12787.724181498377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"93eb665f-d903-4825-9fb1-2783e917ac89","savedPayload":{"position":{"x":19876.97209366482,"y":12952.848271054223},"targetPosition":{"x":19650.32550166926,"y":12787.724181498377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","formula":{"type":"Formula","name":"Begin","code":"record.current.begin","id":"8b1f8ca7-d741-489f-a1f9-3851920e6d59","savedPayload":{"position":{"x":20280.21713047124,"y":13353.464992661211},"targetPosition":{"x":20160.33888414868,"y":13328.157162833893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7c4a6317-bc3a-45d8-9dcc-4c42fa6a653b","savedPayload":{"position":{"x":20160.33888414868,"y":13328.157162833893},"targetPosition":{"x":19801.81461090384,"y":13252.963222267617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"42ca9eb2-da3a-4972-8be8-756fa50a5585","savedPayload":{"position":{"x":20165.012627175838,"y":13579.725818990739},"targetPosition":{"x":20073.825186212325,"y":13497.89486164518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d4ccc9d1-616c-44e1-8019-f5dfbbac5d4c","savedPayload":{"position":{"x":20073.825186212325,"y":13497.89486164518},"targetPosition":{"x":19801.81461090384,"y":13252.963222267617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR2","code":"{\n \"codeName\": \"atr2\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.atr2","id":"fa760872-a812-4bc6-8fe4-8669ec91bbe0","savedPayload":{"position":{"x":19952.67783507161,"y":13718.715742933011},"targetPosition":{"x":19914.767382502672,"y":13600.625581917458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"02df8c90-68ec-44ef-8abf-fb7d255815d2","savedPayload":{"position":{"x":19914.767382502672,"y":13600.625581917458},"targetPosition":{"x":19801.81461090384,"y":13252.963222267617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR3","code":"{\n \"codeName\": \"atr3\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.atr3","id":"ee78802d-f297-45d6-8fa7-df7800ebf295","savedPayload":{"position":{"x":19699.652649231364,"y":13731.676247774276},"targetPosition":{"x":19725.905831999684,"y":13611.112153460686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3e3dd4c6-8f81-4e2b-bcba-34d1ca11abf0","savedPayload":{"position":{"x":19725.905831999684,"y":13611.112153460686},"targetPosition":{"x":19801.81461090384,"y":13252.963222267617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR14","code":"{\n \"codeName\": \"atr14\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.atr14","id":"fdcc52bb-2dd9-4597-8399-eba8f2e36639","savedPayload":{"position":{"x":19474.12248922578,"y":13616.027151533355},"targetPosition":{"x":19556.2958074621,"y":13525.253093214493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"93cc0b1e-9414-406b-bbf7-7708bf303a9a","savedPayload":{"position":{"x":19556.2958074621,"y":13525.253093214493},"targetPosition":{"x":19801.81461090384,"y":13252.963222267617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"de04ae72-affd-4bea-aab2-d7e4b1e8345d","savedPayload":{"position":{"x":19801.702776923143,"y":13253.413949959593},"targetPosition":{"x":19650.32550166926,"y":12787.724181498377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current // get current candle data\nvariable.last14TR.push(calculateTR()) // Add the current true range value to last 14 array\n\nif (variable.last14TR.length > 14) {\n variable.last14TR.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 14 elements\n}\n\nvariable.atr2 = calculateATR(2)\nvariable.atr3 = calculateATR(3)\nvariable.atr14 = calculateATR(14)\nvariable.prevClose = candle.close\n\n/* Helper Functions */\n\n/* Calculate True Range */\nfunction calculateTR() {\n let hl = candle.max - candle.min\n \n if (variable.prevClose === 0) { return hl } // Return High-Low when previous Close is 0\n \n let hcp = Math.abs(candle.max - variable.prevClose)\n let lcp = Math.abs(candle.min - variable.prevClose)\n \n return Math.max(hl, hcp, lcp)\n}\n\n/* Calculate Average True Range - Smoothing Function SMA */\nfunction calculateATR(length) {\n /* We check we have enough values to make the calculation */\n if (variable.last14TR.length < length) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last14TR.length - length; i < variable.last14TR.length; i++) { // Iterate through the last periods\n sum = sum + variable.last14TR[i]\n }\n \n let atr = sum / length\n return atr\n}","id":"de821ecb-f4c2-4645-abe3-f2ec25c5b50f","savedPayload":{"position":{"x":19652.34479189979,"y":13572.027481120225},"targetPosition":{"x":19601.64854607521,"y":13332.209242000214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"81ad9ba0-f387-4884-8b7d-32ee9d44d73e","savedPayload":{"position":{"x":19601.64854607521,"y":13332.209242000214},"targetPosition":{"x":19551.389352931154,"y":13091.878082467412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.last14TR = []\nvariable.prevClose = 0","id":"d388972a-f1b2-4b99-8406-35d07a7a5ab0","savedPayload":{"position":{"x":19284.31898897455,"y":13503.575009320777},"targetPosition":{"x":19417.729956523344,"y":13297.990583431465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad6cc9e7-46c3-4500-924b-7523e5c9fa7f","savedPayload":{"position":{"x":19417.729956523344,"y":13297.990583431465},"targetPosition":{"x":19551.389352931154,"y":13091.878082467412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4a310776-ce28-4e79-97fb-90fb350614c2","savedPayload":{"position":{"x":19551.389352931154,"y":13091.878082467412},"targetPosition":{"x":19650.32550166926,"y":12787.724181498377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d83ffb9c-d01c-49eb-991d-3dc31baac747","savedPayload":{"position":{"x":20025.225401736654,"y":12975.439545735604},"targetPosition":{"x":19597.443779645095,"y":12392.131380058767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"ATR - SMA","id":"a6a3f5a6-8c33-482d-a922-5719afc35325"}}}],"id":"3f716c19-6b29-4a9e-aef4-e4a867838e57","savedPayload":{"position":{"x":19597.443779645095,"y":12392.131380058767},"targetPosition":{"x":18881.571706269082,"y":12398.127167364633},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"ROC","code":"{\n\"codeName\": \"ROC\",\n\"repo\": \"ROC-Indicator-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates RSI.\",\n \"startMode\": {\n \"allMonths\": {\n \"run\": \"false\",\n \"minYear\": \"\",\n \"maxYear\": \"\"\n },\n \"oneMonth\": {\n \"run\": \"false\",\n \"year\": \"\",\n \"month\": \"\"\n },\n \"noTime\": {\n \"run\": \"true\"\n },\n \"fixedInterval\": {\n \"run\": \"false\",\n \"interval\": 0\n }\n },\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\",\n \"startDate\": {\n },\n \"endDate\": {\n }\n }\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market ROC 32","id":"6687ee94-004b-4834-a145-867151c4e37c","savedPayload":{"position":{"x":19725.160753858156,"y":12763.496775473888},"targetPosition":{"x":19655.046898379842,"y":13025.759033860024},"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":"Output Dataset","name":"Multi-Period-Market ROC 76","id":"a27232dd-4d69-46b8-8d8e-67499c9ddc30","savedPayload":{"position":{"x":19890.305210792983,"y":12890.111637942933},"targetPosition":{"x":19655.046898379842,"y":13025.759033860024},"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":"Output Dataset","name":"Multi-Period-Market ROC 9","id":"bbeb8cb6-5465-45be-80a9-2cbb46e3f5fa","savedPayload":{"position":{"x":19917.55844991258,"y":13096.203434438241},"targetPosition":{"x":19655.046898379842,"y":13025.759033860024},"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"}}}],"id":"b6c54494-092a-4220-b0e9-1db9da7fd411","savedPayload":{"position":{"x":19655.046898379842,"y":13025.759033860024},"targetPosition":{"x":19343.558669255242,"y":13205.798680059266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","code":"{\"mainUtility\": \"Market Ending Point\"}","id":"5f954d97-d843-483e-919b-d94dd8329497","savedPayload":{"position":{"x":19550.68145663124,"y":11596.520335531219},"targetPosition":{"x":19761.71081893614,"y":11857.254992602051},"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":"ATR Multi-Period-Market","code":"{\"mainUtility\": \"Self Reference\"}","id":"7820dbef-88ab-4682-b542-88f6d2ae9f59","savedPayload":{"position":{"x":19796.640418185558,"y":11523.64471091175},"targetPosition":{"x":19761.71081893614,"y":11857.254992602051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"87a0c5e3-20b4-48f7-a9db-4a9280ecb4b3"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","id":"805d6b40-cc28-470f-8f39-67b2b48f155a","savedPayload":{"position":{"x":20025.077204032343,"y":11643.729022526362},"targetPosition":{"x":19761.71081893614,"y":11857.254992602051},"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"}}}],"id":"aa85fa69-abb3-4423-8d78-8bf1dd6c42d5","savedPayload":{"position":{"x":19710.90924213804,"y":13206.08578235407},"targetPosition":{"x":19343.558669255242,"y":13205.798680059266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"87a0c5e3-20b4-48f7-a9db-4a9280ecb4b3","savedPayload":{"position":{"x":19662.91163355698,"y":13390.121732296087},"targetPosition":{"x":19343.558669255242,"y":13205.798680059266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","id":"3a6b674a-eb56-4f63-866b-f4e41dde72bb","savedPayload":{"position":{"x":19527.861812183583,"y":13524.428086648231},"targetPosition":{"x":19343.558669255242,"y":13205.798680059266},"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","id":"c97508ab-c7eb-4047-911a-3ee3265c352b","savedPayload":{"position":{"x":19344.154675490336,"y":13579.836126026754},"targetPosition":{"x":19343.558669255242,"y":13205.798680059266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a2a141ba-08ed-4f30-9c7d-f811c6a7c571","savedPayload":{"position":{"x":19911.287443180714,"y":12982.768289600275},"targetPosition":{"x":19214.580430141195,"y":12982.842289535909},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Calculates RSI\",\n \"startMode\": {\n \"allMonths\": {\n \"run\": \"false\",\n \"minYear\": \"\",\n \"maxYear\": \"\"\n },\n \"oneMonth\": {\n \"run\": \"false\",\n \"year\": \"\",\n \"month\": \"\"\n },\n \"noTime\": {\n \"run\": \"true\"\n },\n \"fixedInterval\": {\n \"run\": \"false\",\n \"interval\": 0\n }\n },\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\",\n \"startDate\": {\n \"takeItFromStatusDependency\": 0\n },\n \"endDate\": {\n \"takeItFromStatusDependency\": 1\n }\n }\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily ROC 32","id":"3c5e8fe8-cf8d-4a96-967a-2d4d534bbd71","savedPayload":{"position":{"x":19694.813162454055,"y":13213.10993483118},"targetPosition":{"x":19502.83201321254,"y":13405.16127075762},"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":"Output Dataset","name":"Multi-Period-Daily ROC 76","id":"daf0c646-8592-4fd2-9f7d-bab86663faaf","savedPayload":{"position":{"x":19774.266244533144,"y":13405.245790438114},"targetPosition":{"x":19502.83201321254,"y":13405.16127075762},"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":"Output Dataset","name":"Multi-Period-Daily ROC 9","id":"0dbd1ffd-047b-4bf7-a74a-9df95d5b534c","savedPayload":{"position":{"x":19694.519172519438,"y":13597.606600046518},"targetPosition":{"x":19502.83201321254,"y":13405.16127075762},"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"}}}],"id":"09d69ba1-345f-4d96-b3e4-a98f1f778a70","savedPayload":{"position":{"x":19502.83201321254,"y":13405.16127075762},"targetPosition":{"x":19144.473641766526,"y":13404.929854800845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"ATR Multi-Period-Daily","code":"{\"mainUtility\": \"Self Reference\"}","id":"b1e59db1-0480-4533-940c-e6ede212b124","savedPayload":{"position":{"x":20109.000756529855,"y":11933.32089615377},"targetPosition":{"x":20178.467018194737,"y":12261.503168702156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"af0bcf3a-4021-4861-870a-a06f5aad8761"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","code":"{\"mainUtility\": \"Market Ending Point\"}","id":"67e616b0-72f4-4e9c-b144-e6f6bde5777b","savedPayload":{"position":{"x":20314.85166774448,"y":11955.293855340362},"targetPosition":{"x":20178.467018194737,"y":12261.503168702156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"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","code":"{\"mainUtility\": \"Market Starting Point\"}","id":"c4cbf20f-ff4e-4611-8e4a-4340231bc3c5","savedPayload":{"position":{"x":20468.91344802922,"y":12093.867516052382},"targetPosition":{"x":20178.467018194737,"y":12261.503168702156},"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":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","id":"b95527eb-2205-43ef-a1e6-7d3a08219e27","savedPayload":{"position":{"x":20512.05531475432,"y":12296.423027059063},"targetPosition":{"x":20178.467018194737,"y":12261.503168702156},"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"}}}],"id":"d1a1f76c-a070-4958-8821-b3abcac7b176","savedPayload":{"position":{"x":19460.305812197555,"y":13588.159955000754},"targetPosition":{"x":19144.473641766526,"y":13404.929854800845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"af0bcf3a-4021-4861-870a-a06f5aad8761","savedPayload":{"position":{"x":19327.281336688797,"y":13722.281023561742},"targetPosition":{"x":19144.473641766526,"y":13404.929854800845},"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","id":"f75ad3de-ba1f-4c68-a869-1bdad8587c71","savedPayload":{"position":{"x":19144.473031513786,"y":13771.418547165526},"targetPosition":{"x":19144.473641766526,"y":13404.929854800845},"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","id":"bd45fa4a-4611-4126-b746-e9d56b9991bd","savedPayload":{"position":{"x":18961.68898631771,"y":13721.550762992889},"targetPosition":{"x":19144.473641766526,"y":13404.929854800845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"eea3cb55-83e5-400f-acc4-b71f5631d351","savedPayload":{"position":{"x":19817.866893800958,"y":13331.247956544341},"targetPosition":{"x":19214.580430141195,"y":12982.842289535909},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"ROC 76","code":"{\n \"codeName\": \"ROC-76\",\n \"singularVariableName\": \"roc76\",\n \"pluralVariableName\": \"roc76s\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"40268fec-e5e8-4b05-9f27-c4072ebda94a","savedPayload":{"position":{"x":19030.34864503042,"y":13676.272325245165},"targetPosition":{"x":18788.664181471726,"y":13501.098621328412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"cb60d68b-b11d-4317-8830-65c212a8c728","savedPayload":{"position":{"x":18880.85070624581,"y":13784.631820089697},"targetPosition":{"x":18788.664181471726,"y":13501.098621328412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","formula":{"type":"Formula","name":"Begin","code":"record.current.begin","id":"f3985849-3dba-4ab4-be09-45855ceb32a5","savedPayload":{"position":{"x":18806.584797696058,"y":14381.1597679653},"targetPosition":{"x":18744.664041849763,"y":14259.471367709006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ca08ef1e-44f8-4b51-8412-ab5ea4cd4383","savedPayload":{"position":{"x":18744.664041849763,"y":14259.471367709006},"targetPosition":{"x":18621.26792215029,"y":14017.383139707124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"f84ebdb9-1371-4a1b-a55a-ec0fff505e8d","savedPayload":{"position":{"x":18495.490713696177,"y":14405.917613749385},"targetPosition":{"x":18537.519386086544,"y":14275.924852427552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9b6434b8-6a14-4b15-9071-560f91991c1e","savedPayload":{"position":{"x":18537.519386086544,"y":14275.924852427552},"targetPosition":{"x":18621.26792215029,"y":14017.383139707124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Value","code":"{\n \"codeName\": \"value\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.value","id":"4b4cc4ab-233d-4366-bb1c-c6cf4945e87e","savedPayload":{"position":{"x":18257.78880729653,"y":14203.268572209845},"targetPosition":{"x":18379.25567592913,"y":14140.841723979383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a3ee4969-b28a-4d7c-9ceb-eba3ba2c8a21","savedPayload":{"position":{"x":18379.25567592913,"y":14140.841723979383},"targetPosition":{"x":18621.26792215029,"y":14017.383139707124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8b1a0793-6111-4773-b83f-4fdc596aebfc","savedPayload":{"position":{"x":18621.26792215029,"y":14017.383139707124},"targetPosition":{"x":18788.664181471726,"y":13501.098621328412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current // get current candle data\n\n/* Calculate Rate of Change */\nvariable.value = calculateROC(candle.close, variable.length)\n\nvariable.lastCloses.push(candle.close) // Add the current close value to the last closes array.\n\nif (variable.lastCloses.length > variable.length) {\n variable.lastCloses.splice(0, 1) // Remove the first element of the array to keep it at a maximun of n elements.\n}\n\n/* Helper Functions */\n\n/* Calculate Rate of Change */\nfunction calculateROC(source, length) {\n /* Check if we have enough values to make the calculation */\n if (variable.lastCloses.length < length) { return 0 }\n \n /* Check if n-last candle close is zero, avoid division by zero */\n if (variable.lastCloses[0] === 0) { return 0 }\n \n return 100 * (source - variable.lastCloses[0]) / variable.lastCloses[0]\n}","id":"37483919-8084-4d28-8763-02cfd1bdc45d","savedPayload":{"position":{"x":18193.28849745237,"y":14107.620384145323},"targetPosition":{"x":18363.95140747102,"y":13897.017564812866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5eb39756-772a-4cc2-b0f2-4b7eab6abf57","savedPayload":{"position":{"x":18363.95140747102,"y":13897.017564812866},"targetPosition":{"x":18534.99498874619,"y":13685.698297930125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.length = 76\nvariable.lastCloses = []","id":"3157aaee-5248-4767-b339-45835c0cffa7","savedPayload":{"position":{"x":18027.6202237777,"y":13880.398163680065},"targetPosition":{"x":18280.99985798409,"y":13783.313018223416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1392b12a-4221-4e2a-b692-cb7a07b40f84","savedPayload":{"position":{"x":18280.99985798409,"y":13783.313018223416},"targetPosition":{"x":18534.99498874619,"y":13685.698297930125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bd3ccec7-4ec5-40e8-81f2-1402651648b7","savedPayload":{"position":{"x":18534.99498874619,"y":13685.698297930125},"targetPosition":{"x":18788.664181471726,"y":13501.098621328412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9c2b6696-872f-44a4-b6b2-ab15a0c8541a","savedPayload":{"position":{"x":19562.586576845755,"y":13585.885528940908},"targetPosition":{"x":19214.580430141195,"y":12982.842289535909},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"ROC 76","id":"a21bb3ba-b24d-4163-b7d0-ea60220fc368"}}},{"type":"Product Definition","name":"ROC 32","code":"{\n \"codeName\": \"ROC-32\",\n \"singularVariableName\": \"roc32\",\n \"pluralVariableName\": \"roc32s\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"41a488be-c66c-458d-99fc-490b9e8172ef","savedPayload":{"position":{"x":18434.845747068022,"y":13551.884572025636},"targetPosition":{"x":18434.718192758995,"y":13253.645967184615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"30276899-0d68-40e3-9c35-a28442485b55","savedPayload":{"position":{"x":18259.372731956348,"y":13494.611076404206},"targetPosition":{"x":18434.718192758995,"y":13253.645967184615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","formula":{"type":"Formula","name":"Begin","code":"record.current.begin","id":"905bb06a-9b7f-4484-8031-22b0bdf76c79","savedPayload":{"position":{"x":17705.388049012345,"y":13839.629580005729},"targetPosition":{"x":17767.027384334884,"y":13719.104690733999},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"23ba960b-4a3f-410d-8d95-d7fb8419557e","savedPayload":{"position":{"x":17767.027384334884,"y":13719.104690733999},"targetPosition":{"x":17919.08470382006,"y":13420.870770425301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"8b6f20e9-ffae-470f-9da0-0fc12d2bbd6d","savedPayload":{"position":{"x":17471.46249061923,"y":13566.571356509074},"targetPosition":{"x":17600.535439084742,"y":13524.253838239687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"40737f74-0e6d-4ea4-9e77-023af6343601","savedPayload":{"position":{"x":17600.535439084742,"y":13524.253838239687},"targetPosition":{"x":17919.08470382006,"y":13420.870770425301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Value","code":"{\n \"codeName\": \"value\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.value","id":"11ce21e7-ebc3-401d-b550-7b129f3f86b5","savedPayload":{"position":{"x":17499.349361137687,"y":13207.351890017804},"targetPosition":{"x":17619.98063030556,"y":13268.348143873096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4bae0e4f-fa97-4b6e-99de-a61bd75014b1","savedPayload":{"position":{"x":17619.98063030556,"y":13268.348143873096},"targetPosition":{"x":17919.08470382006,"y":13420.870770425301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"048e2c90-bb92-4b32-a847-f337d3953392","savedPayload":{"position":{"x":17918.418054325055,"y":13421.461990610305},"targetPosition":{"x":18434.718192758995,"y":13253.645967184615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current // get current candle data\n\n/* Calculate Rate of Change */\nvariable.value = calculateROC(candle.close, variable.length)\n\nvariable.lastCloses.push(candle.close) // Add the current close value to the last closes array.\n\nif (variable.lastCloses.length > variable.length) {\n variable.lastCloses.splice(0, 1) // Remove the first element of the array to keep it at a maximun of n elements.\n}\n\n/* Helper Functions */\n\n/* Calculate Rate of Change */\nfunction calculateROC(source, length) {\n /* Check if we have enough values to make the calculation */\n if (variable.lastCloses.length < length) { return 0 }\n \n /* Check if n-last candle close is zero, avoid division by zero */\n if (variable.lastCloses[0] === 0) { return 0 }\n \n return 100 * (source - variable.lastCloses[0]) / variable.lastCloses[0]\n}","id":"f84b95ea-bfa6-4c2b-bf49-ff4810a11b97","savedPayload":{"position":{"x":17604.716773083586,"y":13268.805112718524},"targetPosition":{"x":17870.525348366566,"y":13212.570432003648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7848d1ed-fedd-4d0e-8ea6-1212b2d614e5","savedPayload":{"position":{"x":17870.525348366566,"y":13212.570432003648},"targetPosition":{"x":18136.194263637983,"y":13156.609439584587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.length = 32\nvariable.lastCloses = []","id":"858ab5d5-0fdc-406a-bbf8-18b648879abe","savedPayload":{"position":{"x":17680.4988119144,"y":12860.885344220427},"targetPosition":{"x":17908.369836097936,"y":13008.717656173774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"428a7ff5-a19a-448d-92d9-d11815613c67","savedPayload":{"position":{"x":17908.369836097936,"y":13008.717656173774},"targetPosition":{"x":18136.194263637983,"y":13156.609439584587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"37ee9d85-7676-4ae0-956a-7c13706f4311","savedPayload":{"position":{"x":18136.194263637983,"y":13156.609439584587},"targetPosition":{"x":18434.718192758995,"y":13253.645967184615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ff5aacca-1783-4247-9702-ee5dd01fb3ff","savedPayload":{"position":{"x":19214.58990051731,"y":13679.092973229148},"targetPosition":{"x":19214.580430141195,"y":12982.842289535909},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"ROC 32","id":"7812b3a3-8375-4f0d-9671-acc05b256d74"}}},{"type":"Product Definition","name":"ROC 9","code":"{\n \"codeName\": \"ROC-9\",\n \"singularVariableName\": \"roc9\",\n \"pluralVariableName\": \"roc9s\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"9c6b7d85-01f5-449c-a5be-9a357b6588bc","savedPayload":{"position":{"x":18372.832467967546,"y":13505.244700265328},"targetPosition":{"x":18403.92996196783,"y":13205.853879295644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"66f59b6d-9d4b-4cef-9ffd-aed019219809","savedPayload":{"position":{"x":18202.57716165063,"y":13428.91941282875},"targetPosition":{"x":18403.92996196783,"y":13205.853879295644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","formula":{"type":"Formula","name":"Begin","code":"record.current.begin","id":"d0c1361d-9b94-4eaf-9b94-b7fe36e11779","savedPayload":{"position":{"x":17617.622245002676,"y":13713.409210012951},"targetPosition":{"x":17691.114459685297,"y":13600.07142098532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"805c77d6-442d-408a-b767-f0bc03b78d68","savedPayload":{"position":{"x":17691.114459685297,"y":13600.07142098532},"targetPosition":{"x":17873.618399216826,"y":13318.741878149442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"b9a17c63-21ea-4295-af8e-e6a3329c2b99","savedPayload":{"position":{"x":17413.200998338638,"y":13416.123821325793},"targetPosition":{"x":17546.466127855365,"y":13388.540595118517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fc34bcb4-0c85-4aa6-a08a-a78120167ed0","savedPayload":{"position":{"x":17546.466127855365,"y":13388.540595118517},"targetPosition":{"x":17873.618399216826,"y":13318.741878149442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Value","code":"{\n \"codeName\": \"value\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.value","id":"d035de65-da5d-4c9f-bf6f-390de346f264","savedPayload":{"position":{"x":17478.971988383786,"y":13063.179106553058},"targetPosition":{"x":17591.582518939143,"y":13135.915688587891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2dda380a-bda1-4bc5-9132-86956e080f01","savedPayload":{"position":{"x":17591.582518939143,"y":13135.915688587891},"targetPosition":{"x":17873.618399216826,"y":13318.741878149442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"31966558-4e25-4512-bc6a-1a83d05affac","savedPayload":{"position":{"x":17872.826813857013,"y":13318.867978122576},"targetPosition":{"x":18403.92996196783,"y":13205.853879295644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current // get current candle data\n\n/* Calculate Rate of Change */\nvariable.value = calculateROC(candle.close, variable.length)\n\nvariable.lastCloses.push(candle.close) // Add the current close value to the last closes array.\n\nif (variable.lastCloses.length > variable.length) {\n variable.lastCloses.splice(0, 1) // Remove the first element of the array to keep it at a maximun of n elements.\n}\n\n/* Helper Functions */\n\n/* Calculate Rate of Change */\nfunction calculateROC(source, length) {\n /* Check if we have enough values to make the calculation */\n if (variable.lastCloses.length < length) { return 0 }\n \n /* Check if n-last candle close is zero, avoid division by zero */\n if (variable.lastCloses[0] === 0) { return 0 }\n \n return 100 * (source - variable.lastCloses[0]) / variable.lastCloses[0]\n}","id":"9073d856-36e6-4fbb-86a8-b0244be2ff2a","savedPayload":{"position":{"x":17571.381930060892,"y":13131.918281164266},"targetPosition":{"x":17842.11670601526,"y":13103.94488153992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8bb88eaa-9d57-470b-8bb4-b443917ce585","savedPayload":{"position":{"x":17842.11670601526,"y":13103.94488153992},"targetPosition":{"x":18111.528487440275,"y":13075.699067689091},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.length = 9\nvariable.lastCloses = []","id":"d8f4eb7f-979c-423f-96b4-519046ede40b","savedPayload":{"position":{"x":17689.403620045257,"y":12734.164811446211},"targetPosition":{"x":17901.068975006656,"y":12905.170392402359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed52861e-b8e3-40fa-88e8-2d7a1fde01d4","savedPayload":{"position":{"x":17901.068975006656,"y":12905.170392402359},"targetPosition":{"x":18111.528487440275,"y":13075.699067689091},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a77a13e5-83be-4f7d-803b-6a18e202ae7e","savedPayload":{"position":{"x":18111.528487440275,"y":13075.699067689091},"targetPosition":{"x":18403.92996196783,"y":13205.853879295644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"83bfd082-1c10-4c42-be63-379a2100cc0e","savedPayload":{"position":{"x":18867.234395096526,"y":13585.421618244005},"targetPosition":{"x":19214.580430141195,"y":12982.842289535909},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"ROC 9","id":"5ecd7465-9f89-4e20-bea9-2216863e2990"}}}],"id":"aa47dd1b-60cc-4ab1-8cd1-d5f54005e54c","savedPayload":{"position":{"x":19214.580430141195,"y":12982.842289535909},"targetPosition":{"x":18881.571706269082,"y":12398.127167364633},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Stochastic","code":"{\n\"codeName\": \"Stochastic\",\n\"repo\": \"Stoch-Indicator-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates RSI.\",\n \"startMode\": {\n \"allMonths\": {\n \"run\": \"false\",\n \"minYear\": \"\",\n \"maxYear\": \"\"\n },\n \"oneMonth\": {\n \"run\": \"false\",\n \"year\": \"\",\n \"month\": \"\"\n },\n \"noTime\": {\n \"run\": \"true\"\n },\n \"fixedInterval\": {\n \"run\": \"false\",\n \"interval\": 0\n }\n },\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\",\n \"startDate\": {\n },\n \"endDate\": {\n }\n }\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market STOCH-14-3","id":"2c380e74-2851-45ff-975d-32344bb1ac34","savedPayload":{"position":{"x":18855.77622171023,"y":13812.610767381037},"targetPosition":{"x":18621.22933022813,"y":13622.585682439098},"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"}}}],"id":"40b215c0-0e30-4315-b501-1335125297ce","savedPayload":{"position":{"x":18621.22933022813,"y":13622.585682439098},"targetPosition":{"x":18331.585761296315,"y":13388.392453276338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","code":"{\"mainUtility\": \"Market Ending Point\"}","id":"5f810842-42b7-47cf-b1c8-cafff231ca57","savedPayload":{"position":{"x":19075.678242974358,"y":11365.699993101245},"targetPosition":{"x":19286.707605279258,"y":11626.434650172077},"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":"ATR Multi-Period-Market","code":"{\"mainUtility\": \"Self Reference\"}","id":"c8f7ce8f-1aee-4433-8395-e4b6c2e24ba7","savedPayload":{"position":{"x":19321.637204528677,"y":11292.824368481777},"targetPosition":{"x":19286.707605279258,"y":11626.434650172077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"94b42891-942c-4026-aeff-60fd555096f4"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","id":"7d9dc95c-39e1-45a4-b982-3d5bb0994db5","savedPayload":{"position":{"x":19550.073990375462,"y":11412.908680096389},"targetPosition":{"x":19286.707605279258,"y":11626.434650172077},"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"}}}],"id":"1262c170-5760-4cb8-8fbc-d8c002bf3a66","savedPayload":{"position":{"x":18466.729167877376,"y":13741.886449991094},"targetPosition":{"x":18331.585761296315,"y":13388.392453276338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"94b42891-942c-4026-aeff-60fd555096f4","savedPayload":{"position":{"x":18272.527899012082,"y":13761.420856638879},"targetPosition":{"x":18331.585761296315,"y":13388.392453276338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","id":"8e13aff4-da04-49bb-81d2-322fd6d0b412","savedPayload":{"position":{"x":18093.60758947748,"y":13682.409352554403},"targetPosition":{"x":18331.585761296315,"y":13388.392453276338},"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","id":"962fd00f-ab4c-4f0d-af74-a39c6c5a9c38","savedPayload":{"position":{"x":17978.52682557947,"y":13523.901083905244},"targetPosition":{"x":18331.585761296315,"y":13388.392453276338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6a6a6533-21a9-4be9-b2f0-ace1adfe45b8","savedPayload":{"position":{"x":18711.286978656062,"y":13672.14007568085},"targetPosition":{"x":18528.615740103796,"y":12989.70205259333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Calculates RSI\",\n \"startMode\": {\n \"allMonths\": {\n \"run\": \"false\",\n \"minYear\": \"\",\n \"maxYear\": \"\"\n },\n \"oneMonth\": {\n \"run\": \"false\",\n \"year\": \"\",\n \"month\": \"\"\n },\n \"noTime\": {\n \"run\": \"true\"\n },\n \"fixedInterval\": {\n \"run\": \"false\",\n \"interval\": 0\n }\n },\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\",\n \"startDate\": {\n \"takeItFromStatusDependency\": 0\n },\n \"endDate\": {\n \"takeItFromStatusDependency\": 1\n }\n }\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily STOCH-14-3","id":"d834ef3b-b891-43d0-b5ba-ab072e0fc98b","savedPayload":{"position":{"x":18009.10901313675,"y":13816.473761881274},"targetPosition":{"x":17977.664712543876,"y":13516.785881431431},"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"}}}],"id":"3068bb07-0fec-4c91-bfc1-8060bfed5f51","savedPayload":{"position":{"x":17977.664712543876,"y":13516.785881431431},"targetPosition":{"x":17938.943929901136,"y":13147.767284143436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"ATR Multi-Period-Daily","code":"{\"mainUtility\": \"Self Reference\"}","id":"1cafc2e1-ea17-4b18-bd08-9ce02fd49de3","savedPayload":{"position":{"x":19633.997542872974,"y":11702.500553723796},"targetPosition":{"x":19703.463804537856,"y":12030.682826272183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"494234e3-13b6-4f90-a529-77b23ee55bc8"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","code":"{\"mainUtility\": \"Market Ending Point\"}","id":"31a36ff7-480e-4472-8286-ab91f424d2f2","savedPayload":{"position":{"x":19839.848454087598,"y":11724.473512910388},"targetPosition":{"x":19703.463804537856,"y":12030.682826272183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"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","code":"{\"mainUtility\": \"Market Starting Point\"}","id":"bf8a555b-95d9-4a79-8889-4b9e3fe0bc06","savedPayload":{"position":{"x":19993.91023437234,"y":11863.047173622408},"targetPosition":{"x":19703.463804537856,"y":12030.682826272183},"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":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","id":"a38119ba-cc6a-4cc8-8138-c9fe971073c0","savedPayload":{"position":{"x":20037.05210109744,"y":12065.60268462909},"targetPosition":{"x":19703.463804537856,"y":12030.682826272183},"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"}}}],"id":"c9030a10-5dbe-4438-9b47-e3c2e21e9c45","savedPayload":{"position":{"x":17785.71876906697,"y":13491.090859295526},"targetPosition":{"x":17938.943929901136,"y":13147.767284143436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"494234e3-13b6-4f90-a529-77b23ee55bc8","savedPayload":{"position":{"x":17634.06428468486,"y":13369.286192643853},"targetPosition":{"x":17938.943929901136,"y":13147.767284143436},"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","id":"0141c05e-dd7a-4466-b87c-6f5ff6248096","savedPayload":{"position":{"x":17564.808444021728,"y":13187.317365461593},"targetPosition":{"x":17938.943929901136,"y":13147.767284143436},"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","id":"e8651790-aada-42d6-85c7-b98b6bd2f7d6","savedPayload":{"position":{"x":17591.287609722538,"y":13013.233328832925},"targetPosition":{"x":17938.943929901136,"y":13147.767284143436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6a39c43d-0ad2-4c98-ae06-6e40f55d1753","savedPayload":{"position":{"x":18175.353495551313,"y":13601.467129904027},"targetPosition":{"x":18528.615740103796,"y":12989.70205259333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Stoch-14-3-3","code":"{\n \"codeName\": \"Stoch-14-3-3\",\n \"singularVariableName\": \"stoch1433\",\n \"pluralVariableName\": \"stoch1433s\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"88b1ff0e-ad99-474c-8833-7b76a5a57ebd","savedPayload":{"position":{"x":17720.29498236808,"y":13502.156568493436},"targetPosition":{"x":17846.797753736497,"y":13172.222914156924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\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\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"4b941e0d-8b0a-41e2-bc20-54e0bc0d936a","savedPayload":{"position":{"x":17550.331875021802,"y":13364.479074073472},"targetPosition":{"x":17846.797753736497,"y":13172.222914156924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","formula":{"type":"Formula","name":"Begin","code":"record.current.begin","id":"f75f0660-8a0c-44cb-bf93-db351ab8d05c","savedPayload":{"position":{"x":16838.59281151076,"y":13547.068233970831},"targetPosition":{"x":16947.26193566163,"y":13412.762097919227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8c35b00f-6b83-47b6-8f23-ecef14656d97","savedPayload":{"position":{"x":16947.26193566163,"y":13412.762097919227},"targetPosition":{"x":17174.349660746233,"y":13132.026891695554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"c7303daa-523a-4153-ae52-a8cac30aa567","savedPayload":{"position":{"x":16658.955405392953,"y":13270.053465326806},"targetPosition":{"x":16825.59460782842,"y":13225.459677461678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"db80f524-af49-4d39-b4b4-d70d87e47745","savedPayload":{"position":{"x":16825.59460782842,"y":13225.459677461678},"targetPosition":{"x":17174.349660746233,"y":13132.026891695554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fast Line","code":"{\n \"codeName\": \"fastLine\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.fastLine","id":"430718f7-482d-4a44-96ce-a85dd76680b1","savedPayload":{"position":{"x":16669.509972233398,"y":12938.631635627757},"targetPosition":{"x":16831.36441426541,"y":13000.578770073775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a2b00adf-0b72-44cf-82a0-bcd6b95ff7c1","savedPayload":{"position":{"x":16831.36441426541,"y":13000.578770073775},"targetPosition":{"x":17174.349660746233,"y":13132.026891695554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Line","code":"{\n \"codeName\": \"slowLine\",\n \"isString\": false\n}","formula":{"type":"Formula","name":"New Formula","code":"variable.slowLine","id":"9ad4bcac-98b9-4880-93fe-a6319635384a","savedPayload":{"position":{"x":16865.47447802427,"y":12679.510858294429},"targetPosition":{"x":16977.93833628434,"y":12834.418208094547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c7620ef0-d47f-4eba-ae08-386c7cae1491","savedPayload":{"position":{"x":16977.93833628434,"y":12834.418208094547},"targetPosition":{"x":17174.349660746233,"y":13132.026891695554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"77ed625d-dbbc-4dc0-a707-de3ca5066341","savedPayload":{"position":{"x":17141.266296672264,"y":13135.431821794456},"targetPosition":{"x":17846.797753736497,"y":13172.222914156924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current // get current candle data\nvariable.lastHighs.push(candle.max) // Add the current high value to the last highs array.\nvariable.lastLows.push(candle.min) // Add the current low value to the last lows array.\n\n/* Remove the first element of the array to keep it at a maximun of n elements */\nif (variable.lastHighs.length > variable.length) {\n variable.lastHighs.splice(0, 1)\n variable.lastLows.splice(0, 1)\n}\n\n/* Calculate Stoch - Signal */\nvariable.signal = calculateStoch(candle.close, variable.length)\n\n\nvariable.lastSignals.push(variable.signal)\n\n/* Remove the first element of the array to keep it at a maximun of n elements */\nif (variable.lastSignals.length > variable.smaFast) {\n variable.lastSignals.splice(0, 1)\n}\n\n/* Calculate Stoch - Fast Line */\nvariable.fastLine = calculateSMA(variable.lastSignals, variable.smaFast)\n\n\nvariable.lastSMAFast.push(variable.fastLine)\n\n/* Remove the first element of the array to keep it at a maximun of n elements */\nif (variable.lastSMAFast.length > variable.smaSlow) {\n variable.lastSMAFast.splice(0, 1)\n}\n\n/* Calculate Stoch - Slow Line */\nvariable.slowLine = calculateSMA(variable.lastSMAFast, variable.smaSlow)\n\n\n/* Helper Functions */\n\n/* Calculate Sochastic Signal */\nfunction calculateStoch(source, length) {\n /* Check if we have enough values to make the calculation */\n if (variable.lastHighs.length < length) { return 0 }\n \n /* Get highest high and lowest low of n-last elements */\n let high = Math.max(...variable.lastHighs)\n let low = Math.min(...variable.lastLows)\n\n /* Check on division by Zero */\n if(high === low) { return 0 }\n \n return 100 * (source - low) / (high - low)\n}\n\n/* Calculate Simple Moving Average */\nfunction calculateSMA(values, length) {\n /* We check we have enough values to make the calculation */\n if (values.length < length) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = values.length - length; i < values.length; i++) { // Iterate through the last periods\n sum = sum + values[i]\n }\n \n return sum / length\n}","id":"cb01047f-16aa-4507-8e97-a96d7a8bbb75","savedPayload":{"position":{"x":16875.25284495155,"y":12839.69715601294},"targetPosition":{"x":17224.039587747528,"y":12894.878820533304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e7b0c32-92cc-4e9e-a130-ae33bc248b40","savedPayload":{"position":{"x":17224.039587747528,"y":12894.878820533304},"targetPosition":{"x":17572.564712519354,"y":12950.138124512776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.length = 14\nvariable.smaFast = 3\nvariable.smaSlow = 3\n\nvariable.signal = 0\nvariable.lastSignals = []\nvariable.lastSMAFast = []\nvariable.lastHighs = []\nvariable.lastLows = []","id":"18cf20b6-0b7b-4520-9cf4-89ee085ab8b9","savedPayload":{"position":{"x":17157.417041952383,"y":12378.73636013669},"targetPosition":{"x":17364.952032741065,"y":12664.351554238166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bc5124f7-650e-476b-b997-1257e4f89c2f","savedPayload":{"position":{"x":17364.952032741065,"y":12664.351554238166},"targetPosition":{"x":17572.564712519354,"y":12950.138124512776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"169e9a70-4b42-426c-8d9a-b60c41ab7f17","savedPayload":{"position":{"x":17572.564712519354,"y":12950.138124512776},"targetPosition":{"x":17846.797753736497,"y":13172.222914156924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"393dc97b-76ee-409a-9b8f-f264ed652b0b","savedPayload":{"position":{"x":17846.60963961575,"y":13172.30333397981},"targetPosition":{"x":18528.615740103796,"y":12989.70205259333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Stoch 14-3-3","id":"6a85fbb1-5a99-4ccc-93e8-092f5dbf6c4a"}}}],"id":"87754aba-6878-4841-9688-352e8c565d16","savedPayload":{"position":{"x":18528.615740103796,"y":12989.70205259333},"targetPosition":{"x":18881.571706269082,"y":12398.127167364633},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"tradingBots":[],"plotters":[{"type":"Plotter","name":"ATR","code":"{\n\"codeName\": \"Plotter-ATR\"\n}","modules":[{"type":"Plotter Module","name":"ATR - RMA","code":"{\n\t\"codeName\": \"Module-ATR-RMA\",\n\t\"banner\": \"Oscillator\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"Grid","points":[{"type":"Point","name":"Begin 0","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","id":"a7d2fc22-a7d8-4e61-ab21-f9a39f1d8c60","savedPayload":{"position":{"x":18055.685132929917,"y":13828.793110006838},"targetPosition":{"x":17997.23097095575,"y":14164.787795027485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2b15da18-c6ba-45b4-9c1d-35c84f50ec2c","savedPayload":{"position":{"x":17997.23097095575,"y":14164.787795027485},"targetPosition":{"x":17938.547246906925,"y":14500.788452522258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","id":"95e093d9-e212-4ee4-abc0-6b5deffc8db6","savedPayload":{"position":{"x":18461.68188711102,"y":14063.319242537256},"targetPosition":{"x":18200.16284494789,"y":14281.854712606962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c0ff77b-ba09-41be-9ff5-cb6d8bae710d","savedPayload":{"position":{"x":18200.16284494789,"y":14281.854712606962},"targetPosition":{"x":17938.547246906925,"y":14500.788452522258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-2 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.atr2","id":"75a4f710-e619-4578-ad51-a01b965800db","savedPayload":{"position":{"x":18621.647139150467,"y":14500.960830110685},"targetPosition":{"x":18280.08071661044,"y":14500.862323776284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a5d5cdc1-5731-4ec5-b8cd-001e4e62ef54","savedPayload":{"position":{"x":18280.08071661044,"y":14500.862323776284},"targetPosition":{"x":17938.547246906925,"y":14500.788452522258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-2 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.atr2","id":"fcb4421d-ee8a-4a27-8bd2-100cdb0cdbf9","savedPayload":{"position":{"x":18460.709727620877,"y":14939.832800649703},"targetPosition":{"x":18199.5214301649,"y":14720.219239982789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d548a98e-d369-45da-abaf-2e5a758e5379","savedPayload":{"position":{"x":18199.5214301649,"y":14720.219239982789},"targetPosition":{"x":17938.547246906925,"y":14500.788452522258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-3 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.atr3","id":"fb2683a4-a28c-4f2b-9345-93937db60072","savedPayload":{"position":{"x":18056.094182680783,"y":15172.597116587302},"targetPosition":{"x":17997.50861088432,"y":14837.377377012648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08c720e8-2c9a-435d-baf4-06e38a7c7ce0","savedPayload":{"position":{"x":17997.50861088432,"y":14837.377377012648},"targetPosition":{"x":17938.547246906925,"y":14500.788452522258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-3 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.atr3","id":"bdb5b37c-6890-4186-9877-84c01b1672af","savedPayload":{"position":{"x":17596.58409039155,"y":15091.478813523077},"targetPosition":{"x":17767.61337253497,"y":14796.083045486579},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a25effcc-2adc-4fc1-939c-45630c3ccd75","savedPayload":{"position":{"x":17767.61337253497,"y":14796.083045486579},"targetPosition":{"x":17938.547246906925,"y":14500.788452522258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-14 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.atr14","id":"df8f75d2-2e35-4567-a43a-6ef38a1d9b6e","savedPayload":{"position":{"x":17296.83055069907,"y":14734.521369838003},"targetPosition":{"x":17617.321859538122,"y":14617.282598057069},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"87985d52-78d7-4796-9918-81c7a534035d","savedPayload":{"position":{"x":17617.321859538122,"y":14617.282598057069},"targetPosition":{"x":17938.547246906925,"y":14500.788452522258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-14 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.atr14","id":"9f5379b7-8632-4873-8534-a13505a8cd92","savedPayload":{"position":{"x":17296.91907332396,"y":14267.546323186858},"targetPosition":{"x":17617.738304080776,"y":14384.016485109469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48292688-3718-49fe-9580-97d9ac87fcd4","savedPayload":{"position":{"x":17617.738304080776,"y":14384.016485109469},"targetPosition":{"x":17938.547246906925,"y":14500.788452522258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1cc0e5a-f1dd-4723-a632-51abeb3f696c","savedPayload":{"position":{"x":17938.547246906925,"y":14500.788452522258},"targetPosition":{"x":17258.66015426277,"y":13322.977126011327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line 0","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","id":"4f411d32-d31c-4f70-880d-14400f3f8e20","savedPayload":{"position":{"x":18174.134756197596,"y":13835.028030664007},"targetPosition":{"x":18023.061181611145,"y":13671.326917836559},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"18c69ccb-7152-4204-b34e-0d1d92840067","savedPayload":{"position":{"x":18023.061181611145,"y":13671.326917836559},"targetPosition":{"x":17808.703592583926,"y":13456.924920674637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 0","id":"e1973335-e34b-410f-8c60-6e4f77e4f7fc","savedPayload":{"position":{"x":17808.703656048856,"y":13759.916634358415},"targetPosition":{"x":17808.703592583926,"y":13456.924920674637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"8c0ff77b-ba09-41be-9ff5-cb6d8bae710d"}}},{"type":"Polygon Vertex","name":"Begin 0","id":"5cf3f400-725e-4f2f-8fbb-f9d9d75210a9","savedPayload":{"position":{"x":17592.12879785055,"y":13673.689480015011},"targetPosition":{"x":17808.703592583926,"y":13456.924920674637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"2b15da18-c6ba-45b4-9c1d-35c84f50ec2c"}}}],"id":"b24d41f5-7cc8-4b4b-a0a9-b31b5799c74c","savedPayload":{"position":{"x":17259.025358413637,"y":14004.974826754355},"targetPosition":{"x":17258.66015426277,"y":13322.977126011327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"ATR-14 Line","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\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}","id":"97f64b46-e6ae-4a56-89fe-808c11a09ec4","savedPayload":{"position":{"x":17720.637245691636,"y":13909.873136814102},"targetPosition":{"x":17662.511877513418,"y":13692.376354103842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"fab23f0e-9455-47a4-ba56-17c3ae1f0c7f","savedPayload":{"position":{"x":17662.511877513418,"y":13692.376354103842},"targetPosition":{"x":17583.396967239554,"y":13396.497021350437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ATR-14 End","id":"872ffd8b-6c72-42dc-90b4-2c8c73d89173","savedPayload":{"position":{"x":17430.2239149934,"y":13661.735451212251},"targetPosition":{"x":17583.396967239554,"y":13396.497021350437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-14 End","id":"48292688-3718-49fe-9580-97d9ac87fcd4"}}},{"type":"Polygon Vertex","name":"ATR-14 Begin","id":"76fc0dd8-8e4c-4392-93a7-25c0906e6d90","savedPayload":{"position":{"x":17287.428772137977,"y":13475.78104434188},"targetPosition":{"x":17583.396967239554,"y":13396.497021350437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-14 Begin","id":"87985d52-78d7-4796-9918-81c7a534035d"}}}],"id":"ecec9e37-265d-4f9e-8e82-68f6333fbbea","savedPayload":{"position":{"x":16917.22360652077,"y":13913.865694612798},"targetPosition":{"x":17258.66015426277,"y":13322.977126011327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"ATR-3 Line","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\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}","id":"0bf6c9ec-c077-4ec0-aee5-461ca992952f","savedPayload":{"position":{"x":16489.709862077732,"y":14322.40850387067},"targetPosition":{"x":16578.386811608343,"y":13993.225608699067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"e2ed8b31-4016-421b-b4a5-be4a1efe7dce","savedPayload":{"position":{"x":16578.386811608343,"y":13993.225608699067},"targetPosition":{"x":16667.32595063482,"y":13663.884399782282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ATR-3 Begin","id":"1f566a4a-a727-4315-bf57-98f6bda4f9f9","savedPayload":{"position":{"x":16371.352946229428,"y":13834.690364406119},"targetPosition":{"x":16667.32595063482,"y":13663.884399782282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-3 Begin","id":"08c720e8-2c9a-435d-baf4-06e38a7c7ce0"}}},{"type":"Polygon Vertex","name":"ATR-3 End","id":"e2ebb5ae-1776-4084-b22d-f8bb1f0f9ce2","savedPayload":{"position":{"x":16337.972031723017,"y":13575.549451791101},"targetPosition":{"x":16667.32595063482,"y":13663.884399782282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-3 End","id":"a25effcc-2adc-4fc1-939c-45630c3ccd75"}}}],"id":"faed1922-2c6f-404f-aa89-bd0279d4a7f6","savedPayload":{"position":{"x":16667.32595063482,"y":13663.884399782282},"targetPosition":{"x":17258.66015426277,"y":13322.977126011327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"ATR-2 Line","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\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}","id":"5cf73947-8357-482f-b35f-8e9b53437b6a","savedPayload":{"position":{"x":16985.113197148738,"y":13380.391825575309},"targetPosition":{"x":17144.385587085086,"y":13221.080172431155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"4caa937b-ddf0-4ca2-af43-2d464ccad98d","savedPayload":{"position":{"x":17144.385587085086,"y":13221.080172431155},"targetPosition":{"x":17358.56148440116,"y":13006.871901606997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ATR-2 Begin","id":"c163eb42-687b-4fba-9db6-0084e18e52ce","savedPayload":{"position":{"x":17055.58953690885,"y":13006.904479120069},"targetPosition":{"x":17358.56148440116,"y":13006.871901606997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-2 Begin","id":"a5d5cdc1-5731-4ec5-b8cd-001e4e62ef54"}}},{"type":"Polygon Vertex","name":"ATR-2 End","id":"a44429f7-6721-4619-9419-d14c0a30de19","savedPayload":{"position":{"x":17143.165353327367,"y":12791.480978173551},"targetPosition":{"x":17358.56148440116,"y":13006.871901606997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-2 End","id":"d548a98e-d369-45da-abaf-2e5a758e5379"}}}],"id":"2a6fc3b7-2f9f-4a82-8a96-c05208c308b6","savedPayload":{"position":{"x":16576.234093786657,"y":13322.591735920934},"targetPosition":{"x":17258.66015426277,"y":13322.977126011327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b5cf58d5-da89-4fff-83cc-000ac1095b32","savedPayload":{"position":{"x":17258.66015426277,"y":13322.977126011327},"targetPosition":{"x":17599.386970563453,"y":12733.068134251285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"ATR - RMA","code":"{ \n\"codeName\": \"Panel-ATR-RMA\"\n}","panelData":[{"type":"Panel Data","name":"ATR-2","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atr2","id":"437acbb9-8126-4866-9a59-5624ab0212fa","savedPayload":{"position":{"x":16435.662175460406,"y":13214.400396110794},"targetPosition":{"x":16677.158656842,"y":12973.843464061061},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08c2e812-c653-45fa-8350-f79c9be57419","savedPayload":{"position":{"x":16677.158656842,"y":12973.843464061061},"targetPosition":{"x":16917.9161495728,"y":12733.026121630275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ATR-3","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atr3","id":"d1bb96e2-10c5-41c8-9599-b1220ca00fae","savedPayload":{"position":{"x":16235.732401570574,"y":12732.95632544197},"targetPosition":{"x":16576.651769773118,"y":12732.963294654257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e940e706-b774-413a-9b2f-24d4f2d3403d","savedPayload":{"position":{"x":16576.651769773118,"y":12732.963294654257},"targetPosition":{"x":16917.9161495728,"y":12733.026121630275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ATR-14","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atr14","id":"9d2b2ba5-4b4c-4323-b66f-25d703cd7522","savedPayload":{"position":{"x":16435.203338571147,"y":12250.799022970525},"targetPosition":{"x":16676.260182122198,"y":12491.534464262015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c4283089-0809-4a02-bb24-fb061af3430a","savedPayload":{"position":{"x":16676.260182122198,"y":12491.534464262015},"targetPosition":{"x":16917.9161495728,"y":12733.026121630275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ea919b0e-a30e-44d7-8d5b-cd83f2c0c3e5","savedPayload":{"position":{"x":16917.9161495728,"y":12733.026121630275},"targetPosition":{"x":17599.386970563453,"y":12733.068134251285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"99088549-f1c0-4157-ba7e-ffd6dfd0d140","savedPayload":{"position":{"x":17599.386970563453,"y":12733.068134251285},"targetPosition":{"x":18190.45672762178,"y":12392.13186070438},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Plotter Module","name":"ATR - SMA","code":"{\n\t\"codeName\": \"Module-ATR-SMA\",\n\t\"banner\": \"Oscillator\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"Grid","points":[{"type":"Point","name":"Begin 0","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","id":"24c4ad6e-7531-4c02-a4d1-a92fa0c2d0bd","savedPayload":{"position":{"x":17687.347358901297,"y":12659.087231920039},"targetPosition":{"x":17475.997048549536,"y":12735.836462976924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e1b746f-f708-49a5-9717-eebf4bb6c91a","savedPayload":{"position":{"x":17475.997048549536,"y":12735.836462976924},"targetPosition":{"x":17198.00521360073,"y":12836.901301106032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","id":"96531747-4036-4cf3-91ce-53a592c111db","savedPayload":{"position":{"x":17687.31464066376,"y":13014.963732050945},"targetPosition":{"x":17475.693764670435,"y":12938.02727070709},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"51c6cdeb-f974-49f5-a8d6-4a3e4c57539e","savedPayload":{"position":{"x":17475.693764670435,"y":12938.02727070709},"targetPosition":{"x":17198.00521360073,"y":12836.901301106032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-2 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.atr2","id":"a0a91f69-8665-4c10-97ed-b344d46e24e9","savedPayload":{"position":{"x":17458.40593918341,"y":13287.882306913527},"targetPosition":{"x":17345.649465132883,"y":13092.86344385076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"84bd5028-9dd1-4128-b903-2e8e27afee2c","savedPayload":{"position":{"x":17345.649465132883,"y":13092.86344385076},"targetPosition":{"x":17198.00521360073,"y":12836.901301106032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-2 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.atr2","id":"b79ea353-e9af-486d-bd59-f647c1d34121","savedPayload":{"position":{"x":17107.54348471855,"y":13349.655011206967},"targetPosition":{"x":17146.69833124,"y":13127.912755996103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ebcf383a-71f7-4caf-8c4b-1334e60dfb49","savedPayload":{"position":{"x":17146.69833124,"y":13127.912755996103},"targetPosition":{"x":17198.00521360073,"y":12836.901301106032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-3 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.atr3","id":"5e321a40-2362-4534-b465-2a9989aecdf8","savedPayload":{"position":{"x":16799.075142384703,"y":13171.616586518163},"targetPosition":{"x":16971.693019986687,"y":13026.822262331472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"806649c5-aef9-4da4-8c8a-e041bc9e71e2","savedPayload":{"position":{"x":16971.693019986687,"y":13026.822262331472},"targetPosition":{"x":17198.00521360073,"y":12836.901301106032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-3 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.atr3","id":"210cdd54-6060-47ff-be8a-06d80daf1438","savedPayload":{"position":{"x":16647.26758167611,"y":12836.908250234846},"targetPosition":{"x":16877.427742078205,"y":12836.900042933874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e5945b52-ef11-4a12-9503-8c8accbefcc5","savedPayload":{"position":{"x":16877.427742078205,"y":12836.900042933874},"targetPosition":{"x":17198.00521360073,"y":12836.901301106032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-14 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.atr14","id":"37501854-7854-49b5-8ab0-d36febe18a65","savedPayload":{"position":{"x":16798.770867507974,"y":12502.391902331092},"targetPosition":{"x":16971.44533439535,"y":12647.04104216763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"57b4f263-265b-4a4f-9470-6c1503961d61","savedPayload":{"position":{"x":16971.44533439535,"y":12647.04104216763},"targetPosition":{"x":17198.00521360073,"y":12836.901301106032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-14 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.atr14","id":"8395b74a-3ceb-49b7-a2e5-f7b00866bd7b","savedPayload":{"position":{"x":17105.507774231693,"y":12320.22751447448},"targetPosition":{"x":17146.218276745887,"y":12543.23097364016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"79026076-fe40-4641-a1c7-903c20ecff2d","savedPayload":{"position":{"x":17146.218276745887,"y":12543.23097364016},"targetPosition":{"x":17198.00521360073,"y":12836.901301106032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bfab9870-bf09-49c5-86cd-975ee33e64ca","savedPayload":{"position":{"x":17134.106465526525,"y":12945.212943171133},"targetPosition":{"x":17583.438845349985,"y":12166.968102049017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line 0","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","id":"2f3896e2-233c-4413-b989-bb111636a6f1","savedPayload":{"position":{"x":17034.391677906846,"y":12936.195978565798},"targetPosition":{"x":17105.82544606901,"y":12720.26417673597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9e5ef462-76d3-417a-8e33-9481761ba313","savedPayload":{"position":{"x":17105.82544606901,"y":12720.26417673597},"targetPosition":{"x":17193.72847434822,"y":12392.160047949566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 0","id":"510f0f9c-b8c3-405f-93fa-150f2ba98b44","savedPayload":{"position":{"x":16901.054426152426,"y":12561.02867252085},"targetPosition":{"x":17193.72847434822,"y":12392.160047949566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"51c6cdeb-f974-49f5-a8d6-4a3e4c57539e"}}},{"type":"Polygon Vertex","name":"Begin 0","id":"aac1fbbe-4728-4c97-92ea-7ab4ab1e976a","savedPayload":{"position":{"x":16862.394582387762,"y":12303.55610303666},"targetPosition":{"x":17193.72847434822,"y":12392.160047949566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"8e1b746f-f708-49a5-9717-eebf4bb6c91a"}}}],"id":"dae87eed-2840-45ec-b8fd-97868408e748","savedPayload":{"position":{"x":17193.525000625013,"y":12392.116741822398},"targetPosition":{"x":17583.438845349985,"y":12166.968102049017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"ATR-14 Line","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\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}","id":"7026f16e-1ad8-4eaa-bbab-ce47b2ad820d","savedPayload":{"position":{"x":16757.474935054142,"y":12542.758950277164},"targetPosition":{"x":16916.66375456743,"y":12383.660362622877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f8abfda8-11a5-4159-8b25-70b123bb3da8","savedPayload":{"position":{"x":16916.66375456743,"y":12383.660362622877},"targetPosition":{"x":17133.42299761647,"y":12166.986979524985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ATR-14 End","id":"aa7480fd-e24a-43db-b0b9-96fbbf6a8190","savedPayload":{"position":{"x":16827.008406839977,"y":12166.991427767647},"targetPosition":{"x":17133.42299761647,"y":12166.986979524985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-14 End","id":"79026076-fe40-4641-a1c7-903c20ecff2d"}}},{"type":"Polygon Vertex","name":"ATR-14 Begin","id":"a0c299f5-5134-4d5f-9f32-1589e26f8e94","savedPayload":{"position":{"x":16916.653429910566,"y":11950.465781920406},"targetPosition":{"x":17133.42299761647,"y":12166.986979524985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-14 Begin","id":"57b4f263-265b-4a4f-9470-6c1503961d61"}}}],"id":"60444df5-1f4a-4553-92bb-5af88cc3b422","savedPayload":{"position":{"x":17133.127134276827,"y":12166.963220842968},"targetPosition":{"x":17583.438845349985,"y":12166.968102049017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"ATR-3 Line","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\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}","id":"0fdd9432-2ce4-4f80-987e-6683bee9b731","savedPayload":{"position":{"x":16676.96022243059,"y":12080.094809646615},"targetPosition":{"x":16894.674283148684,"y":12021.891138291772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"89eab967-e7d1-4bf5-b4d0-3919f59392bb","savedPayload":{"position":{"x":16894.674283148684,"y":12021.891138291772},"targetPosition":{"x":17193.71455006541,"y":11941.928100809966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ATR-3 Begin","id":"74dc9232-405c-4361-a9c1-52b0cb48a8ab","savedPayload":{"position":{"x":16926.94444775602,"y":11787.900248014204},"targetPosition":{"x":17193.71455006541,"y":11941.928100809966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-3 Begin","id":"806649c5-aef9-4da4-8c8a-e041bc9e71e2"}}},{"type":"Polygon Vertex","name":"ATR-3 End","id":"f5142bc0-0a8a-4b51-bb55-37d55d2b07b2","savedPayload":{"position":{"x":17113.590820417645,"y":11642.838666767519},"targetPosition":{"x":17193.71455006541,"y":11941.928100809966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-3 End","id":"e5945b52-ef11-4a12-9503-8c8accbefcc5"}}}],"id":"61c9a80d-5f39-438c-9c90-9ebb93e3ebf1","savedPayload":{"position":{"x":17193.47612085658,"y":11941.844787234544},"targetPosition":{"x":17583.438845349985,"y":12166.968102049017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"ATR-2 Line","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\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}","id":"3cd2a5a6-65a3-4459-9b82-9df07a560744","savedPayload":{"position":{"x":16846.91544366638,"y":11640.022527786441},"targetPosition":{"x":17064.385851869756,"y":11698.255545298909},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"7e31615a-3abe-4749-be9c-9d4e7d0e8290","savedPayload":{"position":{"x":17064.385851869756,"y":11698.255545298909},"targetPosition":{"x":17358.642104168863,"y":11777.117294754915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ATR-2 Begin","id":"05f68187-ffcb-4e54-9ff2-c46dc076fded","savedPayload":{"position":{"x":17206.32813329217,"y":11513.201502033393},"targetPosition":{"x":17358.642104168863,"y":11777.117294754915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-2 Begin","id":"84bd5028-9dd1-4128-b903-2e8e27afee2c"}}},{"type":"Polygon Vertex","name":"ATR-2 End","id":"fde40884-dc75-4eb5-b93d-b8ec1d19d93a","savedPayload":{"position":{"x":17437.424154256605,"y":11482.781807725782},"targetPosition":{"x":17358.642104168863,"y":11777.117294754915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-2 End","id":"ebcf383a-71f7-4caf-8c4b-1334e60dfb49"}}}],"id":"ae2cd4db-eebd-4bda-813a-9d9a788f8838","savedPayload":{"position":{"x":17358.409309874267,"y":11776.975724931752},"targetPosition":{"x":17583.438845349985,"y":12166.968102049017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9a053fa4-ca14-432c-8927-15ef216b2faf","savedPayload":{"position":{"x":17091.237490237247,"y":12081.023327245777},"targetPosition":{"x":17712.237480038297,"y":12081.024666381356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"ATR - SMA","code":"{ \n\"codeName\": \"Panel-ATR-SMA\"\n}","panelData":[{"type":"Panel Data","name":"ATR-2","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atr2","id":"71d72170-f480-46e5-9fb7-3f79eef990d6","savedPayload":{"position":{"x":16800.990791924494,"y":11382.527353204117},"targetPosition":{"x":17101.430249446214,"y":11462.966101248006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"00581f1e-843d-436b-8625-71b0814676f7","savedPayload":{"position":{"x":17101.430249446214,"y":11462.966101248006},"targetPosition":{"x":17401.87861408248,"y":11543.331090115795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ATR-3","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atr3","id":"ac407a65-ed19-4863-b039-0e53dcf6744d","savedPayload":{"position":{"x":17090.93885658292,"y":11004.545349160739},"targetPosition":{"x":17246.414687805292,"y":11273.94772729892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bded503d-8475-4b34-886e-ec67a698a06d","savedPayload":{"position":{"x":17246.414687805292,"y":11273.94772729892},"targetPosition":{"x":17401.87861408248,"y":11543.331090115795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ATR-14","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atr14","id":"07af6d07-5ef8-4c38-a1c4-5f07355e9274","savedPayload":{"position":{"x":17562.605665234852,"y":10942.479093170925},"targetPosition":{"x":17482.282785115403,"y":11242.918728183697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0eda57d2-0c10-4511-b3ab-7c6f1c5b953a","savedPayload":{"position":{"x":17482.282785115403,"y":11242.918728183697},"targetPosition":{"x":17401.87861408248,"y":11543.331090115795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d841e272-ce7b-4f3d-9774-545f69e8fc79","savedPayload":{"position":{"x":17401.87861408248,"y":11543.331090115795},"targetPosition":{"x":17712.237480038297,"y":12081.024666381356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a6a3f5a6-8c33-482d-a922-5719afc35325","savedPayload":{"position":{"x":17598.81906481845,"y":12051.025215165184},"targetPosition":{"x":18190.45672762178,"y":12392.13186070438},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"17f8f37a-bf30-4c1d-82f2-f587830576a0","savedPayload":{"position":{"x":18190.45672762178,"y":12392.13186070438},"targetPosition":{"x":18881.571706269082,"y":12398.127167364633},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"ROC","code":"{\n\"codeName\": \"Plotter-ROC\"\n}","modules":[{"type":"Plotter Module","name":"ROC 76","code":"{\n\t\"codeName\": \"Module-ROC-76\",\n\t\"banner\": \"Oscillator\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"Grid","points":[{"type":"Point","name":"Begin 0","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","id":"5b9a08e3-0df5-4f24-9e46-cfd57c00dbda","savedPayload":{"position":{"x":17406.992814366535,"y":11851.159633584284},"targetPosition":{"x":17261.792684387776,"y":11627.348899554001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a39c9f60-84e3-4e05-8ef0-24539ac40325","savedPayload":{"position":{"x":17261.792684387776,"y":11627.348899554001},"targetPosition":{"x":17116.240941824464,"y":11403.311285063905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","id":"7860512f-766c-4e66-be5f-7702f9c9f047","savedPayload":{"position":{"x":16779.593354617133,"y":11818.52577535549},"targetPosition":{"x":16947.913077389625,"y":11610.87355408107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0fc534f6-3e3f-408a-b25b-f5c973ec0f63","savedPayload":{"position":{"x":16947.913077389625,"y":11610.87355408107},"targetPosition":{"x":17116.240941824464,"y":11403.311285063905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Value Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.value","id":"721530f2-7ad7-411e-b73a-69d45c002577","savedPayload":{"position":{"x":16617.550601998315,"y":11211.875801217466},"targetPosition":{"x":16866.946654805935,"y":11307.507001132817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3b4f240c-66f5-4a3f-9527-47ea197ccf47","savedPayload":{"position":{"x":16866.946654805935,"y":11307.507001132817},"targetPosition":{"x":17116.240941824464,"y":11403.311285063905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Value End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.value","id":"9eee04a2-4bc6-4277-9716-4db129bc6a03","savedPayload":{"position":{"x":17143.529661080633,"y":10869.67500959588},"targetPosition":{"x":17129.93204301985,"y":11136.375490185326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f1de1d87-6d4a-4aea-bf10-74d64ddfb4ed","savedPayload":{"position":{"x":17129.93204301985,"y":11136.375490185326},"targetPosition":{"x":17116.240941824464,"y":11403.311285063905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e60e3722-01e4-421e-a06f-371bcb71aac4","savedPayload":{"position":{"x":17116.240941824464,"y":11403.311285063905},"targetPosition":{"x":18144.532015858164,"y":11128.032988711795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line 0","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","id":"cc082fda-c47e-438f-8157-f2d870c218ac","savedPayload":{"position":{"x":17868.52381806802,"y":14185.489400617525},"targetPosition":{"x":17717.45024348157,"y":14021.788287790077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"cc2ec800-b3ff-4031-8bdd-688d475b2d5e","savedPayload":{"position":{"x":17717.45024348157,"y":14021.788287790077},"targetPosition":{"x":17503.09265445435,"y":13807.386290628156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 0","id":"511d620d-335d-4b07-b181-ae732630d137","savedPayload":{"position":{"x":17503.09271791928,"y":14110.378004311933},"targetPosition":{"x":17503.09265445435,"y":13807.386290628156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"0fc534f6-3e3f-408a-b25b-f5c973ec0f63"}}},{"type":"Polygon Vertex","name":"Begin 0","id":"ea7d0d25-e182-41a9-9451-99402984c131","savedPayload":{"position":{"x":17286.517859720974,"y":14024.15084996853},"targetPosition":{"x":17503.09265445435,"y":13807.386290628156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"a39c9f60-84e3-4e05-8ef0-24539ac40325"}}}],"id":"526bbff1-0ab2-4b5f-ad73-6886c6ef295c","savedPayload":{"position":{"x":17682.045184041315,"y":10861.004171231216},"targetPosition":{"x":18144.532015858164,"y":11128.032988711795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Value","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\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}","id":"d0fdbc54-377b-4862-b50f-b4a4c97eac09","savedPayload":{"position":{"x":17635.833928131044,"y":10230.06468275755},"targetPosition":{"x":17843.18906864696,"y":10397.877924024182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d829f8bb-3737-4cef-ab7a-e92700ca7a6a","savedPayload":{"position":{"x":17843.18906864696,"y":10397.877924024182},"targetPosition":{"x":18088.372817145773,"y":10596.543808849678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Value Begin","id":"29d5faa8-13a8-45a0-ba94-f43c2c200222","savedPayload":{"position":{"x":18055.37542705741,"y":10283.267311272573},"targetPosition":{"x":18088.372817145773,"y":10596.543808849678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Value Begin","id":"3b4f240c-66f5-4a3f-9527-47ea197ccf47"}}},{"type":"Polygon Vertex","name":"Value End","id":"adf14091-c476-40aa-a560-fe8d90b8b8f3","savedPayload":{"position":{"x":18300.255024761238,"y":10334.631975618682},"targetPosition":{"x":18088.372817145773,"y":10596.543808849678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Value End","id":"f1de1d87-6d4a-4aea-bf10-74d64ddfb4ed"}}}],"id":"2e3e77ee-7057-47ca-b0fb-01f483c00949","savedPayload":{"position":{"x":18006.402911573205,"y":10612.07088209979},"targetPosition":{"x":18144.532015858164,"y":11128.032988711795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ae6b4dd4-c45f-4398-91cf-50cb16a36b42","savedPayload":{"position":{"x":18144.212029293973,"y":11128.08423212688},"targetPosition":{"x":18606.32433403636,"y":11394.731246452335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"ROC 76","code":"{ \n\"codeName\": \"Panel-ROC-76\"\n}","panelData":[{"type":"Panel Data","name":"Value","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.value","id":"f9921989-1157-49ad-894e-9f4e9d197d46","savedPayload":{"position":{"x":18606.32112368616,"y":10327.58791064278},"targetPosition":{"x":18606.326025237984,"y":10594.493665212141},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fcffae02-a826-4058-930a-f1eba1c3c0dc","savedPayload":{"position":{"x":18606.326025237984,"y":10594.493665212141},"targetPosition":{"x":18606.32521470872,"y":10861.37799109762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b44763a3-2604-4204-9275-1c822bf7b85f","savedPayload":{"position":{"x":18606.32521470872,"y":10861.37799109762},"targetPosition":{"x":18606.32433403636,"y":11394.731246452335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a21bb3ba-b24d-4163-b7d0-ea60220fc368","savedPayload":{"position":{"x":18014.262491044592,"y":11732.177969060123},"targetPosition":{"x":18580.308926874874,"y":11884.11169474596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Plotter Module","name":"ROC 32","code":"{\n\t\"codeName\": \"Module-ROC-32\",\n\t\"banner\": \"Oscillator\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"Grid","points":[{"type":"Point","name":"Begin 0","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","id":"360c9616-373e-4b79-8623-507a4e126b2d","savedPayload":{"position":{"x":17604.98237441362,"y":11118.384461437403},"targetPosition":{"x":17591.229574654408,"y":10851.64979348565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3830e3a4-e15c-4f83-9530-9d24a940d5a6","savedPayload":{"position":{"x":17591.229574654408,"y":10851.64979348565},"targetPosition":{"x":17577.42729105981,"y":10584.919127966248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","id":"251012cf-5083-4a10-932c-d6ffe369acc2","savedPayload":{"position":{"x":17078.440537628405,"y":10776.182614160492},"targetPosition":{"x":17327.92714659012,"y":10680.547923936325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"050405b7-8bd9-413b-b1cf-3ea9259b6e20","savedPayload":{"position":{"x":17327.92714659012,"y":10680.547923936325},"targetPosition":{"x":17577.42729105981,"y":10584.919127966248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Value Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.value","id":"f5e02d75-2c37-431b-91d2-e4ee89f6b4ca","savedPayload":{"position":{"x":17241.123353207342,"y":10169.618772219912},"targetPosition":{"x":17409.265977614832,"y":10377.264582030723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f277e303-3eb8-49f8-a70f-36e5fa6acb05","savedPayload":{"position":{"x":17409.265977614832,"y":10377.264582030723},"targetPosition":{"x":17577.42729105981,"y":10584.919127966248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Value End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.value","id":"a551a375-2f95-469d-9748-f5ffa94cb8a2","savedPayload":{"position":{"x":17868.191964464655,"y":10136.732573433423},"targetPosition":{"x":17722.817954721435,"y":10360.845317077976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"010b0145-7fa3-41bd-8d4c-ad221abe3f75","savedPayload":{"position":{"x":17722.817954721435,"y":10360.845317077976},"targetPosition":{"x":17577.42729105981,"y":10584.919127966248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c45748d1-cb04-4a9f-8564-d6489e1ca532","savedPayload":{"position":{"x":17577.42729105981,"y":10584.919127966248},"targetPosition":{"x":18606.698400817477,"y":10860.652818248462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line 0","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","id":"4f8b88e5-1ef4-4094-be2a-c62f3aace8a0","savedPayload":{"position":{"x":16728.78073977727,"y":13286.657348519317},"targetPosition":{"x":16800.214507939436,"y":13070.725546689488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"5ecae3ca-c6ff-4de7-91c8-186c9d242586","savedPayload":{"position":{"x":16800.214507939436,"y":13070.725546689488},"targetPosition":{"x":16888.117536218644,"y":12742.621417903085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 0","id":"4d8a5169-ff68-4d76-bdda-70533b12857d","savedPayload":{"position":{"x":16595.44348802285,"y":12911.490042474368},"targetPosition":{"x":16888.117536218644,"y":12742.621417903085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"050405b7-8bd9-413b-b1cf-3ea9259b6e20"}}},{"type":"Polygon Vertex","name":"Begin 0","id":"7562f064-db9f-48d1-b085-6b0378a9e230","savedPayload":{"position":{"x":16556.783644258187,"y":12654.01747299018},"targetPosition":{"x":16888.117536218644,"y":12742.621417903085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"3830e3a4-e15c-4f83-9530-9d24a940d5a6"}}}],"id":"aadad370-9c78-49cd-8360-c290b42eb47c","savedPayload":{"position":{"x":18339.67022968422,"y":10397.976278044123},"targetPosition":{"x":18606.698400817477,"y":10860.652818248462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Value Line","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\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}","id":"54dc15cf-f4b0-4575-92b5-32047ac32fef","savedPayload":{"position":{"x":19669.168863382667,"y":9941.703731163503},"targetPosition":{"x":19625.931158657007,"y":10206.996436563304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"7b8cb64d-2d91-4aea-9e7d-9d0541095294","savedPayload":{"position":{"x":19625.931158657007,"y":10206.996436563304},"targetPosition":{"x":19573.059732869016,"y":10546.911986658197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Value Begin","id":"e4131510-0ce7-4fcb-82f9-03582a5c861c","savedPayload":{"position":{"x":19852.424836159218,"y":10343.585150164916},"targetPosition":{"x":19573.059732869016,"y":10546.911986658197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Value Begin","id":"f277e303-3eb8-49f8-a70f-36e5fa6acb05"}}},{"type":"Polygon Vertex","name":"Value End","id":"8a780be1-a258-4af4-8450-e57384ff7bf0","savedPayload":{"position":{"x":19913.935523079446,"y":10599.503490989595},"targetPosition":{"x":19573.059732869016,"y":10546.911986658197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Value End","id":"010b0145-7fa3-41bd-8d4c-ad221abe3f75"}}}],"id":"2b87e0ff-d5a1-4b9b-b713-743f46573249","savedPayload":{"position":{"x":18744.87776797306,"y":10344.561854066611},"targetPosition":{"x":18606.698400817477,"y":10860.652818248462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"66c3abab-2df5-4d90-a119-1a18c24536a5","savedPayload":{"position":{"x":18606.698400817477,"y":10860.652818248462},"targetPosition":{"x":18873.572201042774,"y":11322.987341033584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"ROC 32","code":"{ \n\"codeName\": \"Panel-ROC-32\"\n}","panelData":[{"type":"Panel Data","name":"Value","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.value","id":"a7d719e2-be07-47cc-a91c-ebdab4dbc814","savedPayload":{"position":{"x":19407.50689559955,"y":10397.832303380117},"targetPosition":{"x":19273.949907345563,"y":10629.241463686973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0aa50f71-8801-4d7c-b04e-136adbb3592a","savedPayload":{"position":{"x":19273.949907345563,"y":10629.241463686973},"targetPosition":{"x":19140.410899217204,"y":10860.65012411809},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4d4fdc48-dca1-47e8-8f2e-e595adf26c0e","savedPayload":{"position":{"x":19140.410899217204,"y":10860.65012411809},"targetPosition":{"x":18873.572201042774,"y":11322.987341033584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7812b3a3-8375-4f0d-9671-acc05b256d74","savedPayload":{"position":{"x":18286.891257449784,"y":11375.997477121864},"targetPosition":{"x":18580.308926874874,"y":11884.11169474596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Plotter Module","name":"ROC 9","code":"{\n\t\"codeName\": \"Module-ROC-9\",\n\t\"banner\": \"Oscillator\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"Grid","points":[{"type":"Point","name":"Begin 0","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","id":"d30a2a69-8977-4528-aac6-abebe3aad8b1","savedPayload":{"position":{"x":17447.17456632643,"y":10740.670950426786},"targetPosition":{"x":17508.111731948607,"y":10454.074230884708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"44d4ab03-4306-43f7-8c94-08976c57625a","savedPayload":{"position":{"x":17508.111731948607,"y":10454.074230884708},"targetPosition":{"x":17569.154601464066,"y":10167.202998318786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","id":"c9bcf00d-9a15-4444-94f3-bf493cacdc4e","savedPayload":{"position":{"x":16986.717943960997,"y":10227.551307176065},"targetPosition":{"x":17277.862928034552,"y":10197.30820792797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5a0efe28-4669-4f77-af30-322b9c8fad72","savedPayload":{"position":{"x":17277.862928034552,"y":10197.30820792797},"targetPosition":{"x":17569.154601464066,"y":10167.202998318786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Value Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.value","id":"388b4734-3b11-4b4c-9fca-0ea51581be66","savedPayload":{"position":{"x":17331.43603867606,"y":9631.037838784561},"targetPosition":{"x":17450.502865915176,"y":9899.177698508822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"473c0f5f-22eb-4212-bd6f-3e7b4b81e563","savedPayload":{"position":{"x":17450.502865915176,"y":9899.177698508822},"targetPosition":{"x":17569.154601464066,"y":10167.202998318786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Value End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.value","id":"bc667db2-4e37-427b-a581-e3f29086f305","savedPayload":{"position":{"x":18004.824135193758,"y":9775.312087546185},"targetPosition":{"x":17787.406756461423,"y":9971.135603302126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"79ce261d-2055-4a8a-9604-41b37653759a","savedPayload":{"position":{"x":17787.406756461423,"y":9971.135603302126},"targetPosition":{"x":17569.154601464066,"y":10167.202998318786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cc49ad50-0be2-43c9-8f4a-ccccea8dc087","savedPayload":{"position":{"x":17569.154601464066,"y":10167.202998318786},"targetPosition":{"x":18581.05913329368,"y":10751.503062184735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line 0","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","id":"28729ed0-43c3-4adb-8dd6-a708dda9d798","savedPayload":{"position":{"x":17342.771190300744,"y":15876.885321529824},"targetPosition":{"x":17191.697615714293,"y":15713.184208702376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"7c568a67-a0af-49ed-bae4-71e9fb835dcc","savedPayload":{"position":{"x":17191.697615714293,"y":15713.184208702376},"targetPosition":{"x":16977.340026687074,"y":15498.782211540454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 0","id":"f13ef470-67b1-4ea9-b5f9-d1323b9e5921","savedPayload":{"position":{"x":16977.340090152004,"y":15801.773925224232},"targetPosition":{"x":16977.340026687074,"y":15498.782211540454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"5a0efe28-4669-4f77-af30-322b9c8fad72"}}},{"type":"Polygon Vertex","name":"Begin 0","id":"382b90b0-c454-438c-8342-f625c475b183","savedPayload":{"position":{"x":16760.765231953697,"y":15715.546770880828},"targetPosition":{"x":16977.340026687074,"y":15498.782211540454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"44d4ab03-4306-43f7-8c94-08976c57625a"}}}],"id":"79c02166-9fb5-41f8-9a93-c86f198d046d","savedPayload":{"position":{"x":18430.057434409067,"y":10184.901169760014},"targetPosition":{"x":18581.05913329368,"y":10751.503062184735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Value","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\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}","id":"6475bd9e-d457-4fa6-a0e2-6bab43c1b900","savedPayload":{"position":{"x":17110.081300363767,"y":11921.460603669848},"targetPosition":{"x":17317.436440879683,"y":12089.27384493648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"3dbc0e73-14ef-4ffc-8284-f16c461778f3","savedPayload":{"position":{"x":17317.436440879683,"y":12089.27384493648},"targetPosition":{"x":17562.620189378496,"y":12287.939729761976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Value Begin","id":"a2794b60-36b4-4896-899b-20f60c519042","savedPayload":{"position":{"x":17529.622799290133,"y":11974.663232184872},"targetPosition":{"x":17562.620189378496,"y":12287.939729761976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Value Begin","id":"473c0f5f-22eb-4212-bd6f-3e7b4b81e563"}}},{"type":"Polygon Vertex","name":"Value End","id":"759aba24-d4ed-4266-a9c4-9ea04a19f8f7","savedPayload":{"position":{"x":17774.50239699396,"y":12026.02789653098},"targetPosition":{"x":17562.620189378496,"y":12287.939729761976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Value End","id":"79ce261d-2055-4a8a-9604-41b37653759a"}}}],"id":"5ee0dccd-325b-410f-b069-f0f3e3881447","savedPayload":{"position":{"x":18873.97149366684,"y":10243.920156481752},"targetPosition":{"x":18581.05913329368,"y":10751.503062184735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"05a0cab0-cf12-4ee7-92a8-76fe96e42805","savedPayload":{"position":{"x":18581.05913329368,"y":10751.503062184735},"targetPosition":{"x":18732.439069766187,"y":11317.392773767933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"ROC 9","code":"{ \n\"codeName\": \"Panel-ROC-9\"\n}","panelData":[{"type":"Panel Data","name":"Value","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.value","id":"488e613d-484a-4750-8b22-a20f0434d1ea","savedPayload":{"position":{"x":19561.48216773702,"y":10488.482774120012},"targetPosition":{"x":19353.957340224057,"y":10695.572363287261},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"521fa5b1-2419-4550-b8fb-ef2dcc284693","savedPayload":{"position":{"x":19353.957340224057,"y":10695.572363287261},"targetPosition":{"x":19146.854885436394,"y":10903.244604801974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1be3230-a9a3-4d36-95d0-f6ba0ddcd5e5","savedPayload":{"position":{"x":19146.854885436394,"y":10903.244604801974},"targetPosition":{"x":18732.439069766187,"y":11317.392773767933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5ecd7465-9f89-4e20-bea9-2216863e2990","savedPayload":{"position":{"x":18732.439069766187,"y":11317.392773767933},"targetPosition":{"x":18580.308926874874,"y":11884.11169474596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"85e9a7d0-c411-4fac-9297-95d71a9ae363","savedPayload":{"position":{"x":18580.308926874874,"y":11884.11169474596},"targetPosition":{"x":18881.571706269082,"y":12398.127167364633},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Stochastic","code":"{\n\"codeName\": \"Plotter-Stoch\"\n}","modules":[{"type":"Plotter Module","name":"Stoch 14-3-3","code":"{\n\t\"codeName\": \"Module-Stoch-14-3-3\",\n \"icon\": \"Oscillator\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"New Chart Points","points":[{"type":"Point","name":"Slow Line Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.slowLine","id":"55d7707a-30e2-4879-8be5-ca7ecd2f3873","savedPayload":{"position":{"x":19216.639913271727,"y":10858.134870989543},"targetPosition":{"x":19075.22663716291,"y":11019.744984048306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bc0a51ed-fc21-4517-80a9-742f8a28ede7","savedPayload":{"position":{"x":19075.22663716291,"y":11019.744984048306},"targetPosition":{"x":18789.899175435286,"y":11341.515324222466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Slow Line End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.slowLine","id":"bacc0912-cfd8-4cf1-91b7-9754df472dae","savedPayload":{"position":{"x":19350.564430449147,"y":11022.064720873015},"targetPosition":{"x":19162.882521457745,"y":11129.59038432186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d97911db-336c-414a-b163-69cb135de17b","savedPayload":{"position":{"x":19162.882521457745,"y":11129.59038432186},"targetPosition":{"x":18789.899175435286,"y":11341.515324222466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Fast Line Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.fastLine","id":"17a984a0-223a-4e41-87b5-1cbe8ff2e51d","savedPayload":{"position":{"x":19425.53269847469,"y":11222.761117424672},"targetPosition":{"x":19213.610419224595,"y":11262.1597065429},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"97e0ce46-a22d-49ce-bf5c-bb50ec060d86","savedPayload":{"position":{"x":19213.610419224595,"y":11262.1597065429},"targetPosition":{"x":18789.899175435286,"y":11341.515324222466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Fast Line End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.fastLine","id":"013e38de-657d-461b-8b9b-beee034d1a28","savedPayload":{"position":{"x":19405.883207563053,"y":11474.179129406873},"targetPosition":{"x":19214.81351887101,"y":11403.12747836159},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5b1e120b-33fa-434a-9913-135f3f94edad","savedPayload":{"position":{"x":19214.81351887101,"y":11403.12747836159},"targetPosition":{"x":18789.899175435286,"y":11341.515324222466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 0","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","id":"a6b82c72-273b-4bb0-a20f-672e868a8bc4","savedPayload":{"position":{"x":19364.309223442924,"y":11636.255266890994},"targetPosition":{"x":19173.007339082294,"y":11538.607582730649},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e894f129-e11d-4ec6-8d76-50d39dab5dd5","savedPayload":{"position":{"x":19173.007339082294,"y":11538.607582730649},"targetPosition":{"x":18789.899175435286,"y":11341.515324222466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","id":"ed878528-be4d-4b54-b05c-14be099d2e0a","savedPayload":{"position":{"x":19242.68791119211,"y":11798.711734499688},"targetPosition":{"x":19087.863786753587,"y":11651.477231354624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"93278c60-4529-454e-989f-771ce3beb3c1","savedPayload":{"position":{"x":19087.863786753587,"y":11651.477231354624},"targetPosition":{"x":18789.899175435286,"y":11341.515324222466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 20","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 20","id":"4c062900-b756-40f7-8538-dabb9ae12c16","savedPayload":{"position":{"x":19061.465621055555,"y":11925.54058759217},"targetPosition":{"x":18970.736759965162,"y":11730.587449677485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"59d32253-47b9-4227-bc5b-e2f1d5416844","savedPayload":{"position":{"x":18970.736759965162,"y":11730.587449677485},"targetPosition":{"x":18789.899175435286,"y":11341.515324222466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 20","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 20","id":"3a560a43-44d0-4d9e-b897-465c472fa9ea","savedPayload":{"position":{"x":18856.685456845596,"y":11985.350429499973},"targetPosition":{"x":18834.972681973843,"y":11770.138367101783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ce6a0861-712e-4cf4-81e9-92ab6c8a5f4d","savedPayload":{"position":{"x":18834.972681973843,"y":11770.138367101783},"targetPosition":{"x":18789.899175435286,"y":11341.515324222466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 30","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 30","id":"a492b3aa-e876-4762-a297-e3fd36964bb8","savedPayload":{"position":{"x":18647.426536222993,"y":11972.37965688267},"targetPosition":{"x":18693.98387516834,"y":11759.307521677176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3ea0b783-3d43-47d1-90aa-99366cd09a7d","savedPayload":{"position":{"x":18693.98387516834,"y":11759.307521677176},"targetPosition":{"x":18789.899175435286,"y":11341.515324222466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 30","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 30","id":"45566c80-77fd-4246-8fc3-50692ff479a2","savedPayload":{"position":{"x":18448.827154532515,"y":11888.212921180064},"targetPosition":{"x":18562.145516472207,"y":11706.133378473645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4e7322f7-3bfa-41cc-b9a0-c5dcbe16e83e","savedPayload":{"position":{"x":18562.145516472207,"y":11706.133378473645},"targetPosition":{"x":18789.899175435286,"y":11341.515324222466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 70","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 70","id":"c982c6b7-9b74-4b02-a2b8-8c6fb6df231e","savedPayload":{"position":{"x":18287.96780306595,"y":11747.105361747404},"targetPosition":{"x":18455.25196842602,"y":11612.803827784173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4f226496-b6a0-436d-97c5-d6e61dd00c23","savedPayload":{"position":{"x":18455.25196842602,"y":11612.803827784173},"targetPosition":{"x":18789.899175435286,"y":11341.515324222466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 70","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 70","id":"a66f14af-1cd6-4b48-979c-13bd4171828c","savedPayload":{"position":{"x":18182.894300433574,"y":11563.782327098268},"targetPosition":{"x":18386.84809788928,"y":11488.910898751088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"22287519-c930-4dfb-bb4a-298da4e32cdf","savedPayload":{"position":{"x":18386.84809788928,"y":11488.910898751088},"targetPosition":{"x":18789.899175435286,"y":11341.515324222466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 80","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 80","id":"742160f2-7cd8-4565-9536-5c0dca39a3e9","savedPayload":{"position":{"x":18144.475378095765,"y":11352.863660428942},"targetPosition":{"x":18359.12577517848,"y":11348.855628384785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fb48eeab-d538-4fc5-81fe-dd916f749477","savedPayload":{"position":{"x":18359.12577517848,"y":11348.855628384785},"targetPosition":{"x":18789.899175435286,"y":11341.515324222466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 80","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 80","id":"9057daf5-069d-4489-aaf5-dd803f642a86","savedPayload":{"position":{"x":18174.29565544598,"y":11146.779564077075},"targetPosition":{"x":18379.53683231518,"y":11211.474089723413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9a3c052a-a6b6-4392-b2fd-54151febb8f5","savedPayload":{"position":{"x":18379.53683231518,"y":11211.474089723413},"targetPosition":{"x":18789.899175435286,"y":11341.515324222466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 100","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 100","id":"2e17f6ae-23e6-4411-a0a5-69be7d7d3232","savedPayload":{"position":{"x":18271.624767739617,"y":10955.000944091671},"targetPosition":{"x":18443.52711995642,"y":11085.009408447548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f3e69d47-f137-412e-a515-7dc262af7f8b","savedPayload":{"position":{"x":18443.52711995642,"y":11085.009408447548},"targetPosition":{"x":18789.899175435286,"y":11341.515324222466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 100","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 100","id":"a7a616cf-f882-4088-b1d0-eb4fdb4ffd11","savedPayload":{"position":{"x":18425.124660259837,"y":10805.972803434972},"targetPosition":{"x":18547.217770206313,"y":10985.1806758085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"29103f63-7cd6-4005-bec7-a385cf373eaf","savedPayload":{"position":{"x":18547.217770206313,"y":10985.1806758085},"targetPosition":{"x":18789.899175435286,"y":11341.515324222466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 50","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 50","id":"8b212cf0-fab5-45dd-b645-0f4e79656653","savedPayload":{"position":{"x":18618.57131124668,"y":10717.955062589735},"targetPosition":{"x":18675.721870816593,"y":10926.34778506918},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"99b1d6a8-0904-43ff-b209-c7c6868181b5","savedPayload":{"position":{"x":18675.721870816593,"y":10926.34778506918},"targetPosition":{"x":18789.899175435286,"y":11341.515324222466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 50","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 50","id":"864cc94d-3947-45bd-8a85-a19d06609b9a","savedPayload":{"position":{"x":18829.29697705002,"y":10695.116435940454},"targetPosition":{"x":18816.966916959303,"y":10911.13843332141},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"84db0a13-44f1-4953-ab27-d7425ab1ee6b","savedPayload":{"position":{"x":18816.966916959303,"y":10911.13843332141},"targetPosition":{"x":18789.899175435286,"y":11341.515324222466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8ac3440e-1b64-4a12-8c31-38783846da01","savedPayload":{"position":{"x":18789.899175435286,"y":11341.515324222466},"targetPosition":{"x":19455.789672910934,"y":10810.57690559178},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Slow Line","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\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}","id":"d89f9f7e-12c9-4883-a753-41cf0e061dde","savedPayload":{"position":{"x":19598.11001107716,"y":9599.675783833067},"targetPosition":{"x":19621.149204085068,"y":9893.740870742344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"7ef54320-7e6d-4e77-9345-9f4e5742a18e","savedPayload":{"position":{"x":19621.149204085068,"y":9893.740870742344},"targetPosition":{"x":19646.761614336032,"y":10217.574401259495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Line End","id":"f093f915-dc4b-4ba3-bc51-57e593a3025a","savedPayload":{"position":{"x":19746.965839534663,"y":9909.005827836792},"targetPosition":{"x":19646.761614336032,"y":10217.574401259495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Slow Line End","id":"d97911db-336c-414a-b163-69cb135de17b"}}},{"type":"Polygon Vertex","name":"Line Begin","id":"a2116df6-c3ec-4017-a51d-ae12cc47e021","savedPayload":{"position":{"x":19858.590703073205,"y":9969.756648042327},"targetPosition":{"x":19646.761614336032,"y":10217.574401259495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Slow Line Begin","id":"bc0a51ed-fc21-4517-80a9-742f8a28ede7"}}}],"id":"c28b1cfd-4cf5-4382-8bce-45930b5e8a15","savedPayload":{"position":{"x":18924.86687635903,"y":10591.784021918742},"targetPosition":{"x":19455.789672910934,"y":10810.57690559178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Fast Line","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\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}","id":"a5147142-56f2-4fd8-a06e-449cfb1a997d","savedPayload":{"position":{"x":18341.609067625104,"y":10332.200695677868},"targetPosition":{"x":18631.416109579717,"y":10390.904075926639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b7bec76c-a5d6-4b78-a0f5-8315ca1c0dba","savedPayload":{"position":{"x":18631.416109579717,"y":10390.904075926639},"targetPosition":{"x":18956.368088567324,"y":10455.608659125231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Fast Line End","id":"88ffc758-994a-4385-a9d6-c28361403f5a","savedPayload":{"position":{"x":18681.102414555917,"y":10271.5477417007},"targetPosition":{"x":18956.368088567324,"y":10455.608659125231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Fast Line End","id":"5b1e120b-33fa-434a-9913-135f3f94edad"}}},{"type":"Polygon Vertex","name":"Fast Line Begin","id":"3a43f15c-ff64-4415-bee8-f458601a3e96","savedPayload":{"position":{"x":18773.010019332658,"y":10179.892222141676},"targetPosition":{"x":18956.368088567324,"y":10455.608659125231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Fast Line Begin","id":"97e0ce46-a22d-49ce-bf5c-bb50ec060d86"}}}],"id":"53d89dd3-df4f-4001-a9cc-a9fa5c7808d4","savedPayload":{"position":{"x":18978.099178319437,"y":10491.752770216073},"targetPosition":{"x":19455.789672910934,"y":10810.57690559178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 0","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","id":"258f1f9e-4410-4a64-9cd6-e445d4444ba7","savedPayload":{"position":{"x":18418.973180199515,"y":10016.090745009813},"targetPosition":{"x":18685.586872206153,"y":10143.237001911184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"805ec3ae-e0ec-42ba-ba1c-617d5fe24e09","savedPayload":{"position":{"x":18685.586872206153,"y":10143.237001911184},"targetPosition":{"x":19005.86585844732,"y":10295.792784063122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 0","id":"379a9e22-27fa-4f50-900a-0730cbe0b3d3","savedPayload":{"position":{"x":18768.558853441475,"y":10032.164756246331},"targetPosition":{"x":19005.86585844732,"y":10295.792784063122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"e894f129-e11d-4ec6-8d76-50d39dab5dd5"}}},{"type":"Polygon Vertex","name":"End 0","id":"0ff4fba2-0167-41df-99e5-542a673adf30","savedPayload":{"position":{"x":18887.623462674157,"y":9961.442957631449},"targetPosition":{"x":19005.86585844732,"y":10295.792784063122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"93278c60-4529-454e-989f-771ce3beb3c1"}}}],"id":"e8f5af9d-ba4b-4482-aca7-295b92f60f17","savedPayload":{"position":{"x":19049.59818459447,"y":10404.519860204673},"targetPosition":{"x":19455.789672910934,"y":10810.57690559178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 20","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","id":"1172daa1-fe47-4069-818e-50a800f539ef","savedPayload":{"position":{"x":18609.288568851018,"y":9941.114730070243},"targetPosition":{"x":18855.258274299747,"y":10105.468129494198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1efe1989-3881-41f4-af21-bf32d3fdc64a","savedPayload":{"position":{"x":18855.258274299747,"y":10105.468129494198},"targetPosition":{"x":19130.982246062908,"y":10289.431315943686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 20","id":"0617cdf2-2290-4f79-b132-ce46e33f3eb8","savedPayload":{"position":{"x":18946.68975645976,"y":10013.501070012324},"targetPosition":{"x":19130.982246062908,"y":10289.431315943686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"59d32253-47b9-4227-bc5b-e2f1d5416844"}}},{"type":"Polygon Vertex","name":"End 20","id":"cbc04d73-2faf-4808-b1ef-43aa2d1cf509","savedPayload":{"position":{"x":19066.560808828744,"y":9964.082621177206},"targetPosition":{"x":19130.982246062908,"y":10289.431315943686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"ce6a0861-712e-4cf4-81e9-92ab6c8a5f4d"}}}],"id":"3d7a22fa-7a63-4cea-8ce7-d3358bd79ac8","savedPayload":{"position":{"x":19136.67920155821,"y":10332.996054604579},"targetPosition":{"x":19455.789672910934,"y":10810.57690559178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 30","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","id":"c10e1ba8-3255-4eab-8d43-83315dca23e1","savedPayload":{"position":{"x":18796.18147060884,"y":9789.087757840132},"targetPosition":{"x":19005.56074734484,"y":9998.477778487608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c4dbb4e0-6e92-4304-bba1-76013eb739d4","savedPayload":{"position":{"x":19005.56074734484,"y":9998.477778487608},"targetPosition":{"x":19238.601187359258,"y":10231.259703391685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 30","id":"1bb29f63-48b2-405c-8b76-5b42be6c1e3f","savedPayload":{"position":{"x":19110.557236280863,"y":9921.692193115989},"targetPosition":{"x":19238.601187359258,"y":10231.259703391685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"3ea0b783-3d43-47d1-90aa-99366cd09a7d"}}},{"type":"Polygon Vertex","name":"End 30","id":"86cc6fd9-ca44-42ff-817c-c33d9a4a4558","savedPayload":{"position":{"x":19238.635631620044,"y":9899.72419619564},"targetPosition":{"x":19238.601187359258,"y":10231.259703391685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4e7322f7-3bfa-41cc-b9a0-c5dcbe16e83e"}}}],"id":"49ef61a8-1381-45f0-b7d4-0a95ed9d7e60","savedPayload":{"position":{"x":19236.03470762912,"y":10279.876723655949},"targetPosition":{"x":19455.789672910934,"y":10810.57690559178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 50","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","id":"f18a4f3f-1b4a-4816-9c76-9b6171a6c886","savedPayload":{"position":{"x":19040.915085897803,"y":9670.896870148215},"targetPosition":{"x":19182.755185833805,"y":9932.291207960734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bdcda8bd-a2a3-4dae-8774-7fe7a1bd8df9","savedPayload":{"position":{"x":19182.755185833805,"y":9932.291207960734},"targetPosition":{"x":19337.30187493284,"y":10217.05880771474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 50","id":"155ecca7-3c3a-40b0-98e0-c4cc97021ba2","savedPayload":{"position":{"x":19302.687759436758,"y":9891.900549152173},"targetPosition":{"x":19337.30187493284,"y":10217.05880771474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 50","id":"99b1d6a8-0904-43ff-b209-c7c6868181b5"}}},{"type":"Polygon Vertex","name":"End 50","id":"3f22cf14-5acc-4f4d-b19a-108f02fa2e53","savedPayload":{"position":{"x":19429.081003817933,"y":9902.839794868303},"targetPosition":{"x":19337.30187493284,"y":10217.05880771474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 50","id":"84db0a13-44f1-4953-ab27-d7425ab1ee6b"}}}],"id":"eb850831-fe4c-4fda-9294-df765f377e3e","savedPayload":{"position":{"x":19343.819926092237,"y":10247.147891234601},"targetPosition":{"x":19455.789672910934,"y":10810.57690559178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 70","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","id":"871bf7be-3e85-43f3-9537-fae86fe3f821","savedPayload":{"position":{"x":19228.620105606136,"y":9610.042785048558},"targetPosition":{"x":19341.61467844527,"y":9882.998466546063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"692686f4-d4a0-4fd3-b9ac-32ced49b8633","savedPayload":{"position":{"x":19341.61467844527,"y":9882.998466546063},"targetPosition":{"x":19467.419521032207,"y":10186.402302964583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 70","id":"4742a27b-2eb2-4a18-835e-6fbefb47bdcd","savedPayload":{"position":{"x":19467.42145376644,"y":9856.282661382107},"targetPosition":{"x":19467.419521032207,"y":10186.402302964583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"4f226496-b6a0-436d-97c5-d6e61dd00c23"}}},{"type":"Polygon Vertex","name":"End 70","id":"57aca36d-e53c-428f-a961-00f95c636a8c","savedPayload":{"position":{"x":19593.84945834332,"y":9881.47457985397},"targetPosition":{"x":19467.419521032207,"y":10186.402302964583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"22287519-c930-4dfb-bb4a-298da4e32cdf"}}}],"id":"cd93957c-2562-4f27-b3c3-4278231b1241","savedPayload":{"position":{"x":19455.79304943531,"y":10236.103636541251},"targetPosition":{"x":19455.789672910934,"y":10810.57690559178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 80","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","id":"0a960c41-faa4-4456-8d7c-91215785612f","savedPayload":{"position":{"x":19364.63016164861,"y":9658.756134731633},"targetPosition":{"x":19498.427745983794,"y":9921.70609927639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d4446b75-1844-4114-9faf-ae3b5641e43d","savedPayload":{"position":{"x":19498.427745983794,"y":9921.70609927639},"targetPosition":{"x":19648.689119053535,"y":10217.37836884482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 80","id":"7b104c6b-0b09-4efe-9af7-21e18088158a","savedPayload":{"position":{"x":19751.576732928545,"y":9900.601922674641},"targetPosition":{"x":19648.689119053535,"y":10217.37836884482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"fb48eeab-d538-4fc5-81fe-dd916f749477"}}},{"type":"Polygon Vertex","name":"End 80","id":"4bf87284-559e-4154-93f5-988ea7755e80","savedPayload":{"position":{"x":19944.05844204344,"y":10066.676599623237},"targetPosition":{"x":19648.689119053535,"y":10217.37836884482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 80","id":"9a3c052a-a6b6-4392-b2fd-54151febb8f5"}}}],"id":"a25d52fa-a178-4454-8ebc-500572b38d04","savedPayload":{"position":{"x":19567.720797018916,"y":10247.136375120564},"targetPosition":{"x":19455.789672910934,"y":10810.57690559178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 100","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","id":"a169ba02-78c5-49d9-b212-236fb5e48bad","savedPayload":{"position":{"x":20391.011395300317,"y":10152.945926007289},"targetPosition":{"x":20226.45921520871,"y":10398.989456090903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b71ce594-e5f7-48f0-94a3-8f44ac26c01c","savedPayload":{"position":{"x":20226.45921520871,"y":10398.989456090903},"targetPosition":{"x":20045.05803605664,"y":10669.902947897246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 100","id":"6b947ced-abe6-41e4-8e11-a8777d52a977","savedPayload":{"position":{"x":20366.93962684802,"y":10606.09596063189},"targetPosition":{"x":20045.05803605664,"y":10669.902947897246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 100","id":"f3e69d47-f137-412e-a515-7dc262af7f8b"}}},{"type":"Polygon Vertex","name":"End 100","id":"9ff21949-3190-45a4-8b36-e6d8f291ea7f","savedPayload":{"position":{"x":20317.939375119055,"y":10852.143755336132},"targetPosition":{"x":20045.05803605664,"y":10669.902947897246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 100","id":"29103f63-7cd6-4005-bec7-a385cf373eaf"}}}],"id":"a4dacfad-5901-4ba9-a728-132f0d452680","savedPayload":{"position":{"x":19675.506343477173,"y":10279.841909973109},"targetPosition":{"x":19455.789672910934,"y":10810.57690559178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 0-20","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.25,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.35,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","id":"e740b91d-1364-49ea-9878-df9cddbfc805","savedPayload":{"position":{"x":19518.222532167067,"y":9731.40536041631},"targetPosition":{"x":19648.323659651225,"y":9995.861082967765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6c079371-854a-41cb-82cb-3066463c51c5","savedPayload":{"position":{"x":19648.323659651225,"y":9995.861082967765},"targetPosition":{"x":19791.66661928203,"y":10287.777332747755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 0","id":"fbfe5ddc-2890-4be2-9c46-446bbb49cde0","savedPayload":{"position":{"x":19813.10205713175,"y":9963.453546909719},"targetPosition":{"x":19791.66661928203,"y":10287.777332747755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"e894f129-e11d-4ec6-8d76-50d39dab5dd5"}}},{"type":"Polygon Vertex","name":"End 0","id":"007fe5a0-0fac-4958-8c95-aba6e504e4d5","savedPayload":{"position":{"x":19972.2875904969,"y":10017.553401120027},"targetPosition":{"x":19791.66661928203,"y":10287.777332747755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"93278c60-4529-454e-989f-771ce3beb3c1"}}},{"type":"Polygon Vertex","name":"End 20","id":"3d285cd7-11f6-4e20-969b-eec492cab81e","savedPayload":{"position":{"x":20083.25002181657,"y":10144.053046371871},"targetPosition":{"x":19791.66661928203,"y":10287.777332747755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"ce6a0861-712e-4cf4-81e9-92ab6c8a5f4d"}}},{"type":"Polygon Vertex","name":"Begin 20","id":"779ba063-a7c9-4fa8-bb93-a64917dacbd4","savedPayload":{"position":{"x":20117.94512960221,"y":10308.912316460204},"targetPosition":{"x":19791.66661928203,"y":10287.777332747755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"59d32253-47b9-4227-bc5b-e2f1d5416844"}}}],"id":"518be834-5410-4eee-afc5-369ec833199c","savedPayload":{"position":{"x":19774.850575953256,"y":10332.927361421187},"targetPosition":{"x":19455.789672910934,"y":10810.57690559178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 20-30","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.15,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","id":"42dcb813-82a7-439d-96db-e1838746a098","savedPayload":{"position":{"x":19760.42823393383,"y":9905.338920048867},"targetPosition":{"x":19798.405170492842,"y":10048.519459409485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"057fa196-0288-45ff-ba35-62465f6ea603","savedPayload":{"position":{"x":19798.405170492842,"y":10048.519459409485},"targetPosition":{"x":19881.94551963728,"y":10362.365445563868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 20","id":"1f65bf18-a749-4221-880b-dc1e2e573ed7","savedPayload":{"position":{"x":19966.572648710124,"y":10047.291674436297},"targetPosition":{"x":19881.94551963728,"y":10362.365445563868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"59d32253-47b9-4227-bc5b-e2f1d5416844"}}},{"type":"Polygon Vertex","name":"End 20","id":"4a723692-de81-4fa5-9292-88573a34b816","savedPayload":{"position":{"x":20111.56567883134,"y":10132.843666168439},"targetPosition":{"x":19881.94551963728,"y":10362.365445563868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"ce6a0861-712e-4cf4-81e9-92ab6c8a5f4d"}}},{"type":"Polygon Vertex","name":"End 30","id":"ada9ee7e-b823-452e-aab3-2bbb4bf10cc3","savedPayload":{"position":{"x":20197.318337138444,"y":10277.84419239403},"targetPosition":{"x":19881.94551963728,"y":10362.365445563868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4e7322f7-3bfa-41cc-b9a0-c5dcbe16e83e"}}},{"type":"Polygon Vertex","name":"Begin 30","id":"5d96b5d5-7e34-4a43-891b-273fb9bbf4b6","savedPayload":{"position":{"x":20195.541241064795,"y":10445.98064766584},"targetPosition":{"x":19881.94551963728,"y":10362.365445563868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"3ea0b783-3d43-47d1-90aa-99366cd09a7d"}}}],"id":"bd729215-749b-4893-b21e-fe8add8e3199","savedPayload":{"position":{"x":19861.917967246703,"y":10404.401532885191},"targetPosition":{"x":19455.789672910934,"y":10810.57690559178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 30-70","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.05,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","id":"48f54b6c-7cd5-4089-b6e2-1f39e2361be7","savedPayload":{"position":{"x":19913.606582813627,"y":9828.816091232315},"targetPosition":{"x":19932.58660925468,"y":10123.626591331044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"20728a48-6ba3-4bf8-b51e-bb57303594f2","savedPayload":{"position":{"x":19932.58660925468,"y":10123.626591331044},"targetPosition":{"x":19953.273367799105,"y":10447.433100239263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 30","id":"058eb800-ac91-44dd-8b28-6a740f6470ee","savedPayload":{"position":{"x":20097.047103601202,"y":10156.492392401606},"targetPosition":{"x":19953.273367799105,"y":10447.433100239263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"3ea0b783-3d43-47d1-90aa-99366cd09a7d"}}},{"type":"Polygon Vertex","name":"End 30","id":"d01decaf-72ca-41e6-aa58-d6dbe505fe29","savedPayload":{"position":{"x":20223.79011165938,"y":10266.998270322607},"targetPosition":{"x":19953.273367799105,"y":10447.433100239263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4e7322f7-3bfa-41cc-b9a0-c5dcbe16e83e"}}},{"type":"Polygon Vertex","name":"End 70","id":"f87349bc-dc97-46fd-a88f-a28ba9678a43","savedPayload":{"position":{"x":20277.927172037704,"y":10426.127614371257},"targetPosition":{"x":19953.273367799105,"y":10447.433100239263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"22287519-c930-4dfb-bb4a-298da4e32cdf"}}},{"type":"Polygon Vertex","name":"Begin 70","id":"fa0278c8-e861-4c72-8795-32186c329c89","savedPayload":{"position":{"x":20246.190880017177,"y":10591.899841795781},"targetPosition":{"x":19953.273367799105,"y":10447.433100239263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"4f226496-b6a0-436d-97c5-d6e61dd00c23"}}}],"id":"f95afd47-9495-44f4-bf5a-8577bd0750c5","savedPayload":{"position":{"x":19933.35750244505,"y":10491.502552167494},"targetPosition":{"x":19455.789672910934,"y":10810.57690559178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 70-80","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.15,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","id":"191e1de4-e807-46e0-9cac-5b0eb4df5b7d","savedPayload":{"position":{"x":20381.709570627972,"y":10055.532696443846},"targetPosition":{"x":20201.619593700863,"y":10290.089258804152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"baa9237a-41ad-49a1-b78d-664bcb893f79","savedPayload":{"position":{"x":20201.619593700863,"y":10290.089258804152},"targetPosition":{"x":20009.647594414688,"y":10553.226158840967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 70","id":"bdd3f8c1-1194-4472-a681-96a6ee1eedc0","savedPayload":{"position":{"x":20267.63521879908,"y":10350.799185336493},"targetPosition":{"x":20009.647594414688,"y":10553.226158840967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"4f226496-b6a0-436d-97c5-d6e61dd00c23"}}},{"type":"Polygon Vertex","name":"End 70","id":"5c4b0947-4269-4fc3-ae1f-c6707c0488d2","savedPayload":{"position":{"x":20312.595429504694,"y":10426.145327630038},"targetPosition":{"x":20009.647594414688,"y":10553.226158840967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"22287519-c930-4dfb-bb4a-298da4e32cdf"}}},{"type":"Polygon Vertex","name":"End 80","id":"c2c40046-c4c9-42de-887d-892ed868bc4e","savedPayload":{"position":{"x":20335.714289041825,"y":10509.174943597487},"targetPosition":{"x":20009.647594414688,"y":10553.226158840967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 80","id":"9a3c052a-a6b6-4392-b2fd-54151febb8f5"}}},{"type":"Polygon Vertex","name":"Begin 80","id":"e5d1db7f-bceb-4548-a136-bac0f2d23d33","savedPayload":{"position":{"x":20333.138218194686,"y":10612.22046650936},"targetPosition":{"x":20009.647594414688,"y":10553.226158840967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"fb48eeab-d538-4fc5-81fe-dd916f749477"}}}],"id":"b75a1367-e45d-4561-9cf9-b537eba7e103","savedPayload":{"position":{"x":19986.435139367088,"y":10590.949980935111},"targetPosition":{"x":19455.789672910934,"y":10810.57690559178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 80-100","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.25,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.35,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","id":"da7f5472-50e7-4083-86e9-5a24dede1557","savedPayload":{"position":{"x":20394.553933489373,"y":10347.585867129501},"targetPosition":{"x":20282.802695840954,"y":10445.344571997504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6ef84309-4ee8-44c5-a4a9-d5dd9634d09f","savedPayload":{"position":{"x":20282.802695840954,"y":10445.344571997504},"targetPosition":{"x":20043.356359903668,"y":10665.914379155207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 80","id":"fef200a2-c609-4684-9d4d-a84d720f1ee1","savedPayload":{"position":{"x":20335.888543904755,"y":10517.624578899597},"targetPosition":{"x":20043.356359903668,"y":10665.914379155207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"fb48eeab-d538-4fc5-81fe-dd916f749477"}}},{"type":"Polygon Vertex","name":"End 80","id":"dd767960-3de1-49ec-914a-f0b3d54e7786","savedPayload":{"position":{"x":20365.38268730262,"y":10600.27017521108},"targetPosition":{"x":20043.356359903668,"y":10665.914379155207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 80","id":"9a3c052a-a6b6-4392-b2fd-54151febb8f5"}}},{"type":"Polygon Vertex","name":"End 100","id":"6fbf425e-e7e4-481a-a14b-762d2879b614","savedPayload":{"position":{"x":20371.471627918956,"y":10686.334328948036},"targetPosition":{"x":20043.356359903668,"y":10665.914379155207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 100","id":"29103f63-7cd6-4005-bec7-a385cf373eaf"}}},{"type":"Polygon Vertex","name":"Begin 100","id":"41244682-e765-41f6-940a-3cced032f765","savedPayload":{"position":{"x":20348.759757520165,"y":10786.79740623872},"targetPosition":{"x":20043.356359903668,"y":10665.914379155207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 100","id":"f3e69d47-f137-412e-a515-7dc262af7f8b"}}}],"id":"e9077695-93a9-4ef5-ae32-3da768e946b1","savedPayload":{"position":{"x":20019.080201117118,"y":10699.371201943239},"targetPosition":{"x":19455.789672910934,"y":10810.57690559178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b824fc17-2864-430d-93f2-00d42d159b5a","savedPayload":{"position":{"x":19455.789672910934,"y":10810.57690559178},"targetPosition":{"x":19455.835654567913,"y":11383.5783425511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Stoch 14-3-3","code":"{ \n\"codeName\": \"Panel-Stoch-14-3-3\"\n}","panelData":[{"type":"Panel Data","name":"Slow Line","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.slowLine","id":"158086f9-9654-4e33-8292-6a9b7041526a","savedPayload":{"position":{"x":20358.810955478148,"y":10691.638509284905},"targetPosition":{"x":20155.51281433459,"y":10894.610495442164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c332ec98-c6fb-4eeb-a13a-2bda02958a9d","savedPayload":{"position":{"x":20155.51281433459,"y":10894.610495442164},"targetPosition":{"x":19952.31526228936,"y":11097.413080355063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fast Line","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.fastLine","id":"474d9024-e7ff-46d2-a46f-830c5e55ec30","savedPayload":{"position":{"x":20507.364953035714,"y":10949.377032756152},"targetPosition":{"x":20229.87473213047,"y":11023.528733393885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8249ea87-9d41-431a-b827-c3153fcddd0b","savedPayload":{"position":{"x":20229.87473213047,"y":11023.528733393885},"targetPosition":{"x":19952.31526228936,"y":11097.413080355063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"af6182b0-9814-4ebe-bbe7-7a455d8a6a0e","savedPayload":{"position":{"x":19952.31526228936,"y":11097.413080355063},"targetPosition":{"x":19455.835654567913,"y":11383.5783425511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6a85fbb1-5a99-4ccc-93e8-092f5dbf6c4a","savedPayload":{"position":{"x":19455.835654567913,"y":11383.5783425511},"targetPosition":{"x":19168.98804935644,"y":11880.39931270703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3fcd7ef7-fe1a-42f4-9339-a3bda6859248","savedPayload":{"position":{"x":19168.98804935644,"y":11880.39931270703},"targetPosition":{"x":18881.571706269082,"y":12398.127167364633},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"511bef1e-62d8-4ff9-8d87-15bd0d3d630c","savedPayload":{"position":{"x":18881.571706269082,"y":12398.127167364633},"targetPosition":{"x":18881.571706269082,"y":12398.127167364633},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}]} \ No newline at end of file diff --git a/Super-Scripts/Masters.json b/Super-Scripts/Masters.json deleted file mode 100644 index 68d89e41b..000000000 --- a/Super-Scripts/Masters.json +++ /dev/null @@ -1 +0,0 @@ -{"type":"Super Scripts","name":"Masters","code":"{ \n\"codeName\": \"Masters\"\n}","scriptsLibrary":{"type":"Scripts Library","name":"New Scripts Library","masterScripts":[{"type":"Master Script","name":"Setup Market","templateScripts":[{"type":"Template Script","name":"Install Single Market Data","templateStructure":{"type":"Template Structure","name":"New Template Structure","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Candles","id":"24c5f795-acf3-43c3-99ee-ddb521b082f4","savedPayload":{"position":{"x":39655.39345377463,"y":28084.121285348076},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"204ec959-0861-486a-aa2a-276dbf48f775","savedPayload":{"position":{"x":39619.08803001109,"y":27971.34006849996},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"90ee9733-ab7e-41a0-ac78-4a7661a27017","savedPayload":{"position":{"x":39594.11393185164,"y":27855.840877332517},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"9ade8e93-9071-422b-8cce-7a50d6dad739","savedPayload":{"position":{"x":39580.59887306321,"y":27738.507421368748},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"b5ef2cf7-3d35-45ec-848c-31970b59c04e","savedPayload":{"position":{"x":39578.655464896365,"y":27620.63069875915},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"1c3881ca-24b3-4cc9-b16b-9db7aa2b4c24","savedPayload":{"position":{"x":39588.297198778826,"y":27502.946480135615},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"92eec33b-86be-4b73-899f-e9550f7b0df3","savedPayload":{"position":{"x":39609.428887621216,"y":27386.77785099828},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"4b69df71-9091-4d22-9b0d-571304297033","savedPayload":{"position":{"x":39641.84608404141,"y":27273.24280350331},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"8a5f7e27-9ca5-4d6e-b6b9-2d6cbdda8040","savedPayload":{"position":{"x":39685.2360649887,"y":27163.433854438405},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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","id":"ccd9c3fd-3382-4fea-8798-a29b04efc09e","savedPayload":{"position":{"x":39739.18066448831,"y":27058.407968059906},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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","id":"aebc2010-a6e2-436d-8cc6-96eb0689330d","savedPayload":{"position":{"x":39803.16019594351,"y":26959.1762369918},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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":"Popular EMAs","id":"0fd4ef59-77b4-48cc-b00e-6a529a05cb0c","savedPayload":{"position":{"x":39876.55840037216,"y":26866.694054096202},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"802917a7-816b-4e4c-bbb6-a0eaf9eb7429","savedPayload":{"position":{"x":39958.66834477317,"y":26781.851861425766},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"9109bfcb-70e7-4cf8-9047-da9567668082","savedPayload":{"position":{"x":40048.69920292061,"y":26705.466552453436},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"519a89d4-75bb-4c33-a63d-d65c9defbd12","savedPayload":{"position":{"x":40145.78385240617,"y":26638.273605375165},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"6ae3a0ab-86cf-4e81-b415-5775dfcb1d9c","savedPayload":{"position":{"x":40248.98721974834,"y":26580.920017944973},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"f4d7169e-8c26-48ae-967d-529a8ecab1f1","savedPayload":{"position":{"x":40357.31529765827,"y":26533.95809992029},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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":"Base5 SMAs","id":"bae79086-c788-4b79-a9af-952326480b34","savedPayload":{"position":{"x":40469.72474382882,"y":26497.840166222424},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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":"Bollinger Channels","id":"b4847c45-613e-4862-98d3-34b28fa70fd7","savedPayload":{"position":{"x":40585.132955318084,"y":26472.914171771416},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"05766faf-47e0-493a-9459-a470a6691138","savedPayload":{"position":{"x":40702.42850753783,"y":26459.42033593334},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"c5d7a5f6-2924-46a6-8d04-1100a5088da9","savedPayload":{"position":{"x":40820.28557415008,"y":26457.488926076465},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"db37547e-f473-4dca-9bae-60fb37c724a5","savedPayload":{"position":{"x":40937.95845139182,"y":26467.13880986452},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"0ec41f8a-6170-439b-9513-7c4b2a835c6d","savedPayload":{"position":{"x":41054.120384899,"y":26488.277064496815},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"03d654c7-5641-4408-bf15-54ee7203d80b","savedPayload":{"position":{"x":41167.65178678811,"y":26520.700545782674},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"7b7c2f35-514c-4ad4-bdc5-7cb462020ac1","savedPayload":{"position":{"x":41277.4594798642,"y":26564.097566374792},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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","id":"4b1fcdaf-3bf1-4bdb-973d-42facd0b7104","savedPayload":{"position":{"x":41382.48641024106,"y":26618.051155654128},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"6f3bbf18-00d5-4f5a-9c48-a7e5e73e72e2","savedPayload":{"position":{"x":41481.72199276818,"y":26682.043494609432},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"bbe5af35-1f9e-4a31-9b5a-47ee5999e97c","savedPayload":{"position":{"x":41574.21247985582,"y":26755.461785010735},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"4e208ac6-227a-4c6d-b548-df9a06a96f2a","savedPayload":{"position":{"x":41659.072595416554,"y":26837.602086697607},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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"}}},{"type":"Data Product","name":"Resistances","id":"cb998af9-8b76-4163-ba59-a354e85e625b","savedPayload":{"position":{"x":41734.78246123321,"y":26926.742016325188},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Resistances","id":"7a734501-a0fb-4305-803e-7e95d477c513"}}},{"type":"Data Product","name":"Supports","id":"935f01dc-bbe2-4931-a0d9-19f820cf04c1","savedPayload":{"position":{"x":41803.59685318991,"y":27026.194745818015},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Supports","id":"bc3c43de-6312-47d4-ae3d-0c95c1b039e0"}}}],"id":"3c9e658e-9350-4b43-b95c-1dc9fbb7de7b","savedPayload":{"position":{"x":40780.522571395006,"y":27659.757222847853},"targetPosition":{"x":41312.42037870206,"y":28738.475444229476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"922126c5-3b95-4c76-90ce-c85435c49624","savedPayload":{"position":{"x":41312.452880728124,"y":28738.45103113137},"targetPosition":{"x":41578.71473951283,"y":29277.75973906997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"79c82a1e-4c4e-4622-b762-4ccbfdac46b7","savedPayload":{"position":{"x":41423.01737185227,"y":28696.77991254939},"targetPosition":{"x":41578.71473951283,"y":29277.75973906997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Session Independent Data","name":"New Session Independent Data","id":"bf04ccea-266d-4115-b50e-fefdf29b873a"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.singleMarketData === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Single Market Data.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Session Independent Data') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Session Independent Data.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.singleMarketData)\n setup(templateClone, target, exchange, 'Exchange Data Products', 'singleMarketData')\n templateClone.payload.referenceParent = market\n\n return templateClone\n }\n}","id":"255fc8f9-413a-4334-b6f5-d944d57fb27c","savedPayload":{"position":{"x":41539.572203582546,"y":28677.555510830884},"targetPosition":{"x":41578.71473951283,"y":29277.75973906997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4dd2897c-d7e2-4fa2-a92f-4d0cf49a6370","savedPayload":{"position":{"x":41578.71473951283,"y":29277.75973906997},"targetPosition":{"x":41890.14038179374,"y":30439.527507516414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Install Back WHB Session Reference","templateStructure":{"type":"Template Structure","name":"New Template Structure","sessionReferences":{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"169aa57f-d46b-4979-b8a2-df6ba21eabc6","savedPayload":{"position":{"x":40971.62547458223,"y":28704.67815778764},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"41351410-0495-4419-8a78-babed3a2f25c","savedPayload":{"position":{"x":40739.2805936536,"y":28612.68448755448},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"fc43d350-5a2e-4948-8279-6444a15b39ed","savedPayload":{"position":{"x":40648.47472250254,"y":28380.33960662585},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"8f8c543a-5add-460f-9767-06cc069e142b","savedPayload":{"position":{"x":40749.374350272024,"y":28158.088482315645},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"0497555c-1024-4c2c-8be4-9c8917bed11f","savedPayload":{"position":{"x":40971.62547458223,"y":28380.33960662585},"targetPosition":{"x":41034.51136563778,"y":28696.544935681453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5d4fb545-1392-4651-8f54-32b3b0b2278f","savedPayload":{"position":{"x":41035.68589463498,"y":28694.595676926525},"targetPosition":{"x":41161.48169175592,"y":29327.013855736088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"726cd3f8-cfce-4e06-8e13-f4b2523e6e57","savedPayload":{"position":{"x":41772.65093280171,"y":28646.807955048214},"targetPosition":{"x":41890.128901652744,"y":29236.71585692822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"d5bc03d5-baeb-4ab0-91a6-cc61d0122474","savedPayload":{"position":{"x":41890.12930892233,"y":28635.18613310936},"targetPosition":{"x":41890.128901652744,"y":29236.71585692822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Session Based Data","name":"New Session Based Data","id":"29ca14e5-dabe-470a-be64-ed7996bd1e55"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.sessionReferences === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Session Reference.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Session Based Data') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Session Based Data.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.sessionReferences)\n \n setup(templateClone, target, exchange, 'Exchange Sessions', 'sessionReferences')\n templateClone.singleMarketData.payload.referenceParent = market\n\n templateClone.templateType = 'Backtesting Session'\n return templateClone\n }\n}","id":"5201c9bb-45d3-4066-970d-56d13eb6905e","savedPayload":{"position":{"x":42007.53909316859,"y":28646.791845625325},"targetPosition":{"x":41890.128901652744,"y":29236.71585692822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"caa968ef-9a38-4fb4-998f-cb7e27a3eedd","savedPayload":{"position":{"x":41890.128901652744,"y":29236.71585692822},"targetPosition":{"x":41890.14038179374,"y":30439.527507516414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Install Paper WHB Session Reference","templateStructure":{"type":"Template Structure","name":"New Template Structure","sessionReferences":{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"fe43a58c-8d97-4f98-ba33-6328c1bcb7a7","savedPayload":{"position":{"x":41557.474267378886,"y":28704.538380895512},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"447096dc-d9b3-472d-985e-7810458651d2","savedPayload":{"position":{"x":41328.36437304013,"y":28614.669001956987},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"87f61b2b-cd47-42db-b8a8-2d2b84c30712","savedPayload":{"position":{"x":41238.701960314706,"y":28385.55910761823},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"fe0ed876-65d6-488c-8572-86708cd2f4b8","savedPayload":{"position":{"x":41328.657032916315,"y":28156.74187315566},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"4844333d-4238-412b-b2f3-403d78d1aaa8","savedPayload":{"position":{"x":41557.474267378886,"y":28385.55910761823},"targetPosition":{"x":41536.37709492533,"y":28707.266395142844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9bf71a35-9ee8-4679-89c7-e9894c3963cd","savedPayload":{"position":{"x":41538.15110500089,"y":28705.54204056541},"targetPosition":{"x":41495.97864513366,"y":29348.96944058102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f7b51fbd-c90d-4b5a-9242-9de2a40f4733","savedPayload":{"position":{"x":42240.40982433613,"y":28677.441521776378},"targetPosition":{"x":42201.34918584835,"y":29277.69269398605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"b7adb316-4430-4933-80ef-c8e239a947fc","savedPayload":{"position":{"x":42356.951494870984,"y":28696.641898991125},"targetPosition":{"x":42201.34918584835,"y":29277.69269398605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Session Based Data","name":"New Session Based Data","id":"29ca14e5-dabe-470a-be64-ed7996bd1e55"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.sessionReferences === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Session Reference.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Session Based Data') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Session Based Data.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.sessionReferences)\n \n setup(templateClone, target, exchange, 'Exchange Sessions', 'sessionReferences')\n templateClone.singleMarketData.payload.referenceParent = market\n\n templateClone.templateType = 'Paper Trading Session'\n return templateClone\n }\n}","id":"09fd8aa3-006f-4c13-8084-78da7f7ed4ca","savedPayload":{"position":{"x":42467.48260549182,"y":28738.277097634553},"targetPosition":{"x":42201.34918584835,"y":29277.69269398605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ce8531c2-42df-4c54-b4ea-48d7ca9861e5","savedPayload":{"position":{"x":42201.34918584835,"y":29277.69269398605},"targetPosition":{"x":41890.14038179374,"y":30439.527507516414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Install Live WHB Session Reference","templateStructure":{"type":"Template Structure","name":"New Template Structure","sessionReferences":{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"22bcc102-5751-444e-a609-bf050743c987","savedPayload":{"position":{"x":42124.2954678251,"y":28863.166820214137},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"a97553e6-85bd-4f7d-b7a3-6235e540e1a8","savedPayload":{"position":{"x":41899.82203310804,"y":28765.34236295704},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"6adfe7ca-0353-4506-a1ac-09bd6b6a7c86","savedPayload":{"position":{"x":41803.41381185934,"y":28540.86892823998},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"9136e76e-e3e4-48c6-a6bd-e1a64176c7a3","savedPayload":{"position":{"x":41897.44019113757,"y":28314.01365155245},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"f267f52b-25be-4822-90b7-88bf3121d009","savedPayload":{"position":{"x":42124.2954678251,"y":28540.86892823998},"targetPosition":{"x":42020.66210112073,"y":28846.1629818523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a095996a-c30e-45e8-8598-7b6010b2095b","savedPayload":{"position":{"x":42020.66210112073,"y":28846.1629818523},"targetPosition":{"x":41813.395367712,"y":29456.751089076944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9df1f12f-0030-4c41-98e2-d07482ff8d22","savedPayload":{"position":{"x":42684.61234689323,"y":28828.20083898273},"targetPosition":{"x":42491.49072073263,"y":29397.8621330702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"b5554d40-5014-45ec-b996-e74e05c5e872","savedPayload":{"position":{"x":42792.21171122186,"y":28876.91139330717},"targetPosition":{"x":42491.49072073263,"y":29397.8621330702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Session Based Data","name":"New Session Based Data","id":"29ca14e5-dabe-470a-be64-ed7996bd1e55"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.sessionReferences === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Session Reference.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Session Based Data') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Session Based Data.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.sessionReferences)\n \n setup(templateClone, target, exchange, 'Exchange Sessions', 'sessionReferences')\n templateClone.singleMarketData.payload.referenceParent = market\n\n templateClone.templateType = 'Live Trading Session'\n return templateClone\n }\n}","id":"ade4b7d5-1066-43fa-b6af-e2d1213c4d14","savedPayload":{"position":{"x":42888.19927444742,"y":28945.736615872695},"targetPosition":{"x":42491.49072073263,"y":29397.8621330702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3e9a2343-49bb-43d5-adda-0072b01313f1","savedPayload":{"position":{"x":42491.49072073263,"y":29397.8621330702},"targetPosition":{"x":41890.14038179374,"y":30439.527507516414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Install Forward WHB Session Reference","templateStructure":{"type":"Template Structure","name":"New Template Structure","sessionReferences":{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"b03fa95d-fb4d-4cef-9590-70bcf0034123","savedPayload":{"position":{"x":42492.63963403888,"y":28500.7397102676},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"352b1a8a-1d74-44ff-b9f3-411f337db931","savedPayload":{"position":{"x":42710.36396962775,"y":28492.07047492605},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"c7ed2f21-cd86-44fe-a946-1dc00e5f8fb3","savedPayload":{"position":{"x":42891.7169300037,"y":28613.377753949273},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"13d4f731-4ee0-4a24-810a-f4760432e33e","savedPayload":{"position":{"x":42967.139262708275,"y":28818.147267745622},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"a70a92df-4abe-421d-92b2-ef70a756441c","savedPayload":{"position":{"x":42636.198275976094,"y":28799.555013396635},"targetPosition":{"x":42436.14135357761,"y":29099.04809298164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3a96fe18-f607-4a4e-9921-31b507475885","savedPayload":{"position":{"x":42438.1614413147,"y":29100.30420086799},"targetPosition":{"x":42080.37565816827,"y":29635.83788162232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f6114149-90fb-45a7-a42a-6ab052a9980a","savedPayload":{"position":{"x":43074.64510700322,"y":29088.795420231665},"targetPosition":{"x":42740.63494825482,"y":29589.031414236302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"315b67c6-84cf-4370-a4fd-a8209c2532c9","savedPayload":{"position":{"x":43165.96984719894,"y":29163.695538605894},"targetPosition":{"x":42740.63494825482,"y":29589.031414236302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Session Based Data","name":"New Session Based Data","id":"29ca14e5-dabe-470a-be64-ed7996bd1e55"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.sessionReferences === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Session Reference.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Session Based Data') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Session Based Data.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.sessionReferences)\n \n setup(templateClone, target, exchange, 'Exchange Sessions', 'sessionReferences')\n templateClone.singleMarketData.payload.referenceParent = market\n\n templateClone.templateType = 'Forward Testing Session'\n return templateClone\n }\n}","id":"8635fe81-b9b5-4a95-a6d0-950584c2787c","savedPayload":{"position":{"x":43240.87263989456,"y":29255.01973980808},"targetPosition":{"x":42740.63494825482,"y":29589.031414236302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3bb7924d-49b4-4748-83f5-5067dd8f3ef5","savedPayload":{"position":{"x":42740.63494825482,"y":29589.031414236302},"targetPosition":{"x":41890.14038179374,"y":30439.527507516414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Install Testing Environment Task Manager","templateStructure":{"type":"Template Structure","name":"New Template Structure","taskManagers":{"type":"Task Manager","name":"Paper & Backtesting Sessions","tasks":[{"type":"Task","name":"Paper Trading WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Paper Trading Session","name":"Paper WHB","code":"{\n\"folderName\": \"Paper-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"7d2a4605-5be7-4b12-9761-0087ce656080","savedPayload":{"position":{"x":43314.347355679805,"y":27886.180495266573},"targetPosition":{"x":43579.28928007096,"y":27702.1138119903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0\n}","id":"46c16e25-d21d-4ca8-a528-ae7bf85e9d3f","savedPayload":{"position":{"x":43270.11105487198,"y":27610.06167977048},"targetPosition":{"x":43579.28928007096,"y":27702.1138119903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"e645ba22-2ba3-4c87-9d62-748477e055dc","savedPayload":{"position":{"x":43458.610110666305,"y":27403.132156057905},"targetPosition":{"x":43579.28928007096,"y":27702.1138119903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"9b0e2fa1-fb9e-4854-9657-7157843a0a56","savedPayload":{"position":{"x":43737.762993615695,"y":27421.44478260165},"targetPosition":{"x":43579.28928007096,"y":27702.1138119903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"072fc7e2-ca96-4c0a-963c-d8697f26a12c","savedPayload":{"position":{"x":43897.65037204082,"y":27651.219207475497},"targetPosition":{"x":43579.28928007096,"y":27702.1138119903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"28139c87-d8fb-49e6-92ce-f826f0ef32d3","savedPayload":{"position":{"x":43817.740726622455,"y":27919.157103391895},"targetPosition":{"x":43579.28928007096,"y":27702.1138119903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0e80ef27-72f6-42e9-98bd-2266ad8d0902","savedPayload":{"position":{"x":43579.28928007096,"y":27702.1138119903},"targetPosition":{"x":43558.15104818431,"y":28023.96596801331},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"43096f38-2d07-4536-a8de-c1d6dc52e5af","savedPayload":{"position":{"x":43558.15104818431,"y":28023.96596801331},"targetPosition":{"x":43537.2392391117,"y":28345.180697797186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"c169326d-c842-452b-a9b7-e8658e31dcd4","savedPayload":{"position":{"x":43826.45361245783,"y":28203.054822784812},"targetPosition":{"x":43537.2392391117,"y":28345.180697797186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"67daf900-abb9-4d94-b86b-85ec5820c311","savedPayload":{"position":{"x":43537.2392391117,"y":28345.180697797186},"targetPosition":{"x":43358.19739378843,"y":28612.949684445317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"e1d9b766-0b00-478d-a179-b4d030811a17","savedPayload":{"position":{"x":43358.19739378843,"y":28612.949684445317},"targetPosition":{"x":43148.07377003864,"y":28927.454634128168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"10914881-2af7-4326-9a48-eb50a5b83b21","savedPayload":{"position":{"x":43148.247239305325,"y":28927.248338917063},"targetPosition":{"x":42790.1695410171,"y":29463.444388464814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Backtesting WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Backtesting Session","name":"Back WHB","code":"{\n\"folderName\": \"Back-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5\n}","id":"58289171-cb5f-482c-b5f6-445eb6dd33bf","savedPayload":{"position":{"x":44036.02698339722,"y":28363.366059104726},"targetPosition":{"x":44357.202378679365,"y":28336.579675132554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{}","id":"59fd49b3-e491-4029-9dae-12cf0a0e48e5","savedPayload":{"position":{"x":44135.88796016322,"y":28102.124337260877},"targetPosition":{"x":44357.202378679365,"y":28336.579675132554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"initialDatetime\": \"2019-01-01\",\n\"finalDatetime\": \"2020-12-31\"\n}","id":"7bd10192-7a52-4995-98aa-e16129827ca8","savedPayload":{"position":{"x":44402.36557610739,"y":28017.15274644697},"targetPosition":{"x":44357.202378679365,"y":28336.579675132554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"59764b94-aa9f-462a-be17-5b110e18609a","savedPayload":{"position":{"x":44635.11601984425,"y":28172.691104702066},"targetPosition":{"x":44357.202378679365,"y":28336.579675132554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"f72c1a53-9e2e-49d5-a07d-90d7ab53c6cf","savedPayload":{"position":{"x":44658.68970970164,"y":28451.428632796116},"targetPosition":{"x":44357.202378679365,"y":28336.579675132554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"3f249546-8932-42c0-a779-b4142cb03d17","savedPayload":{"position":{"x":44455.41819917701,"y":28643.69425984277},"targetPosition":{"x":44357.202378679365,"y":28336.579675132554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c70a07e-67d1-4157-8524-448842327782","savedPayload":{"position":{"x":44357.202378679365,"y":28336.579675132554},"targetPosition":{"x":44178.11719301108,"y":28604.57168539026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"58ad6731-33c6-4a8f-8bfd-fbd40d7aa8d0","savedPayload":{"position":{"x":44178.11719301108,"y":28604.57168539026},"targetPosition":{"x":43999.15712266918,"y":28872.29629503109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"3a49b8dd-94b8-4b8f-9c0d-a140ba4526a8","savedPayload":{"position":{"x":44320.91170982664,"y":28893.613213044515},"targetPosition":{"x":43999.15712266918,"y":28872.29629503109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"649950c4-79f9-4d35-ba72-a96d67fb9278","savedPayload":{"position":{"x":43999.15712266918,"y":28872.29629503109},"targetPosition":{"x":43710.28876756263,"y":29014.513498728833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"ef610792-0e38-40b6-8d28-41b6b8d76cb7","savedPayload":{"position":{"x":43710.28876756263,"y":29014.513498728833},"targetPosition":{"x":43370.93380625043,"y":29181.70054572794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"13ceeef0-8a9f-4da9-a4ce-43bc32323c47","savedPayload":{"position":{"x":43368.53019880899,"y":29178.408421637265},"targetPosition":{"x":42790.1695410171,"y":29463.444388464814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"e4b004e5-d078-435b-896e-bcbec6684a4c","savedPayload":{"position":{"x":42623.940516318515,"y":29608.370805879204},"targetPosition":{"x":42301.51227538709,"y":29890.981539114837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"d1632ba7-4823-4174-9caf-8979360c7399","savedPayload":{"position":{"x":43383.9329297536,"y":29441.46216514682},"targetPosition":{"x":42931.807057773796,"y":29838.171591076367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"cce4bcd5-fa0e-4dda-82a7-28cbf76432a4","savedPayload":{"position":{"x":43452.759505915485,"y":29537.44718063196},"targetPosition":{"x":42931.807057773796,"y":29838.171591076367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Testing Environment","name":"New Testing Environment","id":"2ae685a1-25c6-4bd5-b559-d83e373e8d45"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.taskManagers === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Task Manager.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Testing Environment') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Testing Environment.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.taskManagers)\n \n setup(templateClone, target, exchange, 'Exchange Tasks', 'taskManagers')\n for (let i = 0; i < templateClone.tasks.length; i++) {\n let task = templateClone.tasks[i]\n if (task.bot !== undefined) {\n if (task.bot.processes !== undefined) {\n for (let j = 0; j < task.bot.processes.length; j++) {\n let process = task.bot.processes[j]\n if (process.marketReference !== undefined) {\n process.marketReference.payload.referenceParent = market\n }\n if (process.session !== undefined) {\n if (process.session.parameters !== undefined) {\n if (process.session.parameters.baseAsset !== undefined) {\n findExchangeAccountAsset(process.session.parameters.baseAsset, superAction.payload.parentNode.baseAsset)\n }\n if (process.session.parameters.quotedAsset !== undefined) {\n findExchangeAccountAsset(process.session.parameters.quotedAsset, superAction.payload.parentNode.quotedAsset)\n }\n\n function findExchangeAccountAsset(taskAsset, marketAsset) {\n for (let k = 0; k < superAction.payload.parentNode.payload.parentNode.payload.parentNode.exchangeAccounts.userAccounts.length; k++) {\n let userAccount = superAction.payload.parentNode.payload.parentNode.payload.parentNode.exchangeAccounts.userAccounts[k]\n let found = false\n if (userAccount.userAssets !== undefined) {\n for (let m = 0; m < userAccount.userAssets.assets.length; m++) {\n let asset = userAccount.userAssets.assets[m]\n if (asset.payload.referenceParent !== undefined) {\n if (asset.payload.referenceParent.id === marketAsset.payload.referenceParent.id) {\n taskAsset.payload.referenceParent = asset\n found = true\n break\n }\n }\n }\n }\n if (found === true) { break }\n }\n }\n }\n }\n }\n }\n }\n }\n\n return templateClone\n }\n}","id":"49b39b49-1d4c-405c-a9f8-955e0ecc9a71","savedPayload":{"position":{"x":43501.47288880676,"y":29645.046577239078},"targetPosition":{"x":42931.807057773796,"y":29838.171591076367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"414cdf9f-dc5b-4c23-ac5c-0e7a098b2143","savedPayload":{"position":{"x":42931.807057773796,"y":29838.171591076367},"targetPosition":{"x":41890.14038179374,"y":30439.527507516414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Install Production Environment Task Manager","templateStructure":{"type":"Template Structure","name":"New Template Structure","taskManagers":{"type":"Task Manager","name":"Fwd & Live Sessions","tasks":[{"type":"Task","name":"Fwd Testing WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Forward Testing Session","name":"Fwd WHB","code":"{\n\"folderName\": \"Fwd-WHB\",\n\"balancePercentage\": 10\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"19a13131-9554-43ef-860b-d994b9804a0e","savedPayload":{"position":{"x":43949.02209402912,"y":28514.744495850893},"targetPosition":{"x":44252.09762841825,"y":28406.000583471792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0\n}","id":"00ee3b70-7e94-4b71-aa64-05f6a699b080","savedPayload":{"position":{"x":43977.81112139866,"y":28236.59236923798},"targetPosition":{"x":44252.09762841825,"y":28406.000583471792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"8d94c05a-b82d-4fd9-8552-dcf19fb01ba1","savedPayload":{"position":{"x":44213.44333414086,"y":28085.505562610808},"targetPosition":{"x":44252.09762841825,"y":28406.000583471792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"e6e657e8-1049-40e7-aeec-b57429e34a59","savedPayload":{"position":{"x":44478.339217712455,"y":28175.492208004023},"targetPosition":{"x":44252.09762841825,"y":28406.000583471792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"57de0f1c-8cef-462a-bb88-764cfec67516","savedPayload":{"position":{"x":44573.309327218114,"y":28438.61215850976},"targetPosition":{"x":44252.09762841825,"y":28406.000583471792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"70c32855-5085-4e45-be3c-cfdb212ef266","savedPayload":{"position":{"x":44426.715336862566,"y":28676.91519870268},"targetPosition":{"x":44252.09762841825,"y":28406.000583471792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c5989e16-cde7-414d-9296-e28d805e216a","savedPayload":{"position":{"x":44252.09762841825,"y":28406.000583471792},"targetPosition":{"x":44148.7422061206,"y":28711.062917859083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"47651cad-aee5-405e-9d40-b4787c49d09e","savedPayload":{"position":{"x":44148.7422061206,"y":28711.062917859083},"targetPosition":{"x":44045.11308194365,"y":29016.158202849896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"5677d06d-c674-476d-a9a9-fc231616f478","savedPayload":{"position":{"x":44677.4538514425,"y":28891.11030273736},"targetPosition":{"x":44361.54848844125,"y":28953.513309627917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac49275e-4fe1-480f-be02-37665547a777","savedPayload":{"position":{"x":44361.54848844125,"y":28953.513309627917},"targetPosition":{"x":44045.11308194365,"y":29016.158202849896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"57deee32-22b7-4eec-8c9a-9b971d1aeb1a","savedPayload":{"position":{"x":44045.11308194365,"y":29016.158202849896},"targetPosition":{"x":43803.03273271357,"y":29228.27863694877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"8910dee0-b699-4a35-85ee-a2b3bbdac18e","savedPayload":{"position":{"x":43803.03273271357,"y":29228.27863694877},"targetPosition":{"x":43518.575577642056,"y":29477.69782587427},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"70fd8717-56d5-4ad8-b6ed-3050decedf19","savedPayload":{"position":{"x":43511.58765394764,"y":29481.161545691997},"targetPosition":{"x":43028.08397698985,"y":29905.30941876938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Live Trading WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Live Trading Session","name":"Live Trading WHB","code":"{\n\"folderName\": \"Live-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"1c0d2a17-cfd5-4eb4-8322-388ad7472fea","savedPayload":{"position":{"x":44511.69115776187,"y":29163.28766291385},"targetPosition":{"x":44827.797086714076,"y":29220.397958400925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0\n}","id":"43d84134-6e65-4ba9-93fb-0d8cb705e90a","savedPayload":{"position":{"x":44675.41944631209,"y":28937.14672767146},"targetPosition":{"x":44827.797086714076,"y":29220.397958400925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"16b7de55-dd83-4d7b-a1f8-45f28200a6f6","savedPayload":{"position":{"x":44954.1838102591,"y":28924.144732198314},"targetPosition":{"x":44827.797086714076,"y":29220.397958400925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"8c2d281c-7cd7-4f3e-8411-777eaec18ed5","savedPayload":{"position":{"x":45138.344553177376,"y":29134.142576562248},"targetPosition":{"x":44827.797086714076,"y":29220.397958400925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"dc21103a-37a9-4c67-a456-a3d35c14e9ad","savedPayload":{"position":{"x":45089.04722701449,"y":29408.829825358807},"targetPosition":{"x":44827.797086714076,"y":29220.397958400925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"c0a305e0-3a8b-428e-b005-117bd35270dc","savedPayload":{"position":{"x":44843.50938494748,"y":29541.60389632369},"targetPosition":{"x":44827.797086714076,"y":29220.397958400925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"325c8283-9e06-4711-9791-49994e1eb24f","savedPayload":{"position":{"x":44827.797086714076,"y":29220.397958400925},"targetPosition":{"x":44586.3641707821,"y":29432.324069027018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e70a2d0f-329a-410e-b3ed-fbf1968cac32","savedPayload":{"position":{"x":44586.3641707821,"y":29432.324069027018},"targetPosition":{"x":44344.60660428931,"y":29644.1656163963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"3fa5a1c3-ec84-4335-b318-7ed4c6e412a9","savedPayload":{"position":{"x":44953.33353749047,"y":29851.30281583057},"targetPosition":{"x":44649.290571908976,"y":29747.76088866544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"a6c24af9-77fd-4179-bb83-22928acce259","savedPayload":{"position":{"x":44649.290571908976,"y":29747.76088866544},"targetPosition":{"x":44344.60660428931,"y":29644.1656163963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6053e090-2c8e-4c1b-8eb4-eb3032f5cb9d","savedPayload":{"position":{"x":44344.60660428931,"y":29644.1656163963},"targetPosition":{"x":44029.65068525114,"y":29706.589257726668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"67b86977-56e8-4cb9-aa4f-0ae1b8d6d9f3","savedPayload":{"position":{"x":44029.65068525114,"y":29706.589257726668},"targetPosition":{"x":43658.77696384793,"y":29780.18960006669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8b8401d2-fbd3-4514-9a24-6236941f8572","savedPayload":{"position":{"x":43658.94710506227,"y":29780.009588673463},"targetPosition":{"x":43028.08397698985,"y":29905.30941876938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"122a1f16-06c2-4e63-9c9b-0b1b6532ef6e","savedPayload":{"position":{"x":42836.228026148114,"y":30000.0708266346},"targetPosition":{"x":42451.60692532848,"y":30189.593514413704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"l"}}},"id":"7154ffab-e458-47a9-98ab-716d7db899c2","savedPayload":{"position":{"x":43591.39888865664,"y":29862.167594940413},"targetPosition":{"x":43051.97981248752,"y":30128.30519050224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"efbaa91d-f097-4fda-b373-8b9394dae215","savedPayload":{"position":{"x":43633.03656791882,"y":29972.696256647498},"targetPosition":{"x":43051.97981248752,"y":30128.30519050224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Production Environment","name":"New Production Environment","id":"32656457-f603-416a-b805-546642094dc4"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.taskManagers === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Task Manager.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Production Environment') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Production Environment.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.taskManagers)\n\n setup(templateClone, target, exchange, 'Exchange Tasks', 'taskManagers')\n for (let i = 0; i < templateClone.tasks.length; i++) {\n let task = templateClone.tasks[i]\n if (task.bot !== undefined) {\n if (task.bot.processes !== undefined) {\n for (let j = 0; j < task.bot.processes.length; j++) {\n let process = task.bot.processes[j]\n if (process.marketReference !== undefined) {\n process.marketReference.payload.referenceParent = market\n }\n if (process.marketReference.keyInstance !== undefined) {\n process.marketReference.keyInstance.payload.referenceParent = key\n }\n if (process.session !== undefined) {\n if (process.session.parameters !== undefined) {\n if (process.session.parameters.baseAsset !== undefined) {\n findExchangeAccountAsset(process.session.parameters.baseAsset, superAction.payload.parentNode.baseAsset)\n }\n if (process.session.parameters.quotedAsset !== undefined) {\n findExchangeAccountAsset(process.session.parameters.quotedAsset, superAction.payload.parentNode.quotedAsset)\n }\n\n function findExchangeAccountAsset(taskAsset, marketAsset) {\n for (let k = 0; k < superAction.payload.parentNode.payload.parentNode.payload.parentNode.exchangeAccounts.userAccounts.length; k++) {\n let userAccount = superAction.payload.parentNode.payload.parentNode.payload.parentNode.exchangeAccounts.userAccounts[k]\n let found = false\n if (userAccount.userAssets !== undefined) {\n for (let m = 0; m < userAccount.userAssets.assets.length; m++) {\n let asset = userAccount.userAssets.assets[m]\n if (asset.payload.referenceParent !== undefined) {\n if (asset.payload.referenceParent.id === marketAsset.payload.referenceParent.id) {\n taskAsset.payload.referenceParent = asset\n found = true\n break\n }\n }\n }\n }\n if (found === true) { break }\n }\n }\n }\n }\n }\n }\n }\n }\n\n return templateClone\n }\n}","id":"7504b088-dc0b-4a67-b673-150524eb3430","savedPayload":{"position":{"x":43652.240225669295,"y":30089.23818002004},"targetPosition":{"x":43051.97981248752,"y":30128.30519050224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"aaef47a3-030f-4bba-a297-72973f84a6a7","savedPayload":{"position":{"x":43051.97981248752,"y":30128.30519050224},"targetPosition":{"x":41890.14038179374,"y":30439.527507516414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Install Masters Data Mining Tasks","templateStructure":{"type":"Template Structure","name":"New Template Structure","taskManagers":{"type":"Task Manager","name":"Masters","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"","id":"fa969ad9-f967-4c42-9a7b-e3ca5c53a2a4","savedPayload":{"position":{"x":44563.752766473845,"y":28726.51204419318},"targetPosition":{"x":44505.18351145028,"y":29022.185768977342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"7321618d-f188-4909-ae51-bff16e83e85c","savedPayload":{"position":{"x":44505.18351145028,"y":29022.185768977342},"targetPosition":{"x":44446.73000839822,"y":29317.919871736813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"66324e06-a787-4389-ba0a-f6158224532e","savedPayload":{"position":{"x":44446.73000839822,"y":29317.919871736813},"targetPosition":{"x":44388.44322497823,"y":29613.907569482504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"02b2b5ef-8fbb-4234-847b-9e9381e39e40","savedPayload":{"position":{"x":44388.44322497823,"y":29613.907569482504},"targetPosition":{"x":44272.00779942372,"y":30204.946262238485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"","id":"65a2cdb9-af06-458b-ae81-52a922d32874","savedPayload":{"position":{"x":44967.25960209239,"y":28881.73820503715},"targetPosition":{"x":44870.441375474875,"y":29167.311094532386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"fe3e9758-12d8-46da-a7e9-968a340f0ae5","savedPayload":{"position":{"x":44870.441375474875,"y":29167.311094532386},"targetPosition":{"x":44773.69751260277,"y":29452.87114374833},"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","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"","id":"5ba98b0e-e71d-4c91-a3b2-ca98f7bf3e1b","savedPayload":{"position":{"x":45453.09059939077,"y":28856.68518068597},"targetPosition":{"x":45113.42999916721,"y":29154.70174934311},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"e3fe5518-65d4-4413-9d1f-624025766f97","savedPayload":{"position":{"x":45113.42999916721,"y":29154.70174934311},"targetPosition":{"x":44773.69751260277,"y":29452.87114374833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"80415df6-6aca-42d5-b91d-6d5d6326f72f","savedPayload":{"position":{"x":44773.69751260277,"y":29452.87114374833},"targetPosition":{"x":44606.29852269913,"y":29703.881918996256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a2a8253d-ea54-431a-a623-627a9d80c96d","savedPayload":{"position":{"x":44606.29852269913,"y":29703.881918996256},"targetPosition":{"x":44272.00779942372,"y":30204.946262238485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"cb0330ef-a176-4e88-b09e-17c5c0ed8893","savedPayload":{"position":{"x":45421.3393568106,"y":29249.255430321416},"targetPosition":{"x":45222.451918474486,"y":29475.929696456333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"606c5e74-aa46-47d9-82c9-e1ff4a627ebe","savedPayload":{"position":{"x":45222.451918474486,"y":29475.929696456333},"targetPosition":{"x":45023.650296285596,"y":29702.579362584125},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"de1108b1-a773-4d54-b32b-b2931011f115","savedPayload":{"position":{"x":45879.664842377,"y":29411.96516858365},"targetPosition":{"x":45451.73624737675,"y":29557.237066035806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"6c0075a2-e741-45b7-8b6c-66d2faf95ad8","savedPayload":{"position":{"x":45451.73624737675,"y":29557.237066035806},"targetPosition":{"x":45023.650296285596,"y":29702.579362584125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"d29785c9-1789-45f5-88a1-17fa13a383bb","savedPayload":{"position":{"x":45023.650296285596,"y":29702.579362584125},"targetPosition":{"x":44772.77564042518,"y":29870.23031124894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"34ef19e0-5e75-4108-86e5-276f213deea5","savedPayload":{"position":{"x":44772.77564042518,"y":29870.23031124894},"targetPosition":{"x":44272.00779942372,"y":30204.946262238485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"","id":"936109e1-9d5f-4738-9eee-26e98c6675a9","savedPayload":{"position":{"x":45699.89387085827,"y":29762.487102244177},"targetPosition":{"x":45429.335053302355,"y":29895.69561846699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"69c2cfe4-3a79-45d0-8742-ff3f368431f6","savedPayload":{"position":{"x":45429.335053302355,"y":29895.69561846699},"targetPosition":{"x":45158.858744477104,"y":30028.883442023704},"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":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"","id":"75d8a16d-5ff3-4771-b32a-bf5ea071e7fc","savedPayload":{"position":{"x":46061.00454182307,"y":30087.712394580292},"targetPosition":{"x":45610.02425587317,"y":30058.313770154724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"c437054a-3447-486b-ab42-b267b800f96a","savedPayload":{"position":{"x":45610.02425587317,"y":30058.313770154724},"targetPosition":{"x":45158.858744477104,"y":30028.883442023704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"9604d5b6-af02-4ac3-91aa-fa82dcd316bf","savedPayload":{"position":{"x":45158.858744477104,"y":30028.883442023704},"targetPosition":{"x":44862.83944658449,"y":30087.58329134732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ed9d924d-7a8b-46da-a4e9-eb121329fe49","savedPayload":{"position":{"x":44862.83944658449,"y":30087.58329134732},"targetPosition":{"x":44272.00779942372,"y":30204.946262238485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"","id":"6e4bd29a-ffe6-4bbd-a114-62a0efe82a12","savedPayload":{"position":{"x":45760.6488820697,"y":30342.828489267125},"targetPosition":{"x":45459.70100509999,"y":30362.234023108005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"b3c5ca8e-cc9d-4662-96cb-82d7c5801f67","savedPayload":{"position":{"x":45459.70100509999,"y":30362.234023108005},"targetPosition":{"x":45158.82769546795,"y":30381.603232805704},"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":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"","id":"d6995a0d-dffd-4213-b159-1919fa35f1b8","savedPayload":{"position":{"x":45969.52778588621,"y":30781.448959775782},"targetPosition":{"x":45564.269191446634,"y":30581.63665626878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"d640b042-3b50-4f02-961a-9f4e9aab1015","savedPayload":{"position":{"x":45564.269191446634,"y":30581.63665626878},"targetPosition":{"x":45158.82769546795,"y":30381.603232805704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"88c5bffa-e658-4a99-89b3-b3b03d40d2e6","savedPayload":{"position":{"x":45158.82769546795,"y":30381.603232805704},"targetPosition":{"x":44862.82546003235,"y":30322.600699455408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"10972cbd-be85-4344-bf34-8aab4dc3a23b","savedPayload":{"position":{"x":44862.82546003235,"y":30322.600699455408},"targetPosition":{"x":44272.00779942372,"y":30204.946262238485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"2ef284e2-813b-422b-91b1-fd9f4a3289dc","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"4b5cf18d-cd45-4a96-9117-8d5d7781b0ab","savedPayload":{"position":{"x":45274.248143438956,"y":30875.483495476296},"targetPosition":{"x":45023.527910627956,"y":30707.83217071608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"79548414-ae13-4e0f-99b6-fff96171bbaf","savedPayload":{"position":{"x":45023.527910627956,"y":30707.83217071608},"targetPosition":{"x":44772.69288254182,"y":30539.965434132333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5aa3a8bc-9fda-4e11-a56d-5655b148bfa7","savedPayload":{"position":{"x":44772.69288254182,"y":30539.965434132333},"targetPosition":{"x":44272.00779942372,"y":30204.946262238485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Resistances & Supports","bot":{"type":"Indicator Bot Instance","name":"Resistances & Supports","code":" {\n \"repo\": \"\"\n }","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"","id":"e28673ef-1555-4468-83f6-9011026ef257","savedPayload":{"position":{"x":45452.66805723561,"y":31553.156804953058},"targetPosition":{"x":45113.06001290915,"y":31255.234887033326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1d60f7c3-f431-43f0-aaf3-6b25c092a7d3","savedPayload":{"position":{"x":45113.06001290915,"y":31255.234887033326},"targetPosition":{"x":44773.34200526984,"y":30957.178797188724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"5d9b2729-43fb-4e7e-aa4f-b8477c424e51"}}},{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"","id":"5c8850db-00c6-4607-b153-469534df6f68","savedPayload":{"position":{"x":44966.73206008909,"y":31528.118995498546},"targetPosition":{"x":44870.00048688255,"y":31242.66032093637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f38aa087-739d-4c9c-ac81-c5eaf4750f6e","savedPayload":{"position":{"x":44870.00048688255,"y":31242.66032093637},"targetPosition":{"x":44773.34200526984,"y":30957.178797188724},"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":"be19d91b-9337-4f84-96b3-f4e54ea12df5"}}}],"id":"12391346-c72a-44d7-8574-17fd5ed22657","savedPayload":{"position":{"x":44773.34200526984,"y":30957.178797188724},"targetPosition":{"x":44606.10518045995,"y":30706.220760937824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"39e297c4-fc60-4df1-a76d-c59f45b6a090","savedPayload":{"position":{"x":44606.10518045995,"y":30706.220760937824},"targetPosition":{"x":44272.00779942372,"y":30204.946262238485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8e0023df-5beb-4187-a53b-908c363861f9","savedPayload":{"position":{"x":44273.186396693905,"y":30204.885859141745},"targetPosition":{"x":43682.65778612944,"y":30322.206497874296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},"id":"930ad389-2e02-405d-a608-628df967e702","savedPayload":{"position":{"x":43682.89779132531,"y":30322.114446203646},"targetPosition":{"x":43092.9570586135,"y":30439.530985154168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"216101a4-697c-41c6-989c-a5f8f181c624","savedPayload":{"position":{"x":43694.50778488079,"y":30439.5301984526},"targetPosition":{"x":43092.9570586135,"y":30439.530985154168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mining","name":"New Data Mining","id":"7449a608-32ca-4285-94d1-c96791e2817f"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.taskManagers === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Task Manager.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Data Mining') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Data Mining.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.taskManagers)\n \n setup(templateClone, target, exchange, 'Exchange Tasks', 'taskManagers')\n for (let i = 0; i < templateClone.tasks.length; i++) {\n let task = templateClone.tasks[i]\n if (task.bot !== undefined) {\n if (task.bot.processes !== undefined) {\n for (let j = 0; j < task.bot.processes.length; j++) {\n let process = task.bot.processes[j]\n if (process.marketReference !== undefined) {\n process.marketReference.payload.referenceParent = market\n }\n }\n }\n }\n }\n\n return templateClone\n }\n}","id":"c1cbecc9-8340-4435-a0ab-140334ba104d","savedPayload":{"position":{"x":43682.8911800849,"y":30556.999036454978},"targetPosition":{"x":43092.9570586135,"y":30439.530985154168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ddd80520-a052-464b-a7b8-23b72387086f","savedPayload":{"position":{"x":43092.9570586135,"y":30439.530985154168},"targetPosition":{"x":41890.14038179374,"y":30439.527507516414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Install Sparta Data Mining Tasks","templateStructure":{"type":"Template Structure","name":"New Template Structure","taskManagers":{"type":"Task Manager","name":"Sparta","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"592304dd-b412-4f42-9f24-1c2b6305538a","savedPayload":{"position":{"x":44071.61797125626,"y":29269.179122287296},"targetPosition":{"x":44017.22604407985,"y":29586.166432086655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"4829d508-b32b-402c-8d27-4493549196b5","savedPayload":{"position":{"x":44017.22604407985,"y":29586.166432086655},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"4de8af37-754b-4178-9960-49f8dd9fea12","savedPayload":{"position":{"x":45168.8488344655,"y":29458.147255078686},"targetPosition":{"x":44565.86589926591,"y":29680.585441818144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"5f34959e-a63c-4298-8323-a16f75e23431","savedPayload":{"position":{"x":44565.86589926591,"y":29680.585441818144},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"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":"6db29c31-152b-472a-852e-0e4a36bec524","savedPayload":{"position":{"x":43962.84190684965,"y":29903.09502706654},"targetPosition":{"x":43551.90647643782,"y":30397.266512500442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"20c34f88-6b58-474b-b69d-02712765c0db","savedPayload":{"position":{"x":43551.90647643782,"y":30397.266512500442},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"64c7ca91-01ce-4dab-8b29-7cfa8e1f19a4","savedPayload":{"position":{"x":44848.06740265459,"y":30126.954299288456},"targetPosition":{"x":44617.64305938516,"y":30351.280902615003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"31761ef4-c98b-4657-a37f-652eff5340ea","savedPayload":{"position":{"x":44617.64305938516,"y":30351.280902615003},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"7610e87b-a8c3-475c-a44f-665e26614ad8","savedPayload":{"position":{"x":45624.60027321795,"y":30924.208529781736},"targetPosition":{"x":45005.977709353945,"y":30749.876937252106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"c4d61b48-9c23-47f1-937b-1729767a26f6","savedPayload":{"position":{"x":45005.977709353945,"y":30749.876937252106},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"34656b7b-826e-4ebd-943a-407d8c91ea24","savedPayload":{"position":{"x":44387.27143213535,"y":30575.564915785017},"targetPosition":{"x":43764.266809147426,"y":30733.667438768847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"28be18c7-c387-435e-ae7d-dfeca201bce5","savedPayload":{"position":{"x":43764.266809147426,"y":30733.667438768847},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"4f7ed8bc-c0b7-4930-80c3-67c7d5378066","savedPayload":{"position":{"x":44971.81020849867,"y":31276.620146946167},"targetPosition":{"x":44653.49004123155,"y":31322.55467880252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"9cc4175f-28ad-4307-a8d6-0df303a02be1","savedPayload":{"position":{"x":44653.49004123155,"y":31322.55467880252},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"3c7ff3c1-be17-4c7d-ba0a-1cc66a41970b","savedPayload":{"position":{"x":45131.12724051729,"y":32377.93040356555},"targetPosition":{"x":44733.22183307022,"y":31873.22574960204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"a585a9e1-e18d-40b6-b364-75f01e840a4b","savedPayload":{"position":{"x":44733.22183307022,"y":31873.22574960204},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"525c3ef8-145e-4919-bf2d-983db99a5cdb","savedPayload":{"position":{"x":44335.23861007668,"y":31368.479242651025},"targetPosition":{"x":43738.24708451567,"y":31130.308446359704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b652ba10-fb7a-4a93-bd24-9500bb7d25ec","savedPayload":{"position":{"x":43738.24708451567,"y":31130.308446359704},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"002570f4-0254-46d4-ba77-c23598fd8e51","savedPayload":{"position":{"x":44395.607564219106,"y":32279.346270225502},"targetPosition":{"x":44111.06304717549,"y":32129.543698932317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"16a0815f-b793-4ca8-aa09-78f9f447f110","savedPayload":{"position":{"x":44111.06304717549,"y":32129.543698932317},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"a1c6a73c-d518-478c-b1bb-cb1b0b4f08db","savedPayload":{"position":{"x":43876.85035087776,"y":33264.29116567567},"targetPosition":{"x":43851.71485258066,"y":32622.075786304355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"123f248b-aa95-4d1c-a6c2-9fc70fc2b816","savedPayload":{"position":{"x":43851.71485258066,"y":32622.075786304355},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"007d0fe3-9637-4a4f-8078-730af1716e1b","savedPayload":{"position":{"x":43826.594538981204,"y":31979.768305805377},"targetPosition":{"x":43483.775300077,"y":31436.11470464454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"da1cddfc-5d56-46e7-b14a-0b21127cf6e3","savedPayload":{"position":{"x":43483.775300077,"y":31436.11470464454},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"6907a34a-7247-4717-8be3-154ebc2cacfc","savedPayload":{"position":{"x":42927.695684739876,"y":30878.09191280621},"targetPosition":{"x":42499.798120847416,"y":30850.102649976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},"id":"ac392204-2e14-4744-a636-063c2bf461ae","savedPayload":{"position":{"x":43652.185746548756,"y":30789.964498250916},"targetPosition":{"x":43051.954111996405,"y":30750.842818950958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"4d93f230-422c-4a10-8e6d-50381aa60aba","savedPayload":{"position":{"x":43632.969464539834,"y":30906.514370388715},"targetPosition":{"x":43051.954111996405,"y":30750.842818950958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mining","name":"New Data Mining","id":"7449a608-32ca-4285-94d1-c96791e2817f"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.taskManagers === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Task Manager.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Data Mining') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Data Mining.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.taskManagers)\n \n setup(templateClone, target, exchange, 'Exchange Tasks', 'taskManagers')\n for (let i = 0; i < templateClone.tasks.length; i++) {\n let task = templateClone.tasks[i]\n if (task.bot !== undefined) {\n if (task.bot.processes !== undefined) {\n for (let j = 0; j < task.bot.processes.length; j++) {\n let process = task.bot.processes[j]\n if (process.marketReference !== undefined) {\n process.marketReference.payload.referenceParent = market\n }\n }\n }\n }\n }\n\n return templateClone\n }\n}","id":"b2fdaf25-bbd2-476a-93ed-faf23b3bfa00","savedPayload":{"position":{"x":43591.30937899207,"y":31017.075000840647},"targetPosition":{"x":43051.954111996405,"y":30750.842818950958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"83556c43-8483-48e3-be7e-36f9dbb70f08","savedPayload":{"position":{"x":43051.954111996405,"y":30750.842818950958},"targetPosition":{"x":41890.14038179374,"y":30439.527507516414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Install Time Machine","templateStructure":{"type":"Template Structure","name":"New Template Structure","timeMachines":{"type":"Time Machine","name":"My Time Machine","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2018-12-30T23:22:24.048Z\",\n \"toDate\": \"2019-01-10T19:44:56.900Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"acf304c4-443a-4a57-880e-13d330e754c4","savedPayload":{"position":{"x":44972.262947294315,"y":31118.718470440148},"targetPosition":{"x":44638.22490151728,"y":31620.194666293457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3540,\n \"maxValue\": 4069.8,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"153feb9a-76e1-4838-ae3e-33cacd7ca646","savedPayload":{"position":{"x":45091.17064358791,"y":31222.70534719221},"targetPosition":{"x":44638.22490151728,"y":31620.194666293457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"7890a24e-5bf5-450f-bb35-f23b3eb495f6","savedPayload":{"position":{"x":45178.77949805262,"y":31353.610402114664},"targetPosition":{"x":44638.22490151728,"y":31620.194666293457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"38e64db1-376d-45de-a92c-a6fb25282507","savedPayload":{"position":{"x":45798.08358329995,"y":30783.47112133315},"targetPosition":{"x":45818.52076736195,"y":31385.59859580079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"884a5d08-b607-4b2b-8e7a-8adeb7e8dd4a"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9ad6d912-ff9c-45c8-bfce-bcd0d86e3977","savedPayload":{"position":{"x":45898.37673360377,"y":30788.25119234455},"targetPosition":{"x":45818.52076736195,"y":31385.59859580079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"68df01d8-d9a8-400c-aa76-8da44c5dc040"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6c5e7c7f-a010-4d59-8299-d8d4534aa7f8","savedPayload":{"position":{"x":45996.05938571397,"y":30809.588522972816},"targetPosition":{"x":45818.52076736195,"y":31385.59859580079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"632f0f98-eb2c-4820-9943-662a4903be81"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"41db7192-ec70-4f95-85dd-343bfa05258e","savedPayload":{"position":{"x":46088.671022938994,"y":30846.72421469604},"targetPosition":{"x":45818.52076736195,"y":31385.59859580079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"88a1ca81-b317-4ab2-b651-c8fa566e8e28"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"13c5c367-3758-4f8f-883c-ba6f1ee3bef2","savedPayload":{"position":{"x":46173.797322491286,"y":30898.58369972401},"targetPosition":{"x":45818.52076736195,"y":31385.59859580079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"5979844b-35e7-4c04-938f-18e6156352a0"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0fac6cd3-3172-4854-9ce2-f2827023f503","savedPayload":{"position":{"x":46249.17664768098,"y":30963.730987652525},"targetPosition":{"x":45818.52076736195,"y":31385.59859580079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5bce195f-7d08-4281-bb9d-ca1e9417068e"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"88c7874f-9372-4dc5-9bb1-491ca58ceded","savedPayload":{"position":{"x":46312.78393052083,"y":31040.384533238812},"targetPosition":{"x":45818.52076736195,"y":31385.59859580079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"b9145946-1899-4fac-b531-47ed600873be"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6570c568-8d96-427f-9dbe-822d0fe9f900","savedPayload":{"position":{"x":46362.900460538505,"y":31126.454059169817},"targetPosition":{"x":45818.52076736195,"y":31385.59859580079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c9daf265-f452-4372-a8a9-6ed9c0d7a0ed"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a133263e-3eca-4d4a-b04e-8f40e5ec78ba","savedPayload":{"position":{"x":46398.167326095994,"y":31219.59432824167},"targetPosition":{"x":45818.52076736195,"y":31385.59859580079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"fba1f18e-dd5b-48e6-82b1-ff04a624f090"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"32fcaa2a-af1d-4aa6-adf0-36dd24759ca4","savedPayload":{"position":{"x":46417.62588351845,"y":31317.267577006704},"targetPosition":{"x":45818.52076736195,"y":31385.59859580079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"64f059bf-66e2-463c-aed1-800b5fa195ab"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"3d5d19b9-481d-4542-b279-06303aa9edef","savedPayload":{"position":{"x":46420.70567572493,"y":31416.809466474464},"targetPosition":{"x":45818.52076736195,"y":31385.59859580079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"5b6e48e5-259f-44f3-b40e-a29982204c95"}}},{"type":"Layer","name":"","code":"{ \n\"status\": \"off\"\n}","id":"04f846d4-f203-4eed-807d-214655d4551b","savedPayload":{"position":{"x":46407.31337137963,"y":31515.483822428057},"targetPosition":{"x":45818.52076736195,"y":31385.59859580079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer","name":"","code":"{ \n\"status\": \"off\"\n}","id":"10e19911-11b2-4b8d-86fa-b7a5de9f93e4","savedPayload":{"position":{"x":46377.87367543775,"y":31610.607629023725},"targetPosition":{"x":45818.52076736195,"y":31385.59859580079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer","name":"","code":"{ \n\"status\": \"off\"\n}","id":"5666253c-62f6-46f2-91fa-c19b44a5932a","savedPayload":{"position":{"x":46333.185880681754,"y":31699.591341637817},"targetPosition":{"x":45818.52076736195,"y":31385.59859580079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer","name":"","code":"{ \n\"status\": \"off\"\n}","id":"aae1b1f8-35b5-4c41-b5c9-64d80a97cc38","savedPayload":{"position":{"x":46274.467312818415,"y":31780.011584392756},"targetPosition":{"x":45818.52076736195,"y":31385.59859580079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer","name":"","code":"{ \n\"status\": \"off\"\n}","id":"434c3396-d53e-434b-aa8b-c27a170c9ed9","savedPayload":{"position":{"x":46203.31676678368,"y":31849.67669835976},"targetPosition":{"x":45818.52076736195,"y":31385.59859580079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer","name":"","code":"{ \n\"status\": \"off\"\n}","id":"9e784e59-be45-4895-9174-75d3dabfd45b","savedPayload":{"position":{"x":46121.67361107911,"y":31906.68977984249},"targetPosition":{"x":45818.52076736195,"y":31385.59859580079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer","name":"","code":"{ \n\"status\": \"off\"\n}","id":"3ad3e53b-53d4-4c61-a80d-e3f5a679b2cd","savedPayload":{"position":{"x":46028.33674024209,"y":31950.48529383432},"targetPosition":{"x":45818.52076736195,"y":31385.59859580079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5bfa0541-b9bb-4dc6-a5a0-5684278c2a16","savedPayload":{"position":{"x":45819.36840869368,"y":31385.419815840156},"targetPosition":{"x":45228.931388073186,"y":31502.74417203152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"63c36d69-c222-4687-a535-c147abcfb9a9","savedPayload":{"position":{"x":45229.38672237636,"y":31502.662848045977},"targetPosition":{"x":44638.22490151728,"y":31620.194666293457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3496.3969296811883,\n \"maxValue\": 12400.41819345618,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"6f07d76a-363a-4200-a7f4-ee9daf700744","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a6350c1f-64b3-4b13-921b-aea1eb09b6c1","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"4ec71a01-3d83-4e8e-9780-bcb700dcf66a"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"3b5badc4-8160-4c8f-ae19-8db7970e581d","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"929661b5-acce-457c-a8cc-505a64cfacf2","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"6f781018-392b-4ba2-b00f-68d4c5498f2b","savedPayload":{"position":{"x":45239.67954677261,"y":31659.506072974258},"targetPosition":{"x":44638.22490151728,"y":31620.194666293457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"5074db98-f742-4771-a68e-a001b9c45182","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"830c5295-25ca-4f08-bc7c-262be9e2fb17","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"9b5b1b81-c68c-45a5-8123-1a114a24b744"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8aa6fde7-89cb-43af-bea1-149a0b94c29c","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"71351f63-10b4-4f89-ac9f-a8380bb0b75e"}}}],"id":"2f754398-30ac-4afa-8c12-c37013b8a4da","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"805c6659-38e2-4959-86d0-cbabc87a8184","savedPayload":{"position":{"x":45208.98090305957,"y":31813.870110660417},"targetPosition":{"x":44638.22490151728,"y":31620.194666293457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"53e5ea3b-83b8-4460-ac02-c68e2f17c85f","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"775d50c1-df4b-4d02-9da4-de31dd5fc006","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43702.617792383055,"y":31853.05810689925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"9b5b1b81-c68c-45a5-8123-1a114a24b744"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"06f133c7-2bf0-4352-89e7-bd43dc74c3e7","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43702.617792383055,"y":31853.05810689925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"71351f63-10b4-4f89-ac9f-a8380bb0b75e"}}},{"type":"Layer","name":"","code":"{ \n\"status\": \"off\"\n}","id":"ae91005d-2615-4b4e-bcd4-3fb25ef7f510","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43702.617792383055,"y":31853.05810689925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer","name":"","code":"{ \n\"status\": \"off\"\n}","id":"1939dd65-d12b-436d-8c76-609fc1f776f4","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43702.617792383055,"y":31853.05810689925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"68537c49-d84e-4843-9ee2-9aae3f9abef1","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"35419f31-46aa-455e-b9bc-1f87a04e7903","savedPayload":{"position":{"x":45139.353748382324,"y":31955.03611259359},"targetPosition":{"x":44638.22490151728,"y":31620.194666293457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"1ce27f77-c38b-49b1-8ea3-c32687bdb655","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"b672763b-52c9-47c0-8b03-8156a564a6bb","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"247187f3-1aaf-4de1-a7db-c3a550cdbad0"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"e330fc5d-223f-4d13-8251-84be95894b04","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"4deb0411-a8ea-465e-adcd-e0515f291a2d"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"63396270-7226-4fe7-8a77-072a29e73691","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"cec4bf02-ebee-48ad-a0cc-25629e34fd65"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"d08e1626-0cdc-42b6-ab7e-ed35fc9f0f43","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"c9cbb548-60ef-491d-b083-5825573db463"}}}],"id":"c9302ae8-6f99-41c2-86d7-04e6b1cf1817","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1770,"y":80},"width":150,"height":40,"radius":0}}},"id":"02c55b2b-cb65-4131-aa82-de04ce1ca1c6","savedPayload":{"position":{"x":45035.54820924473,"y":32073.374045997527},"targetPosition":{"x":44638.22490151728,"y":31620.194666293457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"73a8ce0d-317a-4162-b961-8ff3df64c1c3","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"37d4edc7-51fc-4c9b-93b9-4f0f0e795208","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"456e8c88-ba2b-487d-aa2a-48f6c1144d22"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"0f0b5b97-3962-4eaf-861e-edd447bc4d61","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"6abfb364-1883-488b-ac98-ffa234013e95"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"fcb15fbd-c988-4b80-add2-88c0d20d2f90","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"cdba5840-e1d7-4909-9422-423299403f3c"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"ec034ac9-5e70-44aa-99c7-d0afd8d0f78c","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"0dbb4a2c-c32d-4bd1-a410-09ce23613604"}}}],"id":"2bc6080e-b3b8-4240-946b-b1475b407bdc","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1620,"y":80},"width":150,"height":40,"radius":0}}},"id":"de6ca021-6112-41ab-8a4e-5b24682c397e","savedPayload":{"position":{"x":44904.62701626791,"y":32160.8029978036},"targetPosition":{"x":44638.22490151728,"y":31620.194666293457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"10022324-b8b0-4d63-ac68-1a52fb1a3bc8","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"89f07041-b4af-47e8-9282-06f889d1873f","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"442bd8c3-1825-4415-84bd-e2f1148b3f92"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"3ca3b1c6-2f56-4a69-a5b1-c6461b339286","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"8ab46f29-e225-42ee-a17e-297b2ebcfdbe"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"8306fbd3-4c33-4796-8a00-259702921276","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"2f5a9ed9-80b6-412f-9d24-47f49653be9b"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"bb634599-045c-4475-a4ed-af6798660d58","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"ddb30433-09f1-44b5-afdc-28a05f218c25"}}}],"id":"0a45ce5c-57f1-442b-b5cf-a86812267f3c","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1470,"y":80},"width":150,"height":40,"radius":0}}},"id":"d5405af5-9184-4017-805d-a7f9f9256524","savedPayload":{"position":{"x":44755.4514495045,"y":32211.35287786325},"targetPosition":{"x":44638.22490151728,"y":31620.194666293457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"37fba5b0-3028-4687-bb7b-1162995b2fe2","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"068284a9-fd5b-4b68-9103-836637fdcb0b","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e7f2581f-1dfd-44eb-82d9-a9be799307e6"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"4cfdb7dd-af3d-444d-abb8-f04d77e73889","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"24dfc84b-74ec-4d79-9e97-4eb17dd2ac1d"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"1ea11e8c-049c-4ff1-ae9a-0f27d4165127","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"ce87f885-a79b-4675-9cfd-337daed079e5"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"996074fc-0efb-4bf8-8f16-95cbad2f5043","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"40c22092-c1c9-4a45-893a-b7372833df84"}}}],"id":"c49c4542-bc88-44c2-b537-6f2d5b3b3a3a","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1320,"y":80},"width":150,"height":40,"radius":0}}},"id":"cfda3689-ce58-460a-81c3-4b99377e7184","savedPayload":{"position":{"x":44598.07907263305,"y":32221.458401450443},"targetPosition":{"x":44638.22490151728,"y":31620.194666293457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a4a8b171-8b07-4895-8c25-cedd8fa9c957","savedPayload":{"position":{"x":44638.52989266892,"y":31620.261680135452},"targetPosition":{"x":44068.49117132832,"y":31426.826447713953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":-1305,"y":-15},"width":240,"height":112.375,"radius":0}}},"id":"e6469c64-26cb-4a30-951d-a68147cf1ba5","savedPayload":{"position":{"x":44068.869578561484,"y":31427.048075342944},"targetPosition":{"x":42931.70615561109,"y":31041.063169142482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"c01a6962-8b0e-4b06-8705-8751660aabbf","savedPayload":{"position":{"x":43452.64880473069,"y":31341.65552813608},"targetPosition":{"x":42931.70615561109,"y":31041.063169142482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Dashboard","name":"Super Action Generated","id":"64fa2a31-21ea-4b56-a625-dc4082876a89"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.timeMachines === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Time Machine.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Dashboard') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Dashboard.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.timeMachines)\n target.timeMachines.push(templateClone)\n setup(templateClone, target)\n\n return templateClone\n }\n}","id":"968fd18b-2a1b-41ca-9317-23f301607857","savedPayload":{"position":{"x":43383.721289869136,"y":31437.822140544642},"targetPosition":{"x":42931.70615561109,"y":31041.063169142482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"41c01e94-6c5c-4b71-9c70-8d962c86fec0","savedPayload":{"position":{"x":42931.70615561109,"y":31041.063169142482},"targetPosition":{"x":41890.14038179374,"y":30439.527507516414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/*\nMaster Script\n*/\nfunction newNewMasterScriptInstance() {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction, masterScript) {\n /* Validations */\n if (superAction.payload.parentNode.type !== 'Market') {\n superAction.payload.uiObject.setErrorMessage('Super Action Parent Node needs to be of type Market.')\n return\n }\n if (superAction.payload.parentNode.baseAsset === undefined) {\n superAction.payload.uiObject.setErrorMessage('Market Node needs to have a child Market Base Asset.')\n return\n }\n if (superAction.payload.parentNode.quotedAsset === undefined) {\n superAction.payload.uiObject.setErrorMessage('Market Node needs to have a child Market Quoted Asset.')\n return\n }\n if (superAction.payload.parentNode.baseAsset.payload.referenceParent === undefined) {\n superAction.payload.uiObject.setErrorMessage('Market Base Asset Node needs to reference an Asset.')\n return\n }\n if (superAction.payload.parentNode.quotedAsset.payload.referenceParent === undefined) {\n superAction.payload.uiObject.setErrorMessage('Market Quoted Asset Node needs to reference an Asset.')\n return\n }\n if (superAction.payload.parentNode.baseAsset.payload.referenceParent.payload.parentNode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Asset Node needs to be a child of Exchange Assets.')\n return\n }\n if (superAction.payload.parentNode.quotedAsset.payload.referenceParent.payload.parentNode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Asset Node needs to be a child of Exchange Assets.')\n return\n }\n if (superAction.payload.parentNode.baseAsset.payload.referenceParent.payload.parentNode.payload.parentNode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Exchange Assets needs to be a child of an Exchange Node.')\n return\n }\n if (superAction.payload.parentNode.quotedAsset.payload.referenceParent.payload.parentNode.payload.parentNode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Exchange Assets needs to be a child of an Exchange Node.')\n return\n }\n if (superAction.payload.parentNode.baseAsset.payload.referenceParent.payload.parentNode.payload.parentNode.id !== superAction.payload.parentNode.quotedAsset.payload.referenceParent.payload.parentNode.payload.parentNode.id) {\n superAction.payload.uiObject.setErrorMessage('Assets must be from the same Exchange.')\n return\n }\n if (superAction.payload.parentNode.payload.parentNode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Market needs to be a child of Exchange Markets.')\n return\n }\n if (superAction.payload.parentNode.payload.parentNode.payload.parentNode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Exchange Markets needs to be a child of an Exchange.')\n return\n }\n if (superAction.payload.parentNode.payload.parentNode.payload.parentNode.id !== superAction.payload.parentNode.baseAsset.payload.referenceParent.payload.parentNode.payload.parentNode.id) {\n superAction.payload.uiObject.setErrorMessage('Assets and Market must be defined at the same Exchange.')\n return\n }\n if (superAction.payload.parentNode.payload.parentNode.payload.parentNode.exchangeAccounts === undefined) {\n superAction.payload.uiObject.setErrorMessage('Exchange needs to have a child Exchange Accounts.')\n return\n }\n if (superAction.payload.parentNode.payload.parentNode.payload.parentNode.exchangeAccounts.userAccounts.length === 0) {\n superAction.payload.uiObject.setErrorMessage('Exchange Accounts to needs have a child User Account.')\n return\n }\n if (superAction.payload.parentNode.payload.parentNode.payload.parentNode.exchangeAccounts.userAccounts[0].userKeys === undefined) {\n superAction.payload.uiObject.setErrorMessage('User Account needs to have a child User Keys.')\n return\n }\n if (superAction.payload.parentNode.payload.parentNode.payload.parentNode.exchangeAccounts.userAccounts[0].userKeys.keys.length === 0) {\n superAction.payload.uiObject.setErrorMessage('User Keys needs to have a child Exchange Account Key.')\n return\n }\n\n for (let i = 0; i < masterScript.templateScripts.length; i++) {\n let templateScript = masterScript.templateScripts[i]\n\n if (templateScript.javascriptCode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Script must have a child Javascript Code.')\n return\n }\n if (templateScript.templateStructure === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Script must have a child Template Structure.')\n return\n }\n if (templateScript.templateTarget === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Script must have a child Template Target.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent.')\n return\n }\n try {\n let templateScriptConstructor\n\n eval(templateScript.javascriptCode.code)\n\n let executionResult = true\n let templateScriptInstance = templateScriptConstructor()\n\n if (executionResult === true) {\n executionResult = templateScriptInstance.runValidations(superAction)\n }\n\n if (executionResult !== true) { return false }\n } catch (err) {\n console.log(err.stack)\n superAction.payload.uiObject.setErrorMessage(err.message)\n return false\n }\n }\n\n return true\n }\n\n function runScript(superAction, masterScript) {\n let market = superAction.payload.parentNode\n let exchange = superAction.payload.parentNode.payload.parentNode.payload.parentNode\n let key = exchange.exchangeAccounts.userAccounts[0].userKeys.keys[0]\n let singleMarketData\n let backSessionReference\n let paperSessionReference\n let liveSessionReference\n let ForwardSessionReference\n let dataMiningTaskManagers = []\n let testingEnvironmentTaskManager\n let productionEnvironmentTaskManager\n let timeMachine\n\n for (let i = 0; i < masterScript.templateScripts.length; i++) {\n let templateScript = masterScript.templateScripts[i]\n\n try {\n let templateScriptConstructor\n\n eval(templateScript.javascriptCode.code)\n\n let executionResult = true\n let templateClone\n let templateScriptInstance = templateScriptConstructor()\n\n if (executionResult === true) {\n templateClone = templateScriptInstance.runScript(superAction, templateScript)\n }\n\n if (executionResult !== true) { return false }\n\n switch (templateClone.payload.parentNode.payload.parentNode.type) {\n case 'Session Independent Data': {\n singleMarketData = templateClone\n break\n }\n case 'Session Based Data': {\n switch (templateClone.templateType) {\n case 'Backtesting Session': {\n backSessionReference = templateClone\n break\n }\n case 'Paper Trading Session': {\n paperSessionReference = templateClone\n break\n }\n case 'Live Trading Session': {\n liveSessionReference = templateClone\n break\n }\n case 'Forward Testing Session': {\n ForwardSessionReference = templateClone\n break\n }\n }\n break\n }\n case 'Data Mining': {\n dataMiningTaskManagers.push(templateClone)\n break\n }\n case 'Testing Environment': {\n testingEnvironmentTaskManager = templateClone\n break\n }\n case 'Production Environment': {\n productionEnvironmentTaskManager = templateClone\n break\n }\n case 'Charting Space': {\n timeMachine = templateClone\n break\n }\n }\n\n if (executionResult !== true) { return false }\n } catch (err) {\n console.log(err.stack)\n superAction.payload.uiObject.setErrorMessage(err.message)\n return false\n }\n }\n\n /* Here we will find the sessions within the tasks in order to put them as a reference of the Session Reference nodes we already have */\n let session\n session = findSession('Backtesting Session', testingEnvironmentTaskManager)\n backSessionReference.payload.referenceParent = session\n session = findSession('Paper Trading Session', testingEnvironmentTaskManager)\n paperSessionReference.payload.referenceParent = session\n session = findSession('Live Trading Session', productionEnvironmentTaskManager)\n liveSessionReference.payload.referenceParent = session\n session = findSession('Forward Testing Session', productionEnvironmentTaskManager)\n ForwardSessionReference.payload.referenceParent = session\n\n function findSession(sessionType, taskManager) {\n for (let i = 0; i < taskManager.tasks.length; i++) {\n let task = taskManager.tasks[i]\n if (task.bot !== undefined) {\n if (task.bot.processes !== undefined) {\n for (let j = 0; j < task.bot.processes.length; j++) {\n let process = task.bot.processes[j]\n if (process.session !== undefined) {\n if (process.session.type === sessionType) {\n return process.session\n }\n }\n }\n }\n }\n }\n }\n\n /* Here, we are going to connect the layers of the charts at the Time Machine */\n for (let i = 0; i < timeMachine.timelineCharts.length; i++) {\n let timelineChart = timeMachine.timelineCharts[i]\n switch (timelineChart.name) {\n case 'Indicators': {\n for (let j = 0; j < timelineChart.layersManager.layers.length; j++) {\n let layer = timelineChart.layersManager.layers[j]\n switch (j) {\n case 0: {\n let dataProduct = findDataProduct(singleMarketData, 'Candles')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 1: {\n let dataProduct = findDataProduct(singleMarketData, 'Bollinger Bands')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 2: {\n let dataProduct = findDataProduct(singleMarketData, 'Resistances')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 3: {\n let dataProduct = findDataProduct(singleMarketData, 'Supports')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 4: {\n let dataProduct = findDataProduct(singleMarketData, 'Candles Channels')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 5: {\n let dataProduct = findDataProduct(singleMarketData, 'Candles Channels Objects')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 6: {\n let dataProduct = findDataProduct(singleMarketData, 'Bollinger Channels')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 7: {\n let dataProduct = findDataProduct(singleMarketData, 'Bollinger Channels Objects')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 8: {\n let dataProduct = findDataProduct(singleMarketData, 'Bollinger Sub-Channels')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 9: {\n let dataProduct = findDataProduct(singleMarketData, 'Bollinger Sub-Channels Objects')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 10: {\n let dataProduct = findDataProduct(singleMarketData, 'Popular SMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 11: {\n let dataProduct = findDataProduct(singleMarketData, 'Base5 SMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 12: {\n let dataProduct = findDataProduct(singleMarketData, 'Base6 SMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 13: {\n let dataProduct = findDataProduct(singleMarketData, 'Base7 SMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 14: {\n let dataProduct = findDataProduct(singleMarketData, 'Base11 SMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 15: {\n let dataProduct = findDataProduct(singleMarketData, 'Popular EMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 16: {\n let dataProduct = findDataProduct(singleMarketData, 'Base7 EMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 17: {\n let dataProduct = findDataProduct(singleMarketData, 'Base11 EMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n }\n layer.payload.uiObject.physics()\n }\n break\n }\n case 'Volumes': {\n for (let j = 0; j < timelineChart.layersManager.layers.length; j++) {\n let layer = timelineChart.layersManager.layers[j]\n switch (j) {\n case 0: {\n let dataProduct = findDataProduct(singleMarketData, 'Volumes')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 1: {\n let dataProduct = findDataProduct(singleMarketData, 'Volume-Stairs')\n layer.payload.referenceParent = dataProduct\n break\n }\n }\n layer.payload.uiObject.physics()\n }\n break\n }\n case 'Oscilators': {\n for (let j = 0; j < timelineChart.layersManager.layers.length; j++) {\n let layer = timelineChart.layersManager.layers[j]\n switch (j) {\n case 0: {\n let dataProduct = findDataProduct(singleMarketData, 'Percentage Bandwidth')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 1: {\n let dataProduct = findDataProduct(singleMarketData, 'RSI14')\n layer.payload.referenceParent = dataProduct\n break\n }\n }\n layer.payload.uiObject.physics()\n }\n break\n }\n case 'MACD': {\n for (let j = 0; j < timelineChart.layersManager.layers.length; j++) {\n let layer = timelineChart.layersManager.layers[j]\n switch (j) {\n case 0: {\n let dataProduct = findDataProduct(singleMarketData, 'MACD 122609')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 1: {\n let dataProduct = findDataProduct(singleMarketData, 'MACD 031016')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 2: {\n let dataProduct = findDataProduct(singleMarketData, 'MACD 081709')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 3: {\n let dataProduct = findDataProduct(singleMarketData, 'MACD 245209')\n layer.payload.referenceParent = dataProduct\n break\n }\n }\n layer.payload.uiObject.physics()\n }\n break\n }\n case 'Backtesting': {\n setupSessionReference(timelineChart, backSessionReference)\n break\n }\n case 'Paper Trading': {\n setupSessionReference(timelineChart, paperSessionReference)\n break\n }\n case 'Live Trading': {\n setupSessionReference(timelineChart, liveSessionReference)\n break\n }\n case 'Forward Testing': {\n setupSessionReference(timelineChart, ForwardSessionReference)\n break\n }\n }\n }\n\n function findDataProduct(singleMarketData, name) {\n for (let i = 0; i < singleMarketData.dataProducts.length; i++) {\n let dataProduct = singleMarketData.dataProducts[i]\n if (dataProduct.name === name) {\n return dataProduct\n }\n }\n }\n function setupSessionReference(timelineChart, sessionReference) {\n for (let j = 0; j < timelineChart.layersManager.layers.length; j++) {\n let layer = timelineChart.layersManager.layers[j]\n switch (j) {\n case 0: {\n let dataProduct = findDataProduct(sessionReference.singleMarketData, 'Simulation')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 1: {\n let dataProduct = findDataProduct(sessionReference.singleMarketData, 'Conditions')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 2: {\n let dataProduct = findDataProduct(sessionReference.singleMarketData, 'Trades')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 3: {\n let dataProduct = findDataProduct(sessionReference.singleMarketData, 'Strategies')\n layer.payload.referenceParent = dataProduct\n break\n }\n }\n layer.payload.uiObject.physics()\n }\n }\n\n let exchangeAndMarket = superAction.payload.parentNode.payload.parentNode.payload.parentNode.name + ' ' + market.name\n timeMachine.name = exchangeAndMarket\n\n for (let i = 0; i < dataMiningTaskManagers.length; i++) {\n let dataMiningTaskManager = dataMiningTaskManagers[i]\n dataMiningTaskManager.name = dataMiningTaskManager.name + ' ' + market.name\n }\n\n testingEnvironmentTaskManager.name = testingEnvironmentTaskManager.name + ' ' + market.name\n productionEnvironmentTaskManager.name = productionEnvironmentTaskManager.name + ' ' + market.name\n return true\n }\n}\n/*\nEnd Manster Script\n*/","id":"d234c201-4b50-48c6-be9d-f3b141c8cc16","savedPayload":{"position":{"x":42315.379156118935,"y":30864.883508780593},"targetPosition":{"x":41890.14038179374,"y":30439.527507516414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"95b24e48-3b10-47cb-b149-8667571f4a83","savedPayload":{"position":{"x":41890.236139228655,"y":30439.426551049364},"targetPosition":{"x":40847.785430914875,"y":31041.241941751345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"o"}}},{"type":"Master Script","name":"Delete Market Dependencies ","templateScripts":[{"type":"Template Script","name":"Delete Testing Environment Task Managers","templateTarget":{"type":"Template Target","name":"New Template Target","id":"a97aa286-3199-4362-900a-65b604bf5b9a","savedPayload":{"position":{"x":41729.477786552314,"y":31046.11236071952},"targetPosition":{"x":41582.54274899229,"y":31205.193628384397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Testing Environment","name":"New Testing Environment","id":"2ae685a1-25c6-4bd5-b559-d83e373e8d45"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Testing Environment') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Data Mining.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n\n let nodesToDelete = []\n for (let e = 0; e < target.exchangeTasks.length; e++) {\n let exchangeTasks = target.exchangeTasks[e]\n if (exchangeTasks.payload.referenceParent !== undefined) {\n if (exchangeTasks.payload.referenceParent.id === exchange.id) {\n for (let k = 0; k < exchangeTasks.taskManagers.length; k++) {\n let taskManager = exchangeTasks.taskManagers[k]\n checkReferenceToMarket()\n function checkReferenceToMarket() {\n for (let i = 0; i < taskManager.tasks.length; i++) {\n let task = taskManager.tasks[i]\n if (task.bot !== undefined) {\n if (task.bot.processes !== undefined) {\n for (let j = 0; j < task.bot.processes.length; j++) {\n let process = task.bot.processes[j]\n if (process.marketReference !== undefined) {\n if (process.marketReference.payload !== undefined) {\n if (process.marketReference.payload.referenceParent !== undefined) {\n if (process.marketReference.payload.referenceParent.id === market.id) {\n nodesToDelete.push(taskManager)\n return\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n if (exchangeTasks.taskManagers.length === nodesToDelete.length) {\n nodesToDelete.push(exchangeTasks)\n }\n }\n }\n }\n\n for (let i = 0; i < nodesToDelete.length; i++) {\n deleteNode(nodesToDelete[i])\n }\n }\n}","id":"9d020e32-68e5-4123-b0ad-cb443d778905","savedPayload":{"position":{"x":41785.524618173,"y":31129.822745374793},"targetPosition":{"x":41582.54274899229,"y":31205.193628384397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"12eb790b-7f24-48bf-a4f0-34159f3d1863","savedPayload":{"position":{"x":41582.54274899229,"y":31205.193628384397},"targetPosition":{"x":41242.73749253987,"y":31466.604853288718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Delete Production Environment Task Managers","templateTarget":{"type":"Template Target","name":"New Template Target","id":"2ef5ba0f-10f7-4af0-81c1-2e89b9aea583","savedPayload":{"position":{"x":41853.66308982842,"y":31264.801386694602},"targetPosition":{"x":41656.82837164478,"y":31355.520360853872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Production Environment","name":"New Production Environment","id":"32656457-f603-416a-b805-546642094dc4"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Production Environment') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Data Mining.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n\n let nodesToDelete = []\n for (let e = 0; e < target.exchangeTasks.length; e++) {\n let exchangeTasks = target.exchangeTasks[e]\n if (exchangeTasks.payload.referenceParent !== undefined) {\n if (exchangeTasks.payload.referenceParent.id === exchange.id) {\n for (let k = 0; k < exchangeTasks.taskManagers.length; k++) {\n let taskManager = exchangeTasks.taskManagers[k]\n checkReferenceToMarket()\n function checkReferenceToMarket() {\n for (let i = 0; i < taskManager.tasks.length; i++) {\n let task = taskManager.tasks[i]\n if (task.bot !== undefined) {\n if (task.bot.processes !== undefined) {\n for (let j = 0; j < task.bot.processes.length; j++) {\n let process = task.bot.processes[j]\n if (process.marketReference !== undefined) {\n if (process.marketReference.payload !== undefined) {\n if (process.marketReference.payload.referenceParent !== undefined) {\n if (process.marketReference.payload.referenceParent.id === market.id) {\n nodesToDelete.push(taskManager)\n return\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n if (exchangeTasks.taskManagers.length === nodesToDelete.length) {\n nodesToDelete.push(exchangeTasks)\n }\n }\n }\n }\n\n for (let i = 0; i < nodesToDelete.length; i++) {\n deleteNode(nodesToDelete[i])\n }\n }\n}","id":"9f9515a8-2e47-4a6f-acc3-6e4e01a610b2","savedPayload":{"position":{"x":41873.37022951505,"y":31363.719899709926},"targetPosition":{"x":41656.82837164478,"y":31355.520360853872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"29b330a4-d4f6-45ac-8b41-090740dc418f","savedPayload":{"position":{"x":41656.82837164478,"y":31355.520360853872},"targetPosition":{"x":41242.73749253987,"y":31466.604853288718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Delete Data Mining Task Managers","templateTarget":{"type":"Template Target","name":"New Template Target","id":"c3417c9a-68b3-4d49-9514-0d2d30cea254","savedPayload":{"position":{"x":41884.48440596237,"y":31513.967037417144},"targetPosition":{"x":41667.84415563366,"y":31522.410064016763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mining","name":"New Data Mining","id":"7449a608-32ca-4285-94d1-c96791e2817f"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Data Mining') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Data Mining.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n\n let nodesToDelete = []\n for (let e = 0; e < target.exchangeTasks.length; e++) {\n let exchangeTasks = target.exchangeTasks[e]\n if (exchangeTasks.payload.referenceParent !== undefined) {\n if (exchangeTasks.payload.referenceParent.id === exchange.id) {\n for (let k = 0; k < exchangeTasks.taskManagers.length; k++) {\n let taskManager = exchangeTasks.taskManagers[k]\n checkReferenceToMarket()\n function checkReferenceToMarket() {\n for (let i = 0; i < taskManager.tasks.length; i++) {\n let task = taskManager.tasks[i]\n if (task.bot !== undefined) {\n if (task.bot.processes !== undefined) {\n for (let j = 0; j < task.bot.processes.length; j++) {\n let process = task.bot.processes[j]\n if (process.marketReference !== undefined) {\n if (process.marketReference.payload !== undefined) {\n if (process.marketReference.payload.referenceParent !== undefined) {\n if (process.marketReference.payload.referenceParent.id === market.id) {\n nodesToDelete.push(taskManager)\n return\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n if (exchangeTasks.taskManagers.length === nodesToDelete.length) {\n nodesToDelete.push(exchangeTasks)\n }\n }\n }\n }\n\n for (let i = 0; i < nodesToDelete.length; i++) {\n deleteNode(nodesToDelete[i])\n }\n }\n}","id":"2d8e00e3-836a-426d-9f78-db3262bd7454","savedPayload":{"position":{"x":41864.71847634008,"y":31612.922947914863},"targetPosition":{"x":41667.84415563366,"y":31522.410064016763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e8e96f57-041e-4c0d-a2bf-5a8e444636b1","savedPayload":{"position":{"x":41667.84415563366,"y":31522.410064016763},"targetPosition":{"x":41242.73749253987,"y":31466.604853288718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Delete Dashboard Time Machines","templateTarget":{"type":"Template Target","name":"New Template Target","id":"1cbc9a0e-d00e-4506-9a33-5fbcb3ed8900","savedPayload":{"position":{"x":41818.05356628126,"y":31755.042846552373},"targetPosition":{"x":41614.02097354356,"y":31680.97605960732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Dashboard","name":"Super Action Generated","id":"64fa2a31-21ea-4b56-a625-dc4082876a89"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Dashboard') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Dashboard.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n\n let nodesToDelete = []\n for (let k = 0; k < target.timeMachines.length; k++) {\n let timeMachine = target.timeMachines[k]\n for (let i = 0; i < timeMachine.timelineCharts.length; i++) {\n let timelineChart = timeMachine.timelineCharts[i]\n if (timelineChart.layersManager !== undefined) {\n for (let j = 0; j < timelineChart.layersManager.layers.length; j++) {\n let layer = timelineChart.layersManager.layers[j]\n if (layer.payload.referenceParent !== undefined) {\n if (layer.payload.referenceParent.payload !== undefined) {\n if (layer.payload.referenceParent.payload.parentNode !== undefined) {\n if (layer.payload.referenceParent.payload.parentNode.payload !== undefined) {\n if (layer.payload.referenceParent.payload.parentNode.payload.referenceParent !== undefined) {\n if (layer.payload.referenceParent.payload.parentNode.payload.referenceParent.id === market.id) {\n \n nodesToDelete.push(timeMachine)\n \n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n for (let i = 0; i < nodesToDelete.length; i++) {\n deleteNode(nodesToDelete[i])\n }\n }\n}","id":"cf8f6b69-70f8-4035-801d-276c1e2d6b5d","savedPayload":{"position":{"x":41760.499195398515,"y":31841.017373526123},"targetPosition":{"x":41614.02097354356,"y":31680.97605960732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c78e76fc-311b-4ac7-942f-af9629ea8b76","savedPayload":{"position":{"x":41614.02097354356,"y":31680.97605960732},"targetPosition":{"x":41242.73749253987,"y":31466.604853288718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Delete Single Market Data","templateTarget":{"type":"Template Target","name":"New Template Target","id":"2d36e591-3314-4a0c-b04d-6372e961959d","savedPayload":{"position":{"x":41662.60051045396,"y":31954.075050489493},"targetPosition":{"x":41503.55623477179,"y":31806.85723421229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Session Independent Data","name":"New Session Independent Data","id":"bf04ccea-266d-4115-b50e-fefdf29b873a"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Session Independent Data') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Session Independent Data.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n\n let nodesToDelete = []\n for (let e = 0; e < target.exchangeDataProducts.length; e++) {\n let exchangeDataProducts = target.exchangeDataProducts[e]\n if (exchangeDataProducts.payload.referenceParent !== undefined) {\n if (exchangeDataProducts.payload.referenceParent.id === exchange.id) {\n for (let i = 0; i < exchangeDataProducts.singleMarketData.length; i++) {\n let singleMarketData = exchangeDataProducts.singleMarketData[i]\n if (singleMarketData.payload !== undefined) {\n if (singleMarketData.payload.referenceParent !== undefined) {\n if (singleMarketData.payload.referenceParent.id === market.id) {\n nodesToDelete.push(singleMarketData)\n }\n }\n }\n }\n if (exchangeDataProducts.singleMarketData.length === nodesToDelete.length) {\n nodesToDelete.push(exchangeDataProducts)\n }\n }\n }\n }\n\n for (let i = 0; i < nodesToDelete.length; i++) {\n deleteNode(nodesToDelete[i])\n }\n }\n}","id":"168466d3-1446-4b45-a647-ad962d1d5f2c","savedPayload":{"position":{"x":41578.48746317018,"y":32010.157336419907},"targetPosition":{"x":41503.55623477179,"y":31806.85723421229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f23edd8e-b0f9-4531-9550-69cdb0616bcc","savedPayload":{"position":{"x":41503.55623477179,"y":31806.85723421229},"targetPosition":{"x":41242.73749253987,"y":31466.604853288718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Delete Session References","templateTarget":{"type":"Template Target","name":"New Template Target","id":"4fe33613-3b67-4e0f-a4b4-6caa4e6dd163","savedPayload":{"position":{"x":41443.711470549744,"y":32077.739391028543},"targetPosition":{"x":41353.18735100165,"y":31880.891142726974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Session Based Data","name":"New Session Based Data","id":"29ca14e5-dabe-470a-be64-ed7996bd1e55"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Session Based Data') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Session Based Data.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n\n let nodesToDelete = []\n for (let e = 0; e < target.exchangeSessions.length; e++) {\n let exchangeSessions = target.exchangeSessions[e]\n if (exchangeSessions.payload.referenceParent !== undefined) {\n if (exchangeSessions.payload.referenceParent.id === exchange.id) {\n for (let i = 0; i < exchangeSessions.sessionReferences.length; i++) {\n let sessionReference = exchangeSessions.sessionReferences[i]\n let singleMarketData = sessionReference.singleMarketData\n if (singleMarketData !== undefined) {\n if (singleMarketData.payload !== undefined) {\n if (singleMarketData.payload.referenceParent !== undefined) {\n if (singleMarketData.payload.referenceParent.id === market.id) {\n nodesToDelete.push(sessionReference)\n }\n }\n }\n }\n }\n if (exchangeSessions.sessionReferences.length === nodesToDelete.length) {\n nodesToDelete.push(exchangeSessions)\n }\n }\n }\n }\n for (let i = 0; i < nodesToDelete.length; i++) {\n deleteNode(nodesToDelete[i])\n }\n }\n}","id":"f2cc52fd-cea8-437f-aa7d-a4d1100bb92e","savedPayload":{"position":{"x":41344.40711731363,"y":32097.37996261368},"targetPosition":{"x":41353.18735100165,"y":31880.891142726974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f8ffadd5-8eda-4c4e-be1c-c49b98045b42","savedPayload":{"position":{"x":41353.18735100165,"y":31880.891142726974},"targetPosition":{"x":41242.73749253987,"y":31466.604853288718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/*\nMaster Script\n*/\nfunction newNewMasterScriptInstance() {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction, masterScript) {\n /* Validations */\n if (superAction.payload.parentNode.type !== 'Market') {\n superAction.payload.uiObject.setErrorMessage('Super Action Parent Node needs to be of type Market.')\n return\n }\n for (let i = 0; i < masterScript.templateScripts.length; i++) {\n let templateScript = masterScript.templateScripts[i]\n\n if (superAction.payload.parentNode.type !== 'Market') {\n superAction.payload.uiObject.setErrorMessage('Super Action Parent Node needs to be of type Market.')\n return\n }\n if (superAction.payload.parentNode.payload.parentNode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Market needs to be a child of Exchange Markets.')\n return\n }\n if (superAction.payload.parentNode.payload.parentNode.payload.parentNode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Exchange Markets needs to be a child of an Exchange.')\n return\n }\n if (templateScript.javascriptCode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Script must have a child Javascript Code.')\n return\n }\n if (templateScript.templateTarget === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Script must have a child Template Target.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent.')\n return\n }\n try {\n let templateScriptConstructor\n\n eval(templateScript.javascriptCode.code)\n\n let executionResult = true\n let templateScriptInstance = templateScriptConstructor()\n\n if (executionResult === true) {\n executionResult = templateScriptInstance.runValidations(superAction)\n }\n\n if (executionResult !== true) { return false }\n } catch (err) {\n console.log(err.stack)\n superAction.payload.uiObject.setErrorMessage(err.message)\n return false\n }\n }\n\n return true\n }\n\n function runScript(superAction, masterScript) {\n let market = superAction.payload.parentNode\n let exchange = superAction.payload.parentNode.payload.parentNode.payload.parentNode\n\n for (let i = 0; i < masterScript.templateScripts.length; i++) {\n let templateScript = masterScript.templateScripts[i]\n\n try {\n let templateScriptConstructor\n\n eval(templateScript.javascriptCode.code)\n\n let executionResult = true\n let templateClone\n let templateScriptInstance = templateScriptConstructor()\n\n if (executionResult === true) {\n templateClone = templateScriptInstance.runScript(superAction, templateScript)\n }\n\n if (executionResult !== true) { return false }\n } catch (err) {\n console.log(err.stack)\n superAction.payload.uiObject.setErrorMessage(err.message)\n return false\n }\n }\n\n return true\n }\n}\n/*\nEnd Manster Script\n*/","id":"a9538a7f-32dd-4068-8af6-0f8a83f6f3c7","savedPayload":{"position":{"x":41186.32467320293,"y":31891.49809390885},"targetPosition":{"x":41242.73749253987,"y":31466.604853288718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c25d0331-8ac0-4834-aa77-743487455d45","savedPayload":{"position":{"x":41890.23583929248,"y":31643.061431023485},"targetPosition":{"x":40847.785430914875,"y":31041.241941751345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1dd2a75d-7d97-4994-8c95-b392d933b1c1","savedPayload":{"position":{"x":40847.785430914875,"y":31041.241941751345},"targetPosition":{"x":39643.041459281856,"y":31041.13836154292},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"S"}}},"id":"17b5ea06-62d8-4a79-b0ba-f9d3b997c17f","savedPayload":{"position":{"x":39643.041459281856,"y":31041.13836154292},"targetPosition":{"x":39643.041459281856,"y":31041.13836154292},"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/TaskServer/.env b/TaskServer/.env index 4df3b114e..1e532c64c 100644 --- a/TaskServer/.env +++ b/TaskServer/.env @@ -8,6 +8,6 @@ WRITE_LOGS_TO_FILES=true BOTS_PATH=../Legacy-Code LOG_PATH=../Log-Files -WEB_SOCKETS_SERVER_PORT=8080 -WEB_SERVER_PORT=34247 +WEB_SOCKETS_SERVER_PORT=8081 +WEB_SERVER_PORT=34248 WEB_SERVER_URL=localhost diff --git a/TaskServer/Assistant.js b/TaskServer/Assistant.js deleted file mode 100644 index 9a98b1cbd..000000000 --- a/TaskServer/Assistant.js +++ /dev/null @@ -1,1127 +0,0 @@ -exports.newAssistant = function newAssistant(BOT, logger, UTILITIES) { - - /* - This module allows trading bots to execute actions on the exchange. - */ - - const MODULE_NAME = "Assistant"; - - let bot = BOT; - - let thisObject = { - dataDependencies: undefined, - initialize: initialize, - createOrder: createOrder, - getPositions: getPositions, - getBalance: getBalance, - getAvailableBalance: getAvailableBalance, - getInitialBalance: getInitialBalance, - getProfits: getProfits, - getCombinedProfits: getCombinedProfits, - getROI: getROI, - getMarketRate: getMarketRate, - getTicker: getTicker, - sendMessage: sendMessage, - rememberThis: rememberThis, - remindMeOf: remindMeOf, - truncDecimals: truncDecimals, - sendEmail: sendEmail, - addExtraData: addExtraData - }; - - let utilities = UTILITIES.newCloudUtilities(logger); - - let openOrders = []; // These are the open positions at the exchange at the account the bot is authorized to use. - let openPositions = []; // These are the open positions the bot knows it made by itself. - - let context; - let exchangeAPI; - - let marketRate; - let ticker; - - return thisObject; - - function initialize(pContext, pExchangeAPI, pDataDependencies, callBackFunction) { - - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Entering function."); } - - /* Save local values. */ - - context = pContext; - exchangeAPI = pExchangeAPI; - thisObject.dataDependencies = pDataDependencies; - - switch (bot.startMode) { - - case 'Live': { - getMarketRateFromExchange(); - break; - } - - case 'Backtest': { - validateExchangeSyncronicity(); - break; - } - - default: { - logger.write(MODULE_NAME, "[ERROR] initialize -> Unexpected bot.startMode."); - logger.write(MODULE_NAME, "[ERROR] initialize -> bot.startMode = " + bot.startMode); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - function getMarketRateFromExchange() { - - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> getMarketRateFromExchange -> Entering function."); } - - exchangeAPI.getTicker(bot.market, onTicker); - - return; - - function onTicker(err, pTicker) { - - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> getMarketRateFromExchange -> onTicker -> Entering function."); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> getMarketRateFromExchange -> onTicker -> We could not get the Market Price now."); } - - callBackFunction(global.DEFAULT_RETRY_RESPONSE); - return; - } - - ticker = pTicker; - marketRate = pTicker.last; - - context.newHistoryRecord.marketRate = marketRate; - - validateExchangeSyncronicity(); - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> getMarketRateFromExchange -> onTicker -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> getMarketRateFromExchange -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function validateExchangeSyncronicity() { - - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> validateExchangeSyncronicity -> Entering function."); } - - /* Procedure to validate we are in sync with the exchange. */ - - getPositionsAtExchange(onDone); - - function onDone(err) { - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> validateExchangeSyncronicity -> onDone -> Entering function."); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> validateExchangeSyncronicity -> onDone -> Execution finished well."); } - calculateProfits(); - return; - } - break; - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[ERROR] initialize -> validateExchangeSyncronicity -> onDone -> Retry Later. Requesting Execution Retry."); - callBackFunction(err); - return; - } - break; - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - logger.write(MODULE_NAME, "[ERROR] initialize -> validateExchangeSyncronicity -> onDone -> Operation Failed. Aborting the process."); - callBackFunction(err); - return; - } - break; - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> validateExchangeSyncronicity -> onDone -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> onDone -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function calculateProfits() { - - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> calculateProfits -> Entering function."); } - - /* Calculate Profits */ - - if (context.executionContext.initialBalance.baseAsset > 0) { - - context.executionContext.profits.baseAsset = (thisObject.truncDecimals(context.executionContext.balance.baseAsset) - thisObject.truncDecimals(context.executionContext.initialBalance.baseAsset)) / thisObject.truncDecimals(context.executionContext.initialBalance.baseAsset); - context.executionContext.profits.baseAsset = thisObject.truncDecimals(context.executionContext.profits.baseAsset); - } - - if (context.executionContext.initialBalance.quotedAsset > 0) { - - context.executionContext.profits.quotedAsset = (thisObject.truncDecimals(context.executionContext.balance.quotedAsset) - thisObject.truncDecimals(context.executionContext.initialBalance.quotedAsset)) / thisObject.truncDecimals(context.executionContext.initialBalance.quotedAsset); - context.executionContext.profits.quotedAsset = thisObject.truncDecimals(context.executionContext.profits.quotedAsset); - } - - context.newHistoryRecord.profitsBaseAsset = context.executionContext.profits.baseAsset; - context.newHistoryRecord.profitsQuotedAsset = context.executionContext.profits.quotedAsset; - - /* Calculate Combined Profits */ - - if (context.executionContext.initialBalance.baseAsset > 0) { - - let convertedAssetsB = (thisObject.truncDecimals(context.executionContext.balance.quotedAsset) - thisObject.truncDecimals(context.executionContext.initialBalance.quotedAsset)) * marketRate; - convertedAssetsB = thisObject.truncDecimals(convertedAssetsB); - - context.executionContext.combinedProfits.baseAsset = (thisObject.truncDecimals(context.executionContext.balance.baseAsset) + convertedAssetsB - thisObject.truncDecimals(context.executionContext.initialBalance.baseAsset)) / thisObject.truncDecimals(context.executionContext.initialBalance.baseAsset) * 100; - context.executionContext.combinedProfits.baseAsset = thisObject.truncDecimals(context.executionContext.combinedProfits.baseAsset); - } - - if (context.executionContext.initialBalance.quotedAsset > 0) { - - let convertedAssetsA = (thisObject.truncDecimals(context.executionContext.balance.baseAsset) - thisObject.truncDecimals(context.executionContext.initialBalance.baseAsset)) / marketRate; - convertedAssetsA = thisObject.truncDecimals(convertedAssetsA); - - context.executionContext.combinedProfits.quotedAsset = (thisObject.truncDecimals(context.executionContext.balance.quotedAsset) + convertedAssetsA - thisObject.truncDecimals(context.executionContext.initialBalance.quotedAsset)) / thisObject.truncDecimals(context.executionContext.initialBalance.quotedAsset) * 100; - context.executionContext.combinedProfits.quotedAsset = thisObject.truncDecimals(context.executionContext.combinedProfits.quotedAsset); - } - - context.newHistoryRecord.combinedProfitsA = context.executionContext.combinedProfits.baseAsset; - context.newHistoryRecord.combinedProfitsB = context.executionContext.combinedProfits.quotedAsset; - - callBackFunction(global.DEFAULT_OK_RESPONSE); - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> calculateProfits -> err = " + err.stack); - callBack(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function getPositionsAtExchange(callBack) { - - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getPositionsAtExchange -> Entering function."); } - - /* - - Here we grab all the positions at the exchange for the account we are using for trading. We will not asume all the positions - were made by this bot, but we need them all to later check if all the ones made by the bot are still there, were executed or - manually cancelled by the exchange account owner. - - */ - - switch (bot.startMode) { - - case "Live": { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getPositionsAtExchange -> Live Mode Detected."); } - exchangeAPI.getOpenOrders(bot.market, onResponse); - break; - } - - case "Backtest": { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getPositionsAtExchange -> Backtest Mode Detected."); } - let openOrders = []; // We simulate all positions were executed. - onResponse(global.DEFAULT_OK_RESPONSE, openOrders); - break; - } - - default: { - logger.write(MODULE_NAME, "[ERROR] getPositionsAtExchange -> Unexpected bot.startMode."); - logger.write(MODULE_NAME, "[ERROR] getPositionsAtExchange -> bot.startMode = " + bot.startMode); - callBack(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - function onResponse(err, pOpenOrders) { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getPositionsAtExchange -> onResponse -> Entering function."); } - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getPositionsAtExchange -> onResponse -> pOpenOrders = " + JSON.stringify(pOpenOrders)); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { // Everything went well, we have the information requested. - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getPositionsAtExchange -> onResponse -> Execution finished well."); } - openOrders = pOpenOrders; - ordersExecutionCheck(callBack); - return; - } - break; - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[ERROR] getPositionsAtExchange -> onResponse -> Retry Later. Requesting Execution Retry."); - callBack(err); - return; - } - break; - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - logger.write(MODULE_NAME, "[ERROR] getPositionsAtExchange -> onResponse -> Operation Failed. Aborting the process."); - callBack(err); - return; - } - break; - } - } - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] getPositionsAtExchange -> err = " + err.stack); - callBack(global.DEFAULT_FAIL_RESPONSE); - } - } - - function ordersExecutionCheck(callBack) { - - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> Entering function."); } - - /* - - Here we check that all the positions we know are still valid at the exchange. If they are not, we will try to take appropiate - actions. Reasons why the positions might not be there are: - - 1. The user / account owner closed the positions manually. - 2. The exchange for some reason closed the positions. In some exchanges positions have an expiration time. - 3. The orders were executed. - - Situations 1 and 2 are similar unexpected and we will stop the bot execution when we detect them. Number 3 is an - expected behaviour and we will take appropiate action. - - Also, the position might still be there but it might have been partially executed. To detect that we need to compare the - position amounts we have on file to the one we are receiving from the exchange. - - Before we begin, we have to remove all the orders that have been already closed at the last execution of the bot. - - */ - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> JSON.stringify(context.executionContext.positions) = " + JSON.stringify(context.executionContext.positions)); } - - let openPositions = []; - - for (let a = 0; a < context.executionContext.positions.length; a++) { - - if (context.executionContext.positions[a].status === "open") { - - openPositions.push(context.executionContext.positions[a]); - - } - } - - /* - - This removes all orders leaving only the not executed position. Consider that we do want executed positions to be recored on the file so as to - have a record of their execution. But at next execution these records must be deleted before the new Execution Context file is created and - this is what we do here. - - */ - - context.executionContext.positions = openPositions; - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> Removing executed positions."); } - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> JSON.stringify(context.executionContext.positions) = " + JSON.stringify(context.executionContext.positions)); } - - /* Now we can start checking what happened at the exchange. */ - - let i = 0; - - controlLoop(); - - function loopBody() { - - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> Entering function."); } - - let position = context.executionContext.positions[i]; - let exchangePosition; - - for (let j = 0; j < openOrders.length; j++) { - - if (position.id === openOrders[j].id) { - - exchangePosition = openOrders[j]; - positionFound(); - return; - } - } - - positionNotFound(); - return; - - function positionFound() { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> positionFound -> Entering function."); } - - /* - We update the final amountA based on what we got from the exchange. - This is needed since the values could be different from what we calculate. - */ - position.amountA = exchangePosition.amountA; - - /* - We need to know if the order was partially executed. To know that, we compare the amounts on file with the ones - received from the exchange. If they are the same, then the order is intact. Otherwise, to confirm a partial execution, - we will request the associated trades from the exchange. - */ - - if (position.amountB === exchangePosition.amountB) { - - /* Position is still there, untouched. Nothing to do here. */ - - next(); - return; - - } else { - - getPositionTradesAtExchange(position.id, confirmOrderWasPartiallyExecuted); - return; - - } - } - - function positionNotFound() { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> positionNotFound -> Entering function."); } - - /* Position not found: we need to know if the order was executed. */ - - getPositionTradesAtExchange(position.id, confirmOrderWasExecuted); - - } - - function getPositionTradesAtExchange(pOrderId, innerCallBack) { - - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> getPositionTradesAtExchange -> Entering function."); } - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> getPositionTradesAtExchange -> pOrderId = " + pOrderId); } - - /* - - Given one position, we request all the associated trades to it. - - */ - - switch (bot.startMode) { - - case "Live": { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> getPositionTradesAtExchange -> Live Mode Detected."); } - exchangeAPI.getOrder(pOrderId, bot.market, onResponse); - return; - - } - - case "Backtest": { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> getPositionTradesAtExchange -> Backtest Mode Detected."); } - - let trades = []; - - /* We look for the position at the executionContext */ - - for (let i = 0; i < context.executionContext.positions.length; i++) { - - let thisOrder = context.executionContext.positions[i]; - - if (thisOrder.id === pOrderId) { - - let feeRate = 0.002; // Default backtesting fee simulation - - let trade = { - id: Math.trunc(Math.random(1) * 1000000), - type: thisOrder.type, - rate: thisOrder.rate.toString(), - amountA: thisObject.truncDecimals(thisOrder.amountA).toString(), - amountB: thisObject.truncDecimals(thisOrder.amountB).toString(), - fee: thisObject.truncDecimals(feeRate).toString(), - date: (new Date()).valueOf() - } - - trades.push(trade); - - let order = { - trades: trades - } - onResponse(global.DEFAULT_OK_RESPONSE, order); - - return; - } - } - - logger.write(MODULE_NAME, "[ERROR] ordersExecutionCheck -> loopBody -> getPositionTradesAtExchange -> Position not found at Executioin Context."); - callBack(global.DEFAULT_FAIL_RESPONSE); - return; - } - - default: { - logger.write(MODULE_NAME, "[ERROR] ordersExecutionCheck -> loopBody -> getPositionTradesAtExchange -> Unexpected bot.startMode."); - logger.write(MODULE_NAME, "[ERROR] ordersExecutionCheck -> loopBody -> getPositionTradesAtExchange -> bot.startMode = " + bot.startMode); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - function onResponse(err, order) { - - try { - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> getPositionTradesAtExchange -> onResponse -> Entering function."); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { // Everything went well, we have the information requested. - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> getPositionTradesAtExchange -> onResponse -> Execution finished well."); } - innerCallBack(order); - } - break; - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[ERROR] ordersExecutionCheck -> loopBody -> getPositionTradesAtExchange -> onResponse -> Retry Later. Requesting Execution Retry."); - callBack(global.DEFAULT_RETRY_RESPONSE); - return; - } - break; - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - logger.write(MODULE_NAME, "[ERROR] ordersExecutionCheck -> loopBody -> getPositionTradesAtExchange -> onResponse -> Operation Failed. Aborting the process."); - callBack(global.DEFAULT_FAIL_RESPONSE); - return; - } - break; - } - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] ordersExecutionCheck -> loopBody -> getPositionTradesAtExchange -> onResponse -> err = " + err.stack); - callBack(global.DEFAULT_FAIL_RESPONSE); - } - } - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] ordersExecutionCheck -> loopBody -> getPositionTradesAtExchange -> err = " + err.stack); - callBack(global.DEFAULT_FAIL_RESPONSE); - } - } - - function confirmOrderWasExecuted(order) { - - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> confirmOrderWasExecuted -> Entering function."); } - if (global.LOG_CONTROL[MODULE_NAME].logContent === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> confirmOrderWasExecuted -> trades = " + JSON.stringify(trades)); } - - let trades = order.trades - /* - - To confirm everything is ok, we will add all the amounts on trades asociated to the order and - they must be equal to the one on file. Otherwise something very strange could have happened, - in which case we will halt the bot execution. - - */ - - let sumBaseAsset = 0; - let sumQuotedAsset = 0; - let sumRate = 0; - - for (let k = 0; k < trades.length; k++) { - let trade = trades[k]; - sumBaseAsset = sumBaseAsset + thisObject.truncDecimals(trade.amountA); - sumQuotedAsset = sumQuotedAsset + thisObject.truncDecimals(trade.amountB); - sumRate = sumRate + thisObject.truncDecimals(trade.rate); - } - - sumBaseAsset = thisObject.truncDecimals(sumBaseAsset); - sumQuotedAsset = thisObject.truncDecimals(sumQuotedAsset); - - if (position.amountB !== sumQuotedAsset) { - logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> position.amountB = " + position.amountB); - logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> sumQuotedAsset = " + sumQuotedAsset); - - logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> confirmOrderWasExecuted -> Cannot be confirmed that the order was executed. It must be manually cancelled by the user or cancelled by the exchange itself."); - logger.write(MODULE_NAME, "[HINT] ordersExecutionCheck -> loopBody -> confirmOrderWasExecuted -> If the process was abruptally cancelled and then restarted, it is possible that now is not sincronized with the exchange."); - logger.write(MODULE_NAME, "[HINT] ordersExecutionCheck -> loopBody -> confirmOrderWasExecuted -> In any case, to continue, you must manually delete the orders at the exchange."); - callBack(global.DEFAULT_FAIL_RESPONSE); - return; - } - - /* - - Confirmed that order was executed. Next thing to do is to remember the trades and change its status. - - */ - - position.status = "executed"; - - if (position.type === "sell") { - context.newHistoryRecord.sellExecRate = sumRate / trades.length; - } else { - context.newHistoryRecord.buyExecRate = sumRate / trades.length; - } - - applyTradesToContext(trades); - - let newTransaction = { - type: position.type + " executed", - position: position - }; - - context.executionContext.transactions.push(newTransaction); - - /* All done. */ - - next(); - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] ordersExecutionCheck -> loopBody -> confirmOrderWasExecuted -> err = " + err.stack); - callBack(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - function confirmOrderWasPartiallyExecuted(trades) { - - try { - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> confirmOrderWasPartiallyExecuted -> Entering function."); } - - let trades = order.trades - - /* - - To confirm everything is ok, we will add all the amounts on trades plus the remaining amounts - at the order at the exchange and they must be equal to the one on file. Otherwise an inconsistent - state has been detected, in which case we will halt the bot execution. - - */ - - let sumBaseAsset = 0; - let sumQuotedAsset = 0; - - for (let k = 0; k < trades.length; k++) { - let trade = trades[k]; - sumBaseAsset = sumBaseAsset + thisObject.truncDecimals(trade.amountA); - sumQuotedAsset = sumQuotedAsset + thisObject.truncDecimals(trade.amountB); - } - - /* To this we add the current position amounts. */ - - sumBaseAsset = sumBaseAsset + thisObject.truncDecimals(exchangePosition.amountA); - sumQuotedAsset = sumQuotedAsset + thisObject.truncDecimals(exchangePosition.amountB); - - sumBaseAsset = thisObject.truncDecimals(sumBaseAsset); - sumQuotedAsset = thisObject.truncDecimals(sumQuotedAsset); - - /* - * Next let's get the max decimal positions for the pair being trade returned by the exchange and validate that at least - * one decimal position less than the max matches. The reason for this is because there could be some - * rounding on the exchange when there are partial executed orders that will interfiere with the exact validation. - * - * IE: For Poloniex USDT/BTC the max returned decimal positions is 8, it means we will validate that the diference is less than 0.0000001 - */ - - let exchangeParam = exchangeAPI.getMaxDecimalPositions(); - let minValue = '0.' + (1).toPrecision(exchangeParam - 1).split('.').reverse().join(''); - let exchangePrecision = parseFloat(parseFloat(minValue).toFixed(exchangeParam)); - - if (Math.abs(position.amountA - sumBaseAsset) > exchangePrecision || Math.abs(position.amountB - sumQuotedAsset) > exchangePrecision) { - - logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> confirmOrderWasPartiallyExecuted -> position.amountA = " + position.amountA); - logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> confirmOrderWasPartiallyExecuted -> sumBaseAsset = " + sumBaseAsset); - logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> confirmOrderWasPartiallyExecuted -> position.amountB = " + position.amountB); - logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> confirmOrderWasPartiallyExecuted -> sumQuotedAsset = " + sumQuotedAsset); - - logger.write(MODULE_NAME, "[ERROR] ordersExecutionCheck -> loopBody -> confirmOrderWasPartiallyExecuted -> Cannot confirm that a partial execution was done well."); - - /* There are diferences on the responses between the getPosition and getTrades that causes some issues, let's retry. */ - callBack(global.DEFAULT_RETRY_RESPONSE); - return; - } - - /* - - Confirmed that order was partially executed. Next thing to do is to remember the trades and the new position. - - */ - - position.amountA = exchangePosition.amountA; - position.amountB = exchangePosition.amountB; - position.date = (new Date(exchangePosition.date)).valueOf(); - - applyTradesToContext(trades); - - let newTransaction = { - type: position.type + " partially executed", - position: position - }; - - context.executionContext.transactions.push(newTransaction); - - /* All done. */ - - next(); - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] ordersExecutionCheck -> loopBody -> confirmOrderWasPartiallyExecuted -> err = " + err.stack); - callBack(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - function applyTradesToContext(trades) { - - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> loopBody -> applyTradesToContext -> Entering function."); } - - /* Here we apply the trades that already happened at the exchange to the balance and available balance of the bot. We also calculate its profits. */ - - for (k = 0; k < trades.length; k++) { - - let trade = trades[k]; - - position.trades.push(trade); - - context.newHistoryRecord.newTrades++; - - /* Calculate Balances */ - - let baseAsset = 0; - let quotedAsset = 0; - - if (trade.type === 'buy') { - - /* - - The fee received at each trade is the factor by which if we multiply asset B, we get the amount of Asset B extracted as fees by the exchange. - This happens with each individual trade. Remeber that one order can potentially be executed with 1 to many trades. - - */ - - let feeAmount = thisObject.truncDecimals(Number(trade.fee) * Number(trade.amountB)); - - baseAsset = Number(trade.amountA); - quotedAsset = Number(trade.amountB) - feeAmount; - - context.executionContext.balance.baseAsset = thisObject.truncDecimals(context.executionContext.balance.baseAsset - baseAsset); - context.executionContext.balance.quotedAsset = thisObject.truncDecimals(context.executionContext.balance.quotedAsset + quotedAsset); - - context.executionContext.availableBalance.quotedAsset = thisObject.truncDecimals(context.executionContext.availableBalance.quotedAsset + quotedAsset); - - /* Not the available balance for asset A is not affected since it was already reduced when the order was placed. */ - - } - - if (trade.type === 'sell') { - - /* - - The fee received at each trade is the factor by which if we multiply asset A, we get the amount of Asset A extracted as fees by the exchange. - This happens with each individual trade. Remeber that one order can potentially be executed with 1 to many trades. - - */ - - let feeAmount = thisObject.truncDecimals(Number(trade.fee) * Number(trade.amountA)); - - baseAsset = Number(trade.amountA) - feeAmount; - quotedAsset = Number(trade.amountB); - - context.executionContext.balance.baseAsset = thisObject.truncDecimals(context.executionContext.balance.baseAsset + baseAsset); - context.executionContext.balance.quotedAsset = thisObject.truncDecimals(context.executionContext.balance.quotedAsset - quotedAsset); - - context.executionContext.availableBalance.baseAsset = thisObject.truncDecimals(context.executionContext.availableBalance.baseAsset + baseAsset); - - /* Not the available balance for asset B is not affected since it was already reduced when the order was placed. */ - - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] ordersExecutionCheck -> loopBody -> applyTradesToContext -> err = " + err.stack); - callBack(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] ordersExecutionCheck -> loopBody -> err = " + err.stack); - callBack(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - function next() { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> next -> Entering function."); } - - i++; - controlLoop(); - - } - - function controlLoop() { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> controlLoop -> Entering function."); } - - if (i < context.executionContext.positions.length) { - - loopBody(); - - } else { - - final(); - - } - } - - function final() { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] ordersExecutionCheck -> final -> Entering function."); } - - callBack(global.DEFAULT_OK_RESPONSE); - - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] ordersExecutionCheck -> err = " + err.stack); - callBack(global.DEFAULT_FAIL_RESPONSE); - } - } - - function createOrder(pType, pRate, pAmountA, pAmountB, callBackFunction) { - - try { - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] createOrder -> Entering function."); } - - /* Removing extra decimals. */ - - pRate = thisObject.truncDecimals(pRate); - pAmountA = thisObject.truncDecimals(pAmountA); - pAmountB = thisObject.truncDecimals(pAmountB); - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] createOrder -> pType = " + pType); } - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] createOrder -> pRate = " + pRate); } - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] createOrder -> pAmountA = " + pAmountA); } - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] createOrder -> pAmountB = " + pAmountB); } - - /* Validations that the limits are not surpassed. */ - - if (pType === 'buy') { - - if (pAmountA > thisObject.truncDecimals(context.executionContext.availableBalance.baseAsset)) { - - logger.write(MODULE_NAME, "[ERROR] createOrder -> Input Validations -> pAmountA is grater than the Available Balance."); - logger.write(MODULE_NAME, "[ERROR] createOrder -> Input Validations -> pAmountA = " + pAmountA); - logger.write(MODULE_NAME, "[ERROR] createOrder -> Input Validations -> Available Balance = " + thisObject.truncDecimals(context.executionContext.availableBalance.baseAsset)); - - let err = { - result: global.DEFAULT_FAIL_RESPONSE.result, - message: 'Not Enough Available Balance to Buy.' - }; - - callBackFunction(err); - return; - } - } - - if (pType === 'sell') { - - if (pAmountB > thisObject.truncDecimals(context.executionContext.availableBalance.quotedAsset)) { - - logger.write(MODULE_NAME, "[ERROR] createOrder -> Input Validations -> pAmountB is grater than the Available Balance."); - logger.write(MODULE_NAME, "[ERROR] createOrder -> Input Validations -> pAmountB = " + pAmountB); - logger.write(MODULE_NAME, "[ERROR] createOrder -> Input Validations -> Available Balance = " + thisObject.truncDecimals(context.executionContext.availableBalance.quotedAsset)); - - let err = { - result: global.DEFAULT_FAIL_RESPONSE.result, - message: 'Not Enough Available Balance to Sell.' - }; - - callBackFunction(err); - return; - } - } - - /* All validations passed, we proceed. */ - - switch (bot.startMode) { - - case "Live": { - - exchangeAPI.createOrder(bot.market, pType, pRate, pAmountA, pAmountB, onResponse); - return; - } - - case "Backtest": { - - if (pRate !== marketRate) { - - logger.write(MODULE_NAME, "[WARNING] createOrder -> Input Validations -> createOrder Rate can is different to marketRate while in Backtesting Mode. "); - //onResponse(global.DEFAULT_FAIL_RESPONSE, positionId); - } - - let positionId = Math.trunc(Math.random(1) * 1000000); - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] createOrder -> Simulating Exchange Response -> orderId = " + positionId); } - onResponse(global.DEFAULT_OK_RESPONSE, positionId); - return; - } - - default: { - logger.write(MODULE_NAME, "[ERROR] createOrder -> Unexpected bot.startMode."); - logger.write(MODULE_NAME, "[ERROR] createOrder -> bot.startMode = " + bot.startMode); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - function onResponse(err, order) { - - try { - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] createOrder -> onResponse -> Entering function."); } - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] createOrder -> onResponse -> order.id = " + order.id); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { // Everything went well, we have the information requested. - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] createOrder -> onResponse -> Execution finished well."); } - - let position = { - id: order.id, - type: pType, - rate: pRate, - amountA: pAmountA, - amountB: pAmountB, - date: (bot.processDatetime.valueOf()), - status: "open", - trades: [] - }; - - context.executionContext.positions.push(position); - - let newTransaction = { - type: "newPosition", - position: position - }; - - context.executionContext.transactions.push(newTransaction); - - context.newHistoryRecord.newPositions++; - - recalculateRateAverages(); - - /* Recalculate Available Balances */ - - if (position.type === 'buy') { - - context.executionContext.availableBalance.baseAsset = thisObject.truncDecimals(context.executionContext.availableBalance.baseAsset - pAmountA); - context.newHistoryRecord.lastBuyRate = pRate; - } - - if (position.type === 'sell') { - - context.executionContext.availableBalance.quotedAsset = thisObject.truncDecimals(context.executionContext.availableBalance.quotedAsset - pAmountB); - context.newHistoryRecord.lastSellRate = pRate; - } - - callBackFunction(global.DEFAULT_OK_RESPONSE, position); - return; - } - break; - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[ERROR] createOrder -> onResponse -> Retry Later. Requesting Execution Retry."); - callBackFunction(global.DEFAULT_RETRY_RESPONSE); - return; - } - break; - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - logger.write(MODULE_NAME, "[ERROR] createOrder -> onResponse -> Operation Failed. Aborting the process."); - callBackFunction(err); - return; - } - break; - } - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] createOrder -> onResponse -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] createOrder -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function getPublicTradeHistory(baseAsset, quotedAsset, startTime, endTime, callback) { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getTradeHistory -> Entering function."); } - - exchangeAPI.getPublicTradeHistory(baseAsset, quotedAsset, startTime, endTime, callback); - } - - function recalculateRateAverages() { - - /* This function calculates the weighted rates of buy and sell positions. This is a way to summarize with only one rate, where the positions are. */ - - let sumBuyWeightedRates = 0; - let sumSellWeightedRates = 0; - - let sumBuyWeights = 0; - let sumSellWeights = 0; - - for (let i = 0; i < context.executionContext.positions.length; i++) { - - let position = context.executionContext.positions[i]; - - if (position.type === 'buy') { - - sumBuyWeightedRates = sumBuyWeightedRates + position.rate * position.amountB - sumBuyWeights = sumBuyWeights + position.amountB; - - } - - if (position.type === 'sell') { - - sumSellWeightedRates = sumSellWeightedRates + position.rate * position.amountB - sumSellWeights = sumSellWeights + position.amountB; - - } - - } - - context.newHistoryRecord.buyAvgRate = (sumBuyWeightedRates / sumBuyWeights || 0); - context.newHistoryRecord.sellAvgRate = (sumSellWeightedRates / sumSellWeights || 0); - } - - function getPositions() { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getPositions -> Entering function."); } - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getPositions -> JSON.stringify(context.executionContext.positions) = " + JSON.stringify(context.executionContext.positions)); } - - return JSON.parse(JSON.stringify(context.executionContext.positions)); - } - - function getBalance() { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getBalance -> Entering function."); } - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getBalance -> JSON.stringify(context.executionContext.balance) = " + JSON.stringify(context.executionContext.balance)); } - - return JSON.parse(JSON.stringify(context.executionContext.balance)); - } - - function getAvailableBalance() { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getAvailableBalance -> Entering function."); } - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getAvailableBalance -> JSON.stringify(context.executionContext.availableBalance) = " + JSON.stringify(context.executionContext.availableBalance)); } - - return JSON.parse(JSON.stringify(context.executionContext.availableBalance)); - } - - function getInitialBalance() { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getInitialBalance -> Entering function."); } - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getInitialBalance -> JSON.stringify(context.executionContext.initialBalance) = " + JSON.stringify(context.executionContext.initialBalance)); } - - return JSON.parse(JSON.stringify(context.executionContext.initialBalance)); - } - - function getProfits() { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getProfits -> Entering function."); } - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getProfits -> JSON.stringify(context.executionContext.profits) = " + JSON.stringify(context.executionContext.profits)); } - - return JSON.parse(JSON.stringify(context.executionContext.profits)); - } - - function getCombinedProfits() { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getCombinedProfits -> Entering function."); } - - let combinedProfits = { - baseAsset: context.newHistoryRecord.combinedProfitsA, - quotedAsset: context.newHistoryRecord.combinedProfitsB - } - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getCombinedProfits -> JSON.stringify(combinedProfits) = " + JSON.stringify(combinedProfits)); } - - return JSON.parse(JSON.stringify(combinedProfits)); - } - - function getROI() { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getROI -> Entering function."); } - - let ROI = { - baseAsset: (context.executionContext.balance.baseAsset - context.executionContext.initialBalance.baseAsset) / context.executionContext.initialBalance.baseAsset * 100, - quotedAsset: (context.executionContext.balance.quotedAsset - context.executionContext.initialBalance.quotedAsset) / context.executionContext.initialBalance.quotedAsset * 100 - } - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getROI -> JSON.stringify(ROI) = " + JSON.stringify(ROI)); } - - return JSON.parse(JSON.stringify(ROI)); - } - - function getMarketRate() { - return marketRate; - } - - function getTicker() { - return ticker; - } - - function sendMessage(pRelevance, pTitle, pBody) { - let runIndex = context.statusReport.runs.length - 1; - - context.newHistoryRecord.messageRelevance = pRelevance; - context.newHistoryRecord.messageTitle = bot.startMode + "." + runIndex + ": " + pTitle; - context.newHistoryRecord.messageBody = pBody; - } - - function rememberThis(pKey, pValue) { - if (context.executionContext.remember === undefined) { - context.executionContext.remember = {}; - } - context.executionContext.remember[pKey] = pValue; - } - - function remindMeOf(pKey) { - if (context.executionContext.remember === undefined) { - context.executionContext.remember = {}; - } - return context.executionContext.remember[pKey]; - } - - function sendEmail(pTitle, pBody, pTo) { - logger.write(MODULE_NAME, "[WARN] sendEmail -> Send emails is currently disabled."); - return; - } - - function addExtraData(pExtraDataArray) { - context.extraData.push(pExtraDataArray); - } - - function truncDecimals(pFloatValue, pDecimals) { - if (!pDecimals) pDecimals = 8; // Default value - return parseFloat(parseFloat(pFloatValue).toFixed(pDecimals)); - } -}; diff --git a/TaskServer/Commons.js b/TaskServer/Commons.js index fcc9ded0b..050791f24 100644 --- a/TaskServer/Commons.js +++ b/TaskServer/Commons.js @@ -2,8 +2,6 @@ const FULL_LOG = true; const LOG_FILE_CONTENT = false; - const ONE_DAY_IN_MILISECONDS = 24 * 60 * 60 * 1000; - const ONE_MIN_IN_MILISECONDS = 60 * 1000; const MODULE_NAME = "Commons"; @@ -12,7 +10,7 @@ validateOutputDatasets: validateOutputDatasets, inflateDatafiles: inflateDatafiles, dataBuildingProcedure: dataBuildingProcedure, - calculationsProcedure: calculationsProcedure, + calculationsProcedure: calculationsProcedure, generateFileContent: generateFileContent, writeFile: writeFile }; @@ -25,15 +23,15 @@ function validateDataDependencies(dataDependencies, callBackFunction) { for (let i = 0; i < dataDependencies.length; i++) { - let dataDependencyNode = dataDependencies[i] + let dataDependencyNode = dataDependencies[i] /* Basic validations to see if we have everything we need. */ - if (dataDependencyNode.referenceParent.parentNode.code.singularVariableName === undefined) { + if (dataDependencyNode.referenceParent.parentNode.config.singularVariableName === undefined) { logger.write(MODULE_NAME, "[ERROR] start -> Product Definition without a Single Variable Name defined. Product Definition = " + JSON.stringify(dataDependencyNode.referenceParent.parentNode)); callBackFunction(global.DEFAULT_FAIL_RESPONSE); return } - if (dataDependencyNode.referenceParent.parentNode.code.pluralVariableName === undefined) { + if (dataDependencyNode.referenceParent.parentNode.config.pluralVariableName === undefined) { logger.write(MODULE_NAME, "[ERROR] start -> Product Definition without a Plural Variable Name defined. Product Definition = " + JSON.stringify(dataDependencyNode.referenceParent.parentNode)); callBackFunction(global.DEFAULT_FAIL_RESPONSE); return @@ -61,12 +59,12 @@ callBackFunction(global.DEFAULT_FAIL_RESPONSE); return } - if (outputDatasetNode.referenceParent.parentNode.code.singularVariableName === undefined) { + if (outputDatasetNode.referenceParent.parentNode.config.singularVariableName === undefined) { logger.write(MODULE_NAME, "[ERROR] start -> Product Definition without a Single Variable Name defined. Product Definition = " + JSON.stringify(outputDatasetNode.referenceParent.parentNode)); callBackFunction(global.DEFAULT_FAIL_RESPONSE); return } - if (outputDatasetNode.referenceParent.parentNode.code.pluralVariableName === undefined) { + if (outputDatasetNode.referenceParent.parentNode.config.pluralVariableName === undefined) { logger.write(MODULE_NAME, "[ERROR] start -> Product Definition without a Plural Variable Name defined. Product Definition = " + JSON.stringify(outputDatasetNode.referenceParent.parentNode)); callBackFunction(global.DEFAULT_FAIL_RESPONSE); return @@ -77,9 +75,9 @@ return } if (outputDatasetNode.referenceParent.parentNode.dataBuilding === undefined) { - logger.write(MODULE_NAME, "[WARN] start -> Product Definition " + outputDatasetNode.referenceParent.parentNode.name + " without a Data Building Procedure. Product Definition = " + JSON.stringify(outputDatasetNode.referenceParent.parentNode)); + logger.write(MODULE_NAME, "[WARN] start -> Product Definition " + outputDatasetNode.referenceParent.parentNode.name + " without a Data Building Procedure. Product Definition Name = " + outputDatasetNode.referenceParent.parentNode.name); } - if (outputDatasetNode.referenceParent.code.codeName === undefined) { + if (outputDatasetNode.referenceParent.config.codeName === undefined) { logger.write(MODULE_NAME, "[ERROR] start -> Dataset witn no codeName defined. Product Dataset = " + JSON.stringify(outputDatasetNode.referenceParent)); callBackFunction(global.DEFAULT_FAIL_RESPONSE); return @@ -91,35 +89,49 @@ return } - if (outputDatasetNode.referenceParent.parentNode.code.codeName === undefined) { + if (outputDatasetNode.referenceParent.parentNode.config.codeName === undefined) { logger.write(MODULE_NAME, "[ERROR] start -> Product Definition witn no codeName defined. Product Definition = " + JSON.stringify(outputDatasetNode.referenceParent.parentNode)); callBackFunction(global.DEFAULT_FAIL_RESPONSE); return } - if (outputDatasetNode.referenceParent.parentNode.parentNode === undefined) { - logger.write(MODULE_NAME, "[ERROR] start -> Product Definition not attached to a Bot. Product Definition = " + JSON.stringify(outputDatasetNode.referenceParent.parentNode)); + let botNode = global.FIND_NODE_IN_NODE_MESH(outputDatasetNode, 'Indicator Bot') + if (botNode === undefined) { + botNode = global.FIND_NODE_IN_NODE_MESH(outputDatasetNode, 'Trading Bot') + } + if (botNode === undefined) { + logger.write(MODULE_NAME, "[ERROR] start -> Product Definition not attached to a Bot. Product Definition = "); callBackFunction(global.DEFAULT_FAIL_RESPONSE); return } - if (outputDatasetNode.referenceParent.parentNode.parentNode.code.codeName === undefined) { - logger.write(MODULE_NAME, "[ERROR] start -> Bot witn no codeName defined. Bot = " + JSON.stringify(outputDatasetNode.referenceParent.parentNode.parentNode)); + if (botNode.config.codeName === undefined) { + logger.write(MODULE_NAME, "[ERROR] start -> Bot witn no codeName defined."); callBackFunction(global.DEFAULT_FAIL_RESPONSE); return } - if (outputDatasetNode.referenceParent.parentNode.parentNode.parentNode === undefined) { - logger.write(MODULE_NAME, "[ERROR] start -> Bot not attached to a Data Mine. Bot = " + JSON.stringify(outputDatasetNode.referenceParent.parentNode.parentNode)); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return - } - - if (outputDatasetNode.referenceParent.parentNode.parentNode.parentNode.code.codeName === undefined) { - logger.write(MODULE_NAME, "[ERROR] start -> Data Mine witn no codeName defined. Data Mine = " + JSON.stringify(outputDatasetNode.referenceParent.parentNode.parentNode.parentNode)); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return - } + let dataMineNode = global.FIND_NODE_IN_NODE_MESH(outputDatasetNode, 'Data Mine') + if (dataMineNode === undefined) { + let tradingMineNode = global.FIND_NODE_IN_NODE_MESH(outputDatasetNode, 'Trading Mine') + if (tradingMineNode === undefined) { + logger.write(MODULE_NAME, "[ERROR] start -> Bot not attached to a Data Mine or a Trading Mine."); + callBackFunction(global.DEFAULT_FAIL_RESPONSE); + return + } else { + if (tradingMineNode.config.codeName === undefined) { + logger.write(MODULE_NAME, "[ERROR] start -> Trading Mine witn no codeName defined."); + callBackFunction(global.DEFAULT_FAIL_RESPONSE); + return + } + } + } else { + if (dataMineNode.config.codeName === undefined) { + logger.write(MODULE_NAME, "[ERROR] start -> Data Mine witn no codeName defined."); + callBackFunction(global.DEFAULT_FAIL_RESPONSE); + return + } + } } return true } @@ -132,19 +144,19 @@ */ for (let i = 0; i < dataDependencies.length; i++) { - let dataFile + let dataFile let jsonData // Datafile converted into Json objects let inputData // Includes calculated properties let singularVariableName // name of the variable for this product let recordDefinition - let dataDependencyNode = dataDependencies[i] + let dataDependencyNode = dataDependencies[i] dataFile = dataFiles.get(dataDependencyNode.id) if (dataFile === undefined) { continue } // When a datafile is not found it might be because we are processing market or daily and at the dependency array there are both types mixed up. recordDefinition = dataDependencyNode.referenceParent.parentNode.record - singularVariableName = dataDependencyNode.referenceParent.parentNode.code.singularVariableName + singularVariableName = dataDependencyNode.referenceParent.parentNode.config.singularVariableName /* Transform the raw data into JSON objects */ jsonData = jsonifyDataFile(dataFile, recordDefinition) /* Add the calculated properties */ @@ -153,7 +165,7 @@ } else { inputData = jsonData } - products[dataDependencyNode.referenceParent.parentNode.code.pluralVariableName] = inputData + products[dataDependencyNode.referenceParent.parentNode.config.pluralVariableName] = inputData /* The main dependency is defined as the first dependency processed. */ if (mainDependency.records === undefined) { @@ -177,8 +189,8 @@ let record = {} for (let j = 0; j < recordDefinition.properties.length; j++) { let property = recordDefinition.properties[j] - if (property.code.isCalculated !== true) { - record[property.code.codeName] = dataFile[i][j] + if (property.config.isCalculated !== true) { + record[property.config.codeName] = dataFile[i][j] } } @@ -199,7 +211,7 @@ let system = { // These are the available system variables to be used in User Code and Formulas timeFrame: timeFrame, - ONE_DAY_IN_MILISECONDS: ONE_DAY_IN_MILISECONDS + ONE_DAY_IN_MILISECONDS: global.ONE_DAY_IN_MILISECONDS } let variable = {} // This is the structure where the user will define its own variables that will be shared across different code blocks and formulas. let results = [] @@ -238,13 +250,13 @@ /* For each calculated property we apply its formula*/ for (let j = 0; j < recordDefinition.properties.length; j++) { let property = recordDefinition.properties[j] - if (property.code.isCalculated === true) { + if (property.config.isCalculated === true) { if (property.formula !== undefined) { if (property.formula.code !== undefined) { try { let newValue = eval(property.formula.code) let currentRecord = product[variableName] - currentRecord[property.code.codeName] = newValue + currentRecord[property.config.codeName] = newValue } catch (err) { logger.write(MODULE_NAME, "[ERROR] calculationsProcedure -> loop -> formula -> Error executing User Code. Error = " + err.stack) logger.write(MODULE_NAME, "[ERROR] calculationsProcedure -> loop -> formula -> Error executing User Code. product = " + JSON.stringify(product)) @@ -277,7 +289,7 @@ interExecutionMemory, processingDailyFiles, currentDay - ) { + ) { /* This function has as an input the products object, with all the information @@ -286,12 +298,12 @@ a new set of information. */ - let lastInstantOfTheDay + let lastInstantOfTheDay let yesterday = {} let system = { // These are the available system variables to be used in User Code and Formulas timeFrame: timeFrame, - ONE_DAY_IN_MILISECONDS: ONE_DAY_IN_MILISECONDS, - ONE_MIN_IN_MILISECONDS: ONE_MIN_IN_MILISECONDS + ONE_DAY_IN_MILISECONDS: global.ONE_DAY_IN_MILISECONDS, + ONE_MIN_IN_MILISECONDS: global.ONE_MIN_IN_MILISECONDS } let variable = {} // This is the structure where the user will define its own variables that will be shared across different code blocks and formulas. let results = [] @@ -313,7 +325,7 @@ let dataDependencyMap = new Map() for (let j = 0; j < dataDependecyArray.length; j++) { let record = dataDependecyArray[j] - let key = record.begin.toString() + '-' + record.end.toString() + let key = record.begin.toString() + '-' + record.end.toString() dataDependencyMap.set(key, record) } dataDependencies[dataDependencyName] = dataDependencyMap @@ -321,7 +333,7 @@ } function getElement(dependencyName, currentRecordPrimaryDataDependency) { - let key = currentRecordPrimaryDataDependency.begin.toString() + '-' + currentRecordPrimaryDataDependency.end.toString() + let key = currentRecordPrimaryDataDependency.begin.toString() + '-' + currentRecordPrimaryDataDependency.end.toString() return dataDependencies[dependencyName].get(key) } @@ -340,7 +352,7 @@ if (processingDailyFiles) { /* Initialization of Last Instance */ - lastInstantOfTheDay = currentDay.valueOf() + ONE_DAY_IN_MILISECONDS - 1; + lastInstantOfTheDay = currentDay.valueOf() + global.ONE_DAY_IN_MILISECONDS - 1; if (interExecutionMemory[productName] === undefined) { /* The first time the intialization variables goes to the Inter Execution Memory. */ @@ -349,7 +361,7 @@ } else { /* We override the initialization, since the valid stuff is already at the Inter Execution Memory */ - variable = JSON.parse(JSON.stringify(interExecutionMemory[productName].variable)) + variable = JSON.parse(JSON.stringify(interExecutionMemory[productName].variable)) } } @@ -387,13 +399,13 @@ /* For each non-calculated property we apply its formula*/ for (let j = 0; j < recordDefinition.properties.length; j++) { let property = recordDefinition.properties[j] - if (property.code.isCalculated !== true) { + if (property.config.isCalculated !== true) { if (property.formula !== undefined) { if (property.formula.code !== undefined) { try { let newValue = eval(property.formula.code) let currentRecord = product[variableName] - currentRecord[property.code.codeName] = newValue + currentRecord[property.config.codeName] = newValue } catch (err) { logger.write(MODULE_NAME, "[ERROR] dataBuildingProcedure -> loop -> formula -> Error executing User Code. Error = " + err.stack) logger.write(MODULE_NAME, "[ERROR] dataBuildingProcedure -> loop -> formula -> Error executing User Code. product = " + JSON.stringify(product)) @@ -411,7 +423,7 @@ results.push(product[variableName]); } - /* While we are positioned at Yesterday, we keey updating this data structure. */ + /* While we are positioned at Yesterday, we keep updating this data structure. */ if (processingDailyFiles) { if (positionedAtYesterday) { yesterday.variable = JSON.parse(JSON.stringify(variable)) @@ -457,7 +469,7 @@ at the next day, in whole, even if it starts in the previous day. */ - let lastInstantOdDay = currentDay.valueOf() + ONE_DAY_IN_MILISECONDS - 1; + let lastInstantOdDay = currentDay.valueOf() + global.ONE_DAY_IN_MILISECONDS - 1; if (record.end < currentDay.valueOf() - 1) { continue; } if (record.end === lastInstantOdDay) { continue; } @@ -474,13 +486,13 @@ let propertySeparator = "" for (let j = 0; j < recordDefinition.properties.length; j++) { let property = recordDefinition.properties[j] - if (property.code.isCalculated !== true) { + if (property.config.isCalculated !== true) { fileContent = fileContent + propertySeparator - if (property.code.isString === true) { + if (property.config.isString === true) { fileContent = fileContent + '"' } - fileContent = fileContent + record[property.code.codeName] - if (property.code.isString === true) { + fileContent = fileContent + record[property.config.codeName] + if (property.config.isString === true) { fileContent = fileContent + '"' } if (propertySeparator === "") { propertySeparator = ","; } diff --git a/TaskServer/Context.js b/TaskServer/Context.js deleted file mode 100644 index bc347977b..000000000 --- a/TaskServer/Context.js +++ /dev/null @@ -1,551 +0,0 @@ -exports.newContext = function newContext(BOT, logger, UTILITIES) { - - let bot = BOT; - - const MODULE_NAME = "Context"; - - /* - - This module deals with keeping the context between different executions of the bot. Conceptually this context is divided in 3 main parts: - - I. The non-business information which helps the mechanisms of giving continuety to the bots execution over time. This information goes in a file - called the Status Report, and there is a module, child of this one called Status Report that deals with loading and saving the contents of that file. - - II. The business information around the bot execution, including its balance, positions at exchanges, trades executed and many other things. These - are platform data mantained on behalf of the executing bot. All these is kept in one file per execution called the Execution Context. The collection - of all these files can later reconstruct the vital business information the bot had at each moment in time. - - II. Execution of any bot cannot be guaranteed that will be on fixed interval of times. We need an index of all executions that points to the detailed files - with all the business informatino the bot had each time it executed. We call this index the Execution History and there is one file to store it. - - */ - - let thisObject = { - statusReport: undefined, // Here is the information that defines which was the last sucessfull execution and some other details. - executionHistory: [], // This is the record of bot execution. - executionContext: undefined, // Here is the business information of the last execution of this bot process. - newHistoryRecord : { - date: undefined, - buyAvgRate: 0, - sellAvgRate: 0, - lastSellRate: 0, - sellExecRate: 0, - lastBuyRate: 0, - buyExecRate: 0, - marketRate: 0, - newPositions: 0, - newTrades: 0, - movedPositions: 0, - profitsBaseAsset: 0, - profitsQuotedAsset: 0, - combinedProfitsA: 0, - combinedProfitsB: 0, - messageRelevance: 0, - messageTitle: "", - messageBody: "" - }, - initialize: initialize, - saveThemAll: saveThemAll, - extraData: [] - }; - - /* - - During the process we will create a new History Record. This will go to the Context History file which essentially mantains an - index of all the bots executions. This file will later be plotted by the bot s plotter on the timeline, allowing end users to - know where there is information related to the actions taken by the bot. - - */ - - let statusReportModule; - - /* Utilities needed. */ - - let utilities = UTILITIES.newCloudUtilities(logger); - - /* Storage account to be used here. */ - - const FILE_STORAGE = require('./FileStorage.js'); - let fileStorage = FILE_STORAGE.newFileStorage(logger); - - let statusDependencies; - - let runIndex; // This is the index for this run and depends on the startMode. - let sessionPath = '' - - return thisObject; - - function initialize(pStatusDependencies, callBackFunction) { - - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Entering function."); } - - statusDependencies = pStatusDependencies; - - if (bot.SESSION !== undefined) { - sessionPath = bot.SESSION.folderName + "/" - } - - /* - Here we get the positions the bot did and that are recorded at the bot storage account. We will use them through out the rest - of the process. - */ - thisObject.newHistoryRecord.date = bot.processDatetime; - - getStatusReport(onDone); - - function onDone(err) { - try { - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> onDone -> Execution finished well."); } - - callBackFunction(global.DEFAULT_OK_RESPONSE); - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[ERROR] initialize -> onDone -> Retry Later. Requesting Execution Retry."); - callBackFunction(err); - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - logger.write(MODULE_NAME, "[ERROR] initialize -> onDone -> Operation Failed. Aborting the process."); - callBackFunction(err); - return; - } - default: { - logger.write(MODULE_NAME, "[ERROR] initialize -> onDone -> Operation Failed with custom response."); - logger.write(MODULE_NAME, "[ERROR] initialize -> onDone -> err = " + JSON.stringify(err)); - callBackFunction(err); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> onDone -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function getStatusReport(callBack) { - - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> getStatusReport -> Entering function."); } - - let key = bot.dataMine + "-" + bot.codeName + "-" + "Context" + "-" + bot.dataSetVersion; - - statusReportModule = statusDependencies.statusReports.get(key); - thisObject.statusReport = statusReportModule.file; - - /* The context is created in 2 situations: 1) when at the bot config is set not to continue using the same context after a new execution. 2) when the status report does not exist. */ - - if (bot.hasTheBotJustStarted === true || thisObject.statusReport.runs === undefined) { - - createConext(callBack); - - } else { - - runIndex = thisObject.statusReport.runs.length - 1; - - getExecutionHistory(callBack); - - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> getStatusReport -> err = "+ err.stack); - callBack(global.DEFAULT_FAIL_RESPONSE); - } - } - - function getExecutionHistory(callBack) { - - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> getExecutionHistory -> Entering function."); } - - let fileName = "Execution.History." + bot.startMode + "." + runIndex + ".json"; - let filePath = bot.filePathRoot + "/Output/" + sessionPath + "Trading-Process/" + fileName; - - fileStorage.getTextFile(filePath, onFileReceived); - - function onFileReceived(err, text) { - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[ERROR] initialize -> getExecutionHistory -> onFileReceived -> err = "+ JSON.stringify(err)); - callBack(err); - return; - } - - if (global.LOG_CONTROL[MODULE_NAME].logContent === true) { - logger.write(MODULE_NAME, "[INFO] initialize -> getExecutionHistory -> onFileReceived -> Content received = " + text); - } - - try { - - thisObject.executionHistory = JSON.parse(text); - - /* Move some values to the new record, in case there are no transactions that re-calculate them. */ - - thisObject.newHistoryRecord.buyAvgRate = thisObject.executionHistory[thisObject.executionHistory.length-1][1]; - thisObject.newHistoryRecord.sellAvgRate = thisObject.executionHistory[thisObject.executionHistory.length - 1][2]; - - getExecutionContext(callBack); - - } catch (err) { - - /* - - It might happen that the file content is corrupt or it does not exist. The bot can not run without an Execution Hitory, - since it is risky to ignore its own history unless it is its first execution in this mode ever. - - */ - - logger.write(MODULE_NAME, "[ERROR] initialize -> getExecutionHistory -> onFileReceived -> Bot cannot execute without the Execution History. -> Err = " + err.message); - callBack(global.DEFAULT_FAIL_RESPONSE); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> getExecutionHistory -> err = "+ err.stack); - callBack(global.DEFAULT_FAIL_RESPONSE); - } - } - - function getExecutionContext(callBack) { - - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> getExecutionContext -> Entering function."); } - - let date; - - date = new Date(thisObject.statusReport.runs[runIndex].lastExecution); - thisObject.statusReport.runs[runIndex].lastExecution = bot.processDatetime; - thisObject.statusReport.runs[runIndex].endDatetime = bot.processDatetime; - - let fileName = "/Execution.Context." + bot.startMode + "." + runIndex + ".json"; - let dateForPath = date.getUTCFullYear() + '/' + utilities.pad(date.getUTCMonth() + 1, 2) + '/' + utilities.pad(date.getUTCDate(), 2) + '/' + utilities.pad(date.getUTCHours(), 2) + '/' + utilities.pad(date.getUTCMinutes(), 2); - let filePath = bot.filePathRoot + "/Output/" + sessionPath + "Trading-Process/" + dateForPath + fileName; - - fileStorage.getTextFile(filePath, onFileReceived); - - function onFileReceived(err, text) { - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[ERROR] initialize -> getExecutionContext -> onFileReceived -> err = "+ err.stack); - callBack(err); - return; - } - - if (global.LOG_CONTROL[MODULE_NAME].logContent === true) { - logger.write(MODULE_NAME, "[INFO] initialize -> getExecutionContext -> onFileReceived -> Content received = " + text); - } - - try { - - thisObject.executionContext = JSON.parse(text); - thisObject.executionContext.transactions = []; // We record here the transactions that happened duting this execution. - - /* Update the new History Record, in case there are no trades during this execution that updates it. */ - - thisObject.newHistoryRecord.profitsBaseAsset = thisObject.executionContext.profits.baseAsset; - thisObject.newHistoryRecord.profitsQuotedAsset = thisObject.executionContext.profits.quotedAsset; - - thisObject.newHistoryRecord.combinedProfitsA = thisObject.executionContext.combinedProfits.baseAsset; - thisObject.newHistoryRecord.combinedProfitsB = thisObject.executionContext.combinedProfits.quotedAsset; - - callBack(global.DEFAULT_OK_RESPONSE); - - } catch (err) { - - /* - - It might happen that the file content is corrupt or it does not exist. The bot can not run without a Status Report, - since it is risky to ignore its own execution history. Except when the bot is running for the fist time in this mode, - an execution context file with the right format is needed. - - */ - - logger.write(MODULE_NAME, "[ERROR] initialize -> getExecutionContext -> onFileReceived -> Response from storage. -> Text = " + text); - logger.write(MODULE_NAME, "[ERROR] initialize -> getExecutionContext -> onFileReceived -> Bot cannot execute without the Execution Context. -> Err = " + err.message); - callBack(global.DEFAULT_FAIL_RESPONSE); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> getExecutionContext -> err = "+ err.stack); - callBack(global.DEFAULT_FAIL_RESPONSE); - } - } - - function createConext(callBack) { - - try { - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> createConext -> Entering function."); } - /* - - When the bot is executed for the very first time, there are a few files that do not exist and need to be created, and that - content is what we are going to set up now. - - */ - - if (thisObject.statusReport.runs === undefined) { // This means that the Status Report does not exist. - - thisObject.statusReport.runs = []; - } - - let runContent = { - beginDatetime: bot.processDatetime, - endDatetime: bot.processDatetime, - lastExecution: bot.processDatetime - }; - - thisObject.statusReport.runs.push(runContent); - runIndex = thisObject.statusReport.runs.length - 1; - - thisObject.executionHistory = []; - - if (bot.VALUES_TO_USE.initialBalanceA === undefined || bot.VALUES_TO_USE.initialBalanceB === undefined) { throw new Error("Global Variables INITIAL_BALANCE_A and INITIAL_BALANCE_B cannot be undefined.") } - - const INITIAL_BALANCE_A = Number(bot.VALUES_TO_USE.initialBalanceB); // NOTE THAT THIS IS INVERTED BECAUSE OF POLONIEX THAT IS THE ONLY EXCHANGE SUPPORTED RIGHT NOW - const INITIAL_BALANCE_B = Number(bot.VALUES_TO_USE.initialBalanceA); - - - thisObject.executionContext = { - initialBalance: { // This is used to calculate profits. - baseAsset: INITIAL_BALANCE_A, - quotedAsset: INITIAL_BALANCE_B - }, - balance: { // This is the total balance that includes positions at the order book + funds available to be traded. - baseAsset: INITIAL_BALANCE_A, - quotedAsset: INITIAL_BALANCE_B // It starts with the initial initialBalance. - }, - availableBalance: { // This is the balance the bot has at any moment in time available to be traded (not in positions at the order book). - baseAsset: INITIAL_BALANCE_A, - quotedAsset: INITIAL_BALANCE_B // It starts with the initial initialBalance. - }, - profits: { - baseAsset: 0, - quotedAsset: 0 - }, - combinedProfits: { - baseAsset: 0, - quotedAsset: 0 - }, - positions: [], - transactions: [] - }; - - callBack(global.DEFAULT_OK_RESPONSE); - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> createConext -> err = "+ err.stack); - callBack(global.DEFAULT_FAIL_RESPONSE); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function saveThemAll(callBackFunction) { - - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] saveThemAll -> Entering function."); } - - writeExecutionContext(onDone); - - function onDone(err) { - try { - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] saveThemAll -> onDone -> Execution finished well."); } - - bot.hasTheBotJustStarted = false; - - callBackFunction(global.DEFAULT_OK_RESPONSE); - return; - } - break; - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[ERROR] saveThemAll -> onDone -> Retry Later. Requesting Execution Retry."); - callBackFunction(err); - return; - } - break; - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - logger.write(MODULE_NAME, "[ERROR] saveThemAll -> onDone -> Operation Failed. Aborting the process."); - callBackFunction(err); - return; - } - break; - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] saveThemAll -> onDone -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function writeExecutionContext(callBack) { - - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] saveThemAll -> writeExecutionContext -> Entering function."); } - - let fileName = "/Execution.Context." + bot.startMode + "." + runIndex +".json"; - let dateForPath = bot.processDatetime.getUTCFullYear() + '/' + utilities.pad(bot.processDatetime.getUTCMonth() + 1, 2) + '/' + utilities.pad(bot.processDatetime.getUTCDate(), 2) + '/' + utilities.pad(bot.processDatetime.getUTCHours(), 2) + '/' + utilities.pad(bot.processDatetime.getUTCMinutes(), 2); - let filePath = bot.filePathRoot + "/Output/" + sessionPath + "Trading-Process/" + dateForPath + fileName; - let fileContent = JSON.stringify(thisObject.executionContext); - - if(fileContent === undefined){ - logger.write(MODULE_NAME, "[ERROR] saveThemAll -> writeExecutionContext -> executionContext is undefined."); - callBackFunction(global.DEFAULT_ERROR_RESPONSE); - } - - if (global.LOG_CONTROL[MODULE_NAME].logContent === true) { logger.write(MODULE_NAME, "[INFO] saveThemAll -> writeExecutionContext -> fileContent = " + fileContent); } - - fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); - - function onFileCreated(err) { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] saveThemAll -> writeExecutionContext -> onFileCreated -> Entering function."); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[ERROR] saveThemAll -> writeExecutionContext -> onFileCreated -> err = "+ err.stack); - callBack(err); - return; - } - - writeExucutionHistory(callBack); - return; - } - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] saveThemAll -> writeExecutionContext -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function writeExucutionHistory(callBack) { - - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] saveThemAll -> writeExucutionHistory -> Entering function."); } - - let fileName = "Execution.History." + bot.startMode + "." + runIndex + ".json"; - let filePath = bot.filePathRoot + "/Output/" + sessionPath + "Trading-Process/" + fileName; - - let newRecord = [ - thisObject.newHistoryRecord.date.valueOf(), - thisObject.newHistoryRecord.buyAvgRate, - thisObject.newHistoryRecord.sellAvgRate, - - thisObject.newHistoryRecord.lastSellRate, - thisObject.newHistoryRecord.sellExecRate, - thisObject.newHistoryRecord.lastBuyRate, - thisObject.newHistoryRecord.buyExecRate, - - thisObject.newHistoryRecord.marketRate, - thisObject.newHistoryRecord.newPositions, - thisObject.newHistoryRecord.newTrades, - thisObject.newHistoryRecord.movedPositions, - thisObject.newHistoryRecord.profitsBaseAsset, - thisObject.newHistoryRecord.profitsQuotedAsset, - thisObject.newHistoryRecord.combinedProfitsA, - thisObject.newHistoryRecord.combinedProfitsB, - - thisObject.newHistoryRecord.messageRelevance, - thisObject.newHistoryRecord.messageTitle, - thisObject.newHistoryRecord.messageBody, - thisObject.extraData - ]; - - thisObject.executionHistory.push(newRecord); - - let fileContent = JSON.stringify(thisObject.executionHistory); - - fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); - - function onFileCreated(err) { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] saveThemAll -> writeExucutionHistory -> onFileCreated -> Entering function."); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[ERROR] saveThemAll -> writeExucutionHistory -> onFileCreated -> err = "+ err.stack); - callBack(err); - return; - } - - if (global.LOG_CONTROL[MODULE_NAME].logContent === true) { - logger.write(MODULE_NAME, "[INFO] saveThemAll -> writeExucutionHistory -> onFileCreated -> Content written = " + fileContent); - } - - /* Here we will write the file containing the max sequence number. */ - - fileContent = runIndex; - fileName = "Execution.History." + bot.startMode + "." + "Sequence" + ".json"; - filePath = bot.filePathRoot + "/Output/" + sessionPath + "Trading-Process/" + fileName; - - fileStorage.createTextFile(filePath, fileContent + '\n', onSequenceFileCreated); - - function onSequenceFileCreated(err) { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] saveThemAll -> writeExucutionHistory -> onFileCreated -> onSequenceFileCreated -> Entering function."); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[ERROR] saveThemAll -> writeExucutionHistory -> onFileCreated -> onSequenceFileCreated -> err = "+ err.stack); - callBack(err); - return; - } - - writeStatusReport(callBack); - return; - } - } - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] saveThemAll -> writeExucutionHistory -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function writeStatusReport(callBack) { - - try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] saveThemAll -> writeStatusReport -> Entering function."); } - - statusReportModule.file = thisObject.statusReport; - statusReportModule.save(callBack); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] saveThemAll -> writeStatusReport -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] saveThemAll -> Error = " + err.message); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function truncDecimals(pFloatValue, pDecimals) { - - if (!pDecimals) pDecimals = 8; // Default value - - return parseFloat(parseFloat(pFloatValue).toFixed(pDecimals)); - - } - -}; diff --git a/TaskServer/DataDependencies.js b/TaskServer/DataDependencies.js index 918def0bf..54eb5916d 100644 --- a/TaskServer/DataDependencies.js +++ b/TaskServer/DataDependencies.js @@ -4,12 +4,12 @@ const LOG_FILE_CONTENT = false; const MODULE_NAME = "Data Dependencies"; - let bot = BOT + let bot = BOT let thisObject = { nodeArray: undefined, dataSetsModulesArray: [], - isItADepenency: isItADepenency, + isItADepenency: isItADepenency, initialize: initialize, finalize: finalize }; @@ -19,20 +19,22 @@ return thisObject; function initialize(callBackFunction) { - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Entering function."); } - /* Basic Valdidations */ if (bot.processNode.referenceParent.processDependencies !== undefined) { - if (bot.processNode.referenceParent.processDependencies.dataDependencies !== undefined) { - thisObject.nodeArray = bot.processNode.referenceParent.processDependencies.dataDependencies - } else { + thisObject.nodeArray = global.NODE_BRANCH_TO_ARRAY(bot.processNode.referenceParent.processDependencies, 'Data Dependency') + if (thisObject.nodeArray.length === 0) { logger.write(MODULE_NAME, "[ERROR] initialize -> onInitilized -> It is not possible to not have data dependencies at all."); callBackFunction(global.DEFAULT_OK_RESPONSE) return } + /* + We will filter ourt declared dependencies that are not present in the workspace. + This will allow the user to have less Data Mines loaded at the workspace + that the ones that a Trading Mine depends on. + */ + thisObject.nodeArray = global.FILTER_OUT_NODES_WITHOUT_REFERENCE_PARENT_FROM_NODE_ARRAY(thisObject.nodeArray) + } else { logger.write(MODULE_NAME, "[ERROR] initialize -> onInitilized -> It is not possible to not have process dependencies, which means not data dependencies."); callBackFunction(global.DEFAULT_OK_RESPONSE) @@ -51,46 +53,62 @@ if (bot.DEPENDENCY_FILTER !== undefined) { for (let i = 0; i < bot.DEPENDENCY_FILTER.length; i++) { let key = bot.DEPENDENCY_FILTER[i] - filter.set(key, true) + filter.set(key, true) } } /* For each dependency declared at the nodeArray, we will initialize a DataSet as part of this initialization process. */ - let alreadyCalledBack = false; - let addCount = 0; + let alreadyCalledBack = false + let addCount = 0 + let skipCount = 0 + + /* + The current nodeArray that we have includes all the dependencies daclared in the Data Mine / Trading Mine + process dependencies, minus the ones without reference parent, meaning that references Data Mines that are + not present at the workspace. From all the remaining dependencies there will be others that we need to + filter out, and they are the ones which the user does not have a data product anywhere on the network where + this task is running, that is storing the data associated to this dependency. The way we use to filter this + out is by analizyng the response of the initialization call to the DataSet module. If it did not fail but + it was not initialized, then we will assume this happened because the data could not be located and we will + assume the user did this on purpose and we will filter out this dependency by not putting it on this new array. + */ + let newNodeArray = [] for (let i = 0; i < thisObject.nodeArray.length; i++) { - let dataSetModule = DATA_SET.newDataSet(BOT, logger); - dataSetModule.initialize(thisObject.nodeArray[i], onInitilized); - function onInitilized(err) { + function onInitilized(err, wasInitialized) { if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[ERROR] initialize -> onInitilized -> err = "+ JSON.stringify(err)); + logger.write(MODULE_NAME, "[ERROR] initialize -> onInitilized -> err = " + JSON.stringify(err)); alreadyCalledBack = true; callBackFunction(err); return; } - addDataSet(); + if (wasInitialized === true) { + addCount++; + newNodeArray.push(thisObject.nodeArray[i]) + addDataSet() + } else { + skipCount++ + } + checkIfWeAreDone() } - function addDataSet() { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] initialize -> addDataSet -> Entering function."); } - - addCount++; - + function addDataSet() { thisObject.dataSetsModulesArray.push(dataSetModule); + } - if (addCount === thisObject.nodeArray.length) { + function checkIfWeAreDone() { + if (addCount + skipCount === thisObject.nodeArray.length) { if (alreadyCalledBack === false) { alreadyCalledBack = true + thisObject.nodeArray = newNodeArray callBackFunction(global.DEFAULT_OK_RESPONSE); return; } @@ -99,14 +117,14 @@ } } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> err = "+ err.stack); + logger.write(MODULE_NAME, "[ERROR] initialize -> err = " + err.stack); callBackFunction(global.DEFAULT_FAIL_RESPONSE); } } function finalize() { for (let i = 0; i < thisObject.dataSetsModulesArray.length; i++) { - let dataSetModule = thisObject.dataSetsModulesArray[i] + let dataSetModule = thisObject.dataSetsModulesArray[i] dataSetModule.finalize() } thisObject.dataSetsModulesArray = undefined @@ -115,7 +133,7 @@ } function isItADepenency(timeFrame, product) { - let key = timeFrame + '-' + product + let key = timeFrame + '-' + product return filter.get(key) } diff --git a/TaskServer/DataSet.js b/TaskServer/DataSet.js index aa0c6bb1c..5b43b7bbf 100644 --- a/TaskServer/DataSet.js +++ b/TaskServer/DataSet.js @@ -16,16 +16,13 @@ exports.newDataSet = function newDataSet(BOT, logger) { /* Storage account to be used here. */ const FILE_STORAGE = require('./FileStorage.js'); - let fileStorage + let fileStorage return thisObject; function initialize(dataDependency, callBackFunction) { try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Entering function."); } - thisObject.node = dataDependency.referenceParent; logger.fileName = MODULE_NAME + "." + thisObject.node.type + "." + thisObject.node.name + "." + thisObject.node.id; @@ -36,7 +33,7 @@ exports.newDataSet = function newDataSet(BOT, logger) { return } - if (thisObject.node.code.codeName === undefined) { + if (thisObject.node.config.codeName === undefined) { logger.write(MODULE_NAME, "[ERROR] initialize -> Dataset witn no codeName defined -> Product Dataset = " + JSON.stringify(thisObject.node)); callBackFunction(global.DEFAULT_FAIL_RESPONSE); return @@ -48,7 +45,7 @@ exports.newDataSet = function newDataSet(BOT, logger) { return } - if (thisObject.node.parentNode.code.codeName === undefined) { + if (thisObject.node.parentNode.config.codeName === undefined) { logger.write(MODULE_NAME, "[ERROR] initialize -> Product Definition witn no codeName defined -> Product Definition = " + JSON.stringify(thisObject.node.parentNode)); callBackFunction(global.DEFAULT_FAIL_RESPONSE); return @@ -60,102 +57,47 @@ exports.newDataSet = function newDataSet(BOT, logger) { return } - if (thisObject.node.parentNode.parentNode.code.codeName === undefined) { + if (thisObject.node.parentNode.parentNode.config.codeName === undefined) { logger.write(MODULE_NAME, "[ERROR] initialize -> Bot witn no codeName defined. Bot = " + JSON.stringify(thisObject.node.parentNode.parentNode)); callBackFunction(global.DEFAULT_FAIL_RESPONSE); return } if (thisObject.node.parentNode.parentNode.parentNode === undefined) { - logger.write(MODULE_NAME, "[ERROR] initialize -> Bot not attached to a Data Mine. Bot = " + JSON.stringify(thisObject.node.parentNode.parentNode)); + logger.write(MODULE_NAME, "[ERROR] initialize -> Bot not attached to a Data Mine or Trading Mine. Bot = " + JSON.stringify(thisObject.node.parentNode.parentNode)); callBackFunction(global.DEFAULT_FAIL_RESPONSE); return } - if (thisObject.node.parentNode.parentNode.parentNode.code.codeName === undefined) { + if (thisObject.node.parentNode.parentNode.parentNode.config.codeName === undefined) { logger.write(MODULE_NAME, "[ERROR] initialize -> Data Mine witn no codeName defined. Data Mine = " + JSON.stringify(thisObject.node.parentNode.parentNode.parentNode)); callBackFunction(global.DEFAULT_FAIL_RESPONSE); return } /* Now we will see where do we need to fetch this data from. */ - let network = global.TASK_NETWORK + let network = global.TASK_NETWORK let datasetProductDefinition = thisObject.node.parentNode - for (let i = 0; i < network.networkNodes.length; i++) { - let networkNode = network.networkNodes[i] - if (networkNode.dataStorage !== undefined) { - if (networkNode.dataStorage.sessionIndependentData !== undefined) { - for (let j = 0; j < networkNode.dataStorage.sessionIndependentData.exchangeDataProducts.length; j++) { - let exchangeDataProduct = networkNode.dataStorage.sessionIndependentData.exchangeDataProducts[j] - for (let k = 0; k < exchangeDataProduct.singleMarketData.length; k++) { - let singleMarketData = exchangeDataProduct.singleMarketData[k] - if (singleMarketData.referenceParent !== undefined) { - let market = singleMarketData.referenceParent - let currentProcessMarket = bot.processNode.marketReference.referenceParent + let nodeArray = global.NODE_MESH_TO_PATH_ARRAY(network, datasetProductDefinition.id) + let networkNode = global.FIND_NODE_IN_NODE_ARRAY(nodeArray, 'Network Node') - if (currentProcessMarket.id === market.id) { - for (let m = 0; m < singleMarketData.dataProducts.length; m++) { - let dataProduct = singleMarketData.dataProducts[m] - if (dataProduct.referenceParent !== undefined) { - let productDefinition = dataProduct.referenceParent - if (datasetProductDefinition.id === productDefinition.id) { - - /* We found where the data is located on the network. */ - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Retrieving data from " + networkNode.name + " -> host = " + networkNode.code.host + ' -> port = ' + networkNode.code.webPort + '.'); } - - fileStorage = FILE_STORAGE.newFileStorage(logger, networkNode.code.host, networkNode.code.webPort); - callBackFunction(global.DEFAULT_OK_RESPONSE); - return - } - } - } - } - } - } - } - } - if (networkNode.dataStorage.sessionBasedData !== undefined) { - for (let j = 0; j < networkNode.dataStorage.sessionBasedData.exchangeDataProducts.length; j++) { - let exchangeDataProduct = networkNode.dataStorage.sessionBasedData.exchangeDataProducts[j] - for (let s = 0; s < exchangeDataProduct.sessionReferences.length; s++) { - let sessionReference = exchangeDataProduct.sessionReferences[s] - let singleMarketData = sessionReference.singleMarketData - if (singleMarketData.referenceParent !== undefined) { - let market = singleMarketData.referenceParent - let currentProcessMarket = bot.processNode.marketReference.referenceParent - - if (currentProcessMarket.id === market.id) { - for (let m = 0; m < singleMarketData.dataProducts.length; m++) { - let dataProduct = singleMarketData.dataProducts[m] - if (dataProduct.referenceParent !== undefined) { - let productDefinition = dataProduct.referenceParent - if (datasetProductDefinition.id === productDefinition.id) { - - /* We found where the data is located on the network. */ - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Retrieving data from " + networkNode.name + " -> host = " + networkNode.code.host + ' -> port = ' + networkNode.code.webPort + '.'); } - - fileStorage = FILE_STORAGE.newFileStorage(logger, networkNode.code.host, networkNode.code.webPort); - callBackFunction(global.DEFAULT_OK_RESPONSE); - return - } - } - } - } - } - } - } - } - } + if (networkNode === undefined) { + logger.write(MODULE_NAME, "[WARN] initialize -> Network Node not found.") + logger.write(MODULE_NAME, "[WARN] initialize -> Initialization Failed because we could not find where the data of this dataset is located within the network. Check the logs for more info."); + logger.write(MODULE_NAME, "[WARN] initialize -> Could not find where " + datasetProductDefinition.name + " for " + bot.exchange + " " + bot.market.baseAsset + "/" + bot.market.quotedAsset + " is stored within the network."); + callBackFunction(global.DEFAULT_OK_RESPONSE, false); + return } - logger.write(MODULE_NAME, "[ERROR] initialize -> Initialization Failed because we could not find where the data of this dataset is located within the network. Check the logs for more info."); - logger.write(MODULE_NAME, "[ERROR] initialize -> Could not find where " + datasetProductDefinition.name + " for " + bot.exchange + " " + bot.market.baseAsset + "/" + bot.market.quotedAsset + " is stored within the network."); + /* We found where the data is located on the network. */ + if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Retrieving data from " + networkNode.name + " -> host = " + networkNode.config.host + ' -> port = ' + networkNode.config.webPort + '.'); } - callBackFunction(global.DEFAULT_FAIL_RESPONSE); + fileStorage = FILE_STORAGE.newFileStorage(logger, networkNode.config.host, networkNode.config.webPort); + callBackFunction(global.DEFAULT_OK_RESPONSE, true); } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> err = "+ err.stack); + logger.write(MODULE_NAME, "[ERROR] initialize -> err = " + err.stack); callBackFunction(global.DEFAULT_FAIL_RESPONSE); } } @@ -173,8 +115,8 @@ exports.newDataSet = function newDataSet(BOT, logger) { if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getTextFile -> Entering function."); } - let dataMineCodeName = thisObject.node.parentNode.parentNode.parentNode.code.codeName - let botCodeName = thisObject.node.parentNode.parentNode.code.codeName + let dataMineCodeName = thisObject.node.parentNode.parentNode.parentNode.config.codeName + let botCodeName = thisObject.node.parentNode.parentNode.config.codeName let filePathRoot = bot.exchange + "/" + bot.market.baseAsset + "-" + bot.market.quotedAsset + "/" + dataMineCodeName + "/" + botCodeName; let filePath = filePathRoot + "/Output/" + pFolderPath; @@ -191,7 +133,7 @@ exports.newDataSet = function newDataSet(BOT, logger) { } } catch (err) { - logger.write(MODULE_NAME, "[ERROR] 'getTextFile' -> err = "+ err.stack); + logger.write(MODULE_NAME, "[ERROR] 'getTextFile' -> err = " + err.stack); callBackFunction(global.DEFAULT_FAIL_RESPONSE); } } @@ -204,8 +146,8 @@ exports.newDataSet = function newDataSet(BOT, logger) { if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] createTextFile -> pFolderPath = " + pFolderPath); } if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] createTextFile -> pFileName = " + pFileName); } - let ownerId = thisObject.node.dataMine + "-" + thisObject.node.bot + "-" + thisObject.node.botVersion.major + "-" + thisObject.node.botVersion.minor + "-" + thisObject.node.dataSetVersion; - let botId = bot.dataMine + "-" + bot.codeName + "-" + bot.version.major + "-" + bot.version.minor + "-" + bot.dataSetVersion; + let ownerId = thisObject.node.dataMine + "-" + thisObject.node.bot + let botId = bot.dataMine + "-" + bot.codeName if (ownerId !== botId) { @@ -232,7 +174,7 @@ exports.newDataSet = function newDataSet(BOT, logger) { } } catch (err) { - logger.write(MODULE_NAME, "[ERROR] 'createTextFile' -> err = "+ err.stack); + logger.write(MODULE_NAME, "[ERROR] 'createTextFile' -> err = " + err.stack); callBackFunction(global.DEFAULT_FAIL_RESPONSE); } } diff --git a/TaskServer/DebugLog.js b/TaskServer/DebugLog.js index bcaf567a3..a1ef69a37 100644 --- a/TaskServer/DebugLog.js +++ b/TaskServer/DebugLog.js @@ -1,6 +1,5 @@ exports.newDebugLog = function newDebugLog() { - const ROOT_DIR = './'; const MODULE_NAME = "DebugLog"; let executionDatetime = "D." + global.EXECUTION_DATETIME.getUTCFullYear() + @@ -34,7 +33,7 @@ exports.newDebugLog = function newDebugLog() { disableLogging = pdisableLogging } catch (err) { - console.log("[ERROR] Debug Log -> initialize -> err = "+ err.stack); + console.log("[ERROR] Debug Log -> initialize -> err = " + err.stack); } } @@ -53,12 +52,12 @@ exports.newDebugLog = function newDebugLog() { date = date.getUTCFullYear() + '-' + strPad(date.getUTCMonth() + 1, 2, "0") + '-' + strPad(date.getUTCDate(), 2, "0"); console.log(new Date().toISOString() + " " + strPad(thisObject.bot.exchange, 20) + " " + strPad(thisObject.bot.market.baseAsset + '/' + thisObject.bot.market.quotedAsset, 10) + " " + strPad(pBot, 30) + " " + strPad(pProcess, 30) - + " Internal Loop # " + strPad(internalLoopCounter + 1, 8) + " " + strPad(date, 30) + " " + strPad(percentage, 10)) + + " Internal Loop # " + strPad(internalLoopCounter + 1, 8) + " " + strPad(date, 30) + " " + strPad(percentage, 10)) persist(); function strPad(str, max, fill) { - if (fill === undefined) {fill = " "} + if (fill === undefined) { fill = " " } str = str.toString(); return str.length < max ? strPad(fill + str, max) : str; } @@ -69,7 +68,7 @@ exports.newDebugLog = function newDebugLog() { /* Here we actually write the content of the in-memory log to a file */ try { - if (accumulatedLog === "[") {return} // nothing to persist at the moment. + if (accumulatedLog === "[") { return } // nothing to persist at the moment. internalLoopCounter++; @@ -82,7 +81,7 @@ exports.newDebugLog = function newDebugLog() { let filePath = thisObject.bot.filePathRoot + "/Logs/" + thisObject.bot.process + "/" if (thisObject.bot.SESSION !== undefined) { - filePath = filePath + thisObject.bot.SESSION.folderName + "/" + executionDatetime; + filePath = filePath + thisObject.bot.SESSION.folderName + "/" + executionDatetime; } else { filePath = filePath + executionDatetime; } @@ -102,32 +101,32 @@ exports.newDebugLog = function newDebugLog() { writeLog(); /* This is the implementation of the mechanism to auto-mantain logs. */ - if (contentToPersist.indexOf('[ERROR]') < 0) { + if (contentToPersist.indexOf('[ERROR]') < 0 && contentToPersist.indexOf('[PERSIST]') < 0 && contentToPersist.indexOf('[IMPORTANT]') < 0) { thisObject.bot.LOGS_TO_DELETE_QUEUE.push(filePath + '/' + fileName) } if (thisObject.bot.LOGS_TO_DELETE_QUEUE.length > thisObject.bot.DELETE_QUEUE_SIZE) { let fileToDelete = thisObject.bot.LOGS_TO_DELETE_QUEUE[0] thisObject.bot.LOGS_TO_DELETE_QUEUE.splice(0, 1) /* Will delete this file only if it does not contains ERROR inside. */ - let fileContent = fileStorage.getTextFile(fileToDelete, onGetFile, true) + let fileContent = fileStorage.getTextFile(fileToDelete, onGetFile, true) function onGetFile(err, fileContent) { if (err.result === global.DEFAULT_OK_RESPONSE.result) { if (fileContent.indexOf("ERROR") < 0) { /* Logs will only be deleted when they contain no ERROR in them. */ fileStorage.deleteTextFile(fileToDelete); - } + } } else { fileStorage.deleteTextFile(fileToDelete); } } } - + function writeLog() { - fileStorage.createTextFile(filePath + '/' + fileName, contentToPersist + '\r\n' + "]", onFileCreated); + fileStorage.createTextFile(filePath + '/' + fileName, contentToPersist + '\r\n' + "]", onFileCreated, undefined, true); function onFileCreated(err) { if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - console.log("[ERROR] DebugLog -> persist -> onInizialized -> onFileCreated -> err = "+ err.message); + console.log("[ERROR] DebugLog -> persist -> onInizialized -> onFileCreated -> err = " + err.message); setTimeout(writeLog, 10000); // Lets retry until we make it. return; } @@ -135,16 +134,14 @@ exports.newDebugLog = function newDebugLog() { } } } catch (err) { - console.log("[ERROR] DebugLog -> persist -> err = "+ err.stack); + console.log("[ERROR] DebugLog -> persist -> err = " + err.stack); console.log("[ERROR] DebugLog -> persist -> onInizialized -> contentToPersist = " + contentToPersist); } } function write(pModule, pMessage) { - try { - if (disableLogging === true) { return; } if (thisObject.bot === undefined) { return; } @@ -174,7 +171,7 @@ exports.newDebugLog = function newDebugLog() { accumulatedLog = accumulatedLog + logLine; } catch (err) { - console.log("[ERROR] DebugLog -> write -> err = "+ err.stack); + console.log("[ERROR] DebugLog -> write -> err = " + err.stack); } } diff --git a/TaskServer/ExchangeAPI.js b/TaskServer/ExchangeAPI.js deleted file mode 100644 index 54c3c52e7..000000000 --- a/TaskServer/ExchangeAPI.js +++ /dev/null @@ -1,160 +0,0 @@ -exports.newExchangeAPI = function newExchangeAPI(logger, BOT) { - - let MODULE_NAME = "Exchange API"; - let LOG_INFO = true; - let apiClient; - let bot = BOT - - let thisObject = { - initialize: initialize, - getTicker: getTicker, - getOpenOrders: getOpenOrders, - getOrder: getOrder, - createOrder: createOrder, - getMaxDecimalPositions: getMaxDecimalPositions - }; - - let exchangeId - let options = {} - let exchange - - const ccxt = require('ccxt') - - return thisObject; - - function initialize(callBackFunction) { - try { - exchangeId = bot.exchange.toLowerCase() - - let key = process.env.KEY - let secret = process.env.SECRET - - if (key === "undefined") { key = undefined } - if (secret === "undefined") { secret = undefined } - - const exchangeClass = ccxt[exchangeId] - const exchangeConstructorParams = { - 'apiKey': key, - 'secret': secret, - 'timeout': 30000, - 'enableRateLimit': true, - verbose: false, - options: options - } - - exchange = new exchangeClass(exchangeConstructorParams) - - callBackFunction(global.DEFAULT_OK_RESPONSE) - } catch (err) { - logError("initialize -> err = " + err.message); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function getMaxDecimalPositions() { - return 8 - } - - async function getTicker(market, callBackFunction) { - try { - logInfo("getTicker -> Entering function."); - const symbol = bot.market.baseAsset + '/' + bot.market.quotedAsset - let ticker - - if (exchange.has['fetchTicker']) { - ticker = await (exchange.fetchTicker(symbol)) - callBackFunction(global.DEFAULT_OK_RESPONSE, ticker) - } else { - logError("getTicker -> Exchange does not support fetchTicker command."); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - - } catch (err) { - logError("getTicker -> err = " + err.message); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - async function getOpenOrders(market, callBackFunction) { - try { - logInfo("getOpenOrders -> Entering function. market = " + JSON.stringify(market)); - - const symbol = bot.market.baseAsset + '/' + bot.market.quotedAsset - let openOrders - - if (exchange.has['fetchOpenOrders']) { - openOrders = await(exchange.fetchOpenOrders (symbol)) - callBackFunction(global.DEFAULT_OK_RESPONSE, openOrders) - } else { - logError("getOpenOrders -> Exchange does not support fetchOpenOrders command."); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - - } catch (err) { - logError("getOpenOrders -> Error = " + err.message); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - async function getOrder(orderId, market, callBackFunction) { - try { - logInfo("getOrder -> Entering function. orderId = " + orderId); - - const symbol = bot.market.baseAsset + '/' + bot.market.quotedAsset - let order - - if (exchange.has['fetchOrder']) { - order = await (exchange.fetchOrder(orderId, symbol)) - callBackFunction(global.DEFAULT_OK_RESPONSE, order) - } else { - logError("getOrder -> Exchange does not support fetchOrder command."); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } catch (err) { - logError("getOrder -> Error = " + err.message); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - async function createOrder(market, side, price, cost, amount, callBackFunction) { - try { - logInfo("createOrder -> Entering function."); - - const symbol = bot.market.baseAsset + '/' + bot.market.quotedAsset - - logInfo("createOrder -> market = " + market.assetA + "_" + market.assetB); - logInfo("createOrder -> side = " + side); - logInfo("createOrder -> cost = " + cost); - logInfo("createOrder -> amount = " + amount); - logInfo("createOrder -> price = " + price); - - if (side !== "buy" && side !== "sell") { - logError("createOrder -> side must be either 'buy' or 'sell'."); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - - let type = 'market' - let order - - if (exchange.has['createOrder']) { - order = await(exchange.createOrder(symbol, type, side, amount)) - callBackFunction(global.DEFAULT_OK_RESPONSE, order) - } else { - logError("createOrder -> Exchange does not support createOrder command."); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - - } catch (err) { - logError("createOrder -> err = " + JSON.stringify(err.stack) || err.message); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function logInfo(message) { - if (LOG_INFO === true) { logger.write(MODULE_NAME, '[INFO] ' + message) } - } - - function logError(message) { - logger.write(MODULE_NAME, '[ERROR] ' + message) - } -}; diff --git a/TaskServer/FileStorage.js b/TaskServer/FileStorage.js index 22966c706..8cc7baac9 100644 --- a/TaskServer/FileStorage.js +++ b/TaskServer/FileStorage.js @@ -4,7 +4,7 @@ const path = require('path') exports.newFileStorage = function newFileStorage(logger, host, port) { const MODULE_NAME = 'FileStorage' - const MAX_RETRY = 30 + const MAX_RETRY = 10 const FAST_RETRY_TIME_IN_MILISECONDS = 500 const SLOW_RETRY_TIME_IN_MILISECONDS = 2000 @@ -17,23 +17,57 @@ exports.newFileStorage = function newFileStorage(logger, host, port) { } let thisObject = { + asyncGetTextFile: asyncGetTextFile, + asyncCreateTextFile: asyncCreateTextFile, getTextFile: getTextFile, createTextFile: createTextFile, deleteTextFile: deleteTextFile } - return thisObject + return thisObject + + async function asyncGetTextFile(filePath, noRetry, canUsePrevious) { + /* This function allows its caller to work with async / await instead of callbacks */ + let promise = new Promise((resolve, reject) => { + + getTextFile(filePath, onFileRead, noRetry, canUsePrevious) + function onFileRead(err, text) { + + let response = { + err: err, + text: text + } + resolve(response) + } + }) + + return promise + } + + async function asyncCreateTextFile(filePath, fileContent, keepPrevious, noTemp) { + /* This function allows its caller to work with async / await instead of callbacks */ + let promise = new Promise((resolve, reject) => { + + createTextFile(filePath, fileContent, onFileWriten, keepPrevious, noTemp) + function onFileWriten(err) { + + let response = { + err: err + } + resolve(response) + } + }) + + return promise + } function getTextFile(filePath, callBackFunction, noRetry, canUsePrevious) { - let currentRetryGetTextFile = 0 + let currentRetryGetTextFile = 0 recursiveGetTextFile(filePath, callBackFunction, noRetry, canUsePrevious) function recursiveGetTextFile(filePath, callBackFunction, noRetry, canUsePrevious) { - - logger.write(MODULE_NAME, '[INFO] FileStorage -> getTextFile -> Entering Function.') - let fileDoesNotExist = false /* Choose path for either bots or data */ @@ -77,7 +111,7 @@ exports.newFileStorage = function newFileStorage(logger, host, port) { } callBackFunction(customResponse) return - } + } fileDoesNotExist = true logger.write(MODULE_NAME, '[WARN] FileStorage -> getTextFile -> onFileRead -> File does not exist. Retrying. ') @@ -106,7 +140,7 @@ exports.newFileStorage = function newFileStorage(logger, host, port) { if (mustBeJason === false) { /* In this case there is nothing else to check. */ callBackFunction(global.DEFAULT_OK_RESPONSE, text.toString()) - return + return } /* @@ -117,7 +151,7 @@ exports.newFileStorage = function newFileStorage(logger, host, port) { /* The file was correctly read and could be parsed. */ callBackFunction(global.DEFAULT_OK_RESPONSE, text.toString()) - return + return } catch (err) { @@ -140,11 +174,11 @@ exports.newFileStorage = function newFileStorage(logger, host, port) { logger.write(MODULE_NAME, '[WARN] FileStorage -> getTextFile -> onFileRead -> canUsePrevious -> err = ' + err.stack) callBackFunction(global.DEFAULT_FAIL_RESPONSE) return - } + } /* Returning the previous file */ callBackFunction(global.DEFAULT_OK_RESPONSE, text.toString()) - return + return } } else { logger.write(MODULE_NAME, '[WARN] FileStorage -> getTextFile -> onFileRead -> Could read the file, but could not parse it as it is not a valid JSON.') @@ -153,17 +187,17 @@ exports.newFileStorage = function newFileStorage(logger, host, port) { setTimeout(retry, retryTimeToUse) return } - } + } } } catch (err) { - logger.write(MODULE_NAME, '[WARN] FileStorage -> getTextFile -> Error writing file -> file = ' + fileLocation) - logger.write(MODULE_NAME, '[WARN] FileStorage -> getTextFile -> Error writing file -> err = ' + err.stack) + logger.write(MODULE_NAME, '[WARN] FileStorage -> getTextFile -> Error reading file -> file = ' + fileLocation) + logger.write(MODULE_NAME, '[WARN] FileStorage -> getTextFile -> Error reading file -> err = ' + err.stack) retry() } function retry() { - //console.log(new Date(), ' Retry #: ' + currentRetryGetTextFile, fileLocation ) + console.log(new Date(), '[WARN] Read File Retry #: ' + currentRetryGetTextFile, fileLocation) if (currentRetryGetTextFile < MAX_RETRY) { currentRetryGetTextFile++ logger.write(MODULE_NAME, '[WARN] FileStorage -> getTextFile -> retry -> Will try to read the file again -> Retry #: ' + currentRetryGetTextFile) @@ -191,16 +225,13 @@ exports.newFileStorage = function newFileStorage(logger, host, port) { } } - function createTextFile(filePath, fileContent, callBackFunction, keepPrevious) { + function createTextFile(filePath, fileContent, callBackFunction, keepPrevious, noTemp) { let currentRetryWriteTextFile = 0 - recursiveCreateTextFile(filePath, fileContent, callBackFunction, keepPrevious) - - function recursiveCreateTextFile(filePath, fileContent, callBackFunction, keepPrevious) { - - logger.write(MODULE_NAME, '[INFO] FileStorage -> createTextFile -> Entering Function.') + recursiveCreateTextFile(filePath, fileContent, callBackFunction, keepPrevious, noTemp) + function recursiveCreateTextFile(filePath, fileContent, callBackFunction, keepPrevious, noTemp) { /* Choose path for either logs or data */ let fileLocation if (filePath.indexOf("/Logs/") > 0) { @@ -210,7 +241,6 @@ exports.newFileStorage = function newFileStorage(logger, host, port) { } try { - logger.write(MODULE_NAME, '[INFO] FileStorage -> createTextFile -> fileLocation: ' + fileLocation) /* If necesary a folder or folders are created before writing the file to disk. */ @@ -222,9 +252,13 @@ exports.newFileStorage = function newFileStorage(logger, host, port) { Then we delete the original file, if exists, and finally we rename the temporary into the original name. */ const fs = require('fs') - fs.writeFile(fileLocation + '.tmp', fileContent, onFileWritenn) + if (noTemp === true) { + fs.writeFile(fileLocation, fileContent, onFileWriten) + } else { + fs.writeFile(fileLocation + '.tmp', fileContent, onFileWriten) + } - function onFileWritenn(err) { + function onFileWriten(err) { let retryTimeToUse = FAST_RETRY_TIME_IN_MILISECONDS if (currentRetryWriteTextFile > MAX_RETRY - 2) { retryTimeToUse = SLOW_RETRY_TIME_IN_MILISECONDS @@ -235,6 +269,10 @@ exports.newFileStorage = function newFileStorage(logger, host, port) { setTimeout(retry, retryTimeToUse) } else { + if (noTemp === true) { + callBackFunction(global.DEFAULT_OK_RESPONSE) + return + } if (keepPrevious === true) { /* In some cases, we are going to keep a copy of the previous version of the file being written. This will be usefull to recover from crashes @@ -252,7 +290,7 @@ exports.newFileStorage = function newFileStorage(logger, host, port) { logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> Error deleting file -> err = ' + err.stack) setTimeout(retry, retryTimeToUse) return - } + } /* Rename de Original into Previous */ fs.rename(fileLocation, fileLocation + '.Previous.json', onOriginalRenamed) @@ -266,7 +304,7 @@ exports.newFileStorage = function newFileStorage(logger, host, port) { logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> onOriginalRenamed -> Error renaming original file -> file = ' + fileLocation) logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> onOriginalRenamed -> Error renaming original file -> err = ' + err.stack) setTimeout(retry, retryTimeToUse) - return + return } /* Rename de Temp into Original */ @@ -282,13 +320,13 @@ exports.newFileStorage = function newFileStorage(logger, host, port) { callBackFunction(global.DEFAULT_OK_RESPONSE) } - } + } } } } else { /* In this case, there is no need to keep a copy of the file being replaced, so we just delete and that's it. */ - fs.unlink(fileLocation , onUnlinked) + fs.unlink(fileLocation, onUnlinked) function onUnlinked(err) { let code = '' @@ -296,11 +334,11 @@ exports.newFileStorage = function newFileStorage(logger, host, port) { code = err.code } if (code !== '' && code !== 'ENOENT') { - logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> Error deleting file -> file = ' + fileLocation ) + logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> Error deleting file -> file = ' + fileLocation) logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> Error deleting file -> err = ' + err.stack) setTimeout(retry, retryTimeToUse) return - } + } /* Rename de Temp into Original */ fs.rename(fileLocation + '.tmp', fileLocation, onTempRenamed) @@ -406,33 +444,33 @@ exports.newFileStorage = function newFileStorage(logger, 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 : '.'; + 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; - } + 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}'`); - } + // 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. - } - } + 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); + return curDir; + }, initDir); } function getFileViaHTTP(filePath, callback, callBackFunction) { @@ -455,7 +493,7 @@ exports.newFileStorage = function newFileStorage(logger, host, port) { logger.write(MODULE_NAME, "[ERROR] getFileViaHTTP -> onError -> err = " + err.stack); logger.write(MODULE_NAME, "[ERROR] getFileViaHTTP -> onError -> Failed to fetch file via HTTP. Will retry later. "); callBackFunction(global.DEFAULT_RETRY_RESPONSE); - }) + }) function onResponse(response) { diff --git a/TaskServer/IndicatorBot.js b/TaskServer/IndicatorBot.js index 004ed077f..cd513dee4 100644 --- a/TaskServer/IndicatorBot.js +++ b/TaskServer/IndicatorBot.js @@ -1,167 +1,785 @@ -exports.newIndicatorBot = function newIndicatorBot(bot, logger, UTILITIES, FILE_STORAGE) { - - const FULL_LOG = true; - const LOG_FILE_CONTENT = false; - const ONE_DAY_IN_MILISECONDS = 24 * 60 * 60 * 1000; +exports.newIndicatorBot = function newIndicatorBot(bot, parentLogger) { const MODULE_NAME = "Indicator Bot"; + const FULL_LOG = true; + + let USER_BOT_MODULE; + let COMMONS_MODULE; + + const MULTI_PERIOD_MARKET = require(global.ROOT_DIR + 'MultiPeriodMarket'); + const MULTI_PERIOD_DAILY = require(global.ROOT_DIR + 'MultiPeriodDaily'); + const FILE_STORAGE = require('./FileStorage.js'); + let fileStorage = FILE_STORAGE.newFileStorage(parentLogger); + + const DEBUG_MODULE = require(global.ROOT_DIR + 'DebugLog'); + let logger; // We need this here in order for the loopHealth function to work and be able to rescue the loop when it gets in trouble. + + let nextLoopTimeoutHandle; let thisObject = { initialize: initialize, - finalize: finalize, - start: start + run: run }; - let utilities = UTILITIES.newCloudUtilities(logger); - let fileStorage = FILE_STORAGE.newFileStorage(logger); - - const COMMONS = require('./Commons.js'); - let commons = COMMONS.newCommons(bot, logger, UTILITIES, FILE_STORAGE); + let processConfig; return thisObject; - function finalize() { - thisObject = undefined - utilities = undefined - fileStorage = undefined - commons = undefined - } - - function initialize(callBackFunction) { - + function initialize(pProcessConfig, callBackFunction) { try { + processConfig = pProcessConfig; - logger.fileName = MODULE_NAME; - logger.initialize(); + if (bot.definedByUI === true) { + /* The code of the bot is defined at the UI. No need to load a file with the code. */ + callBackFunction(global.DEFAULT_OK_RESPONSE); + return + } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Entering function."); } + /* This bot is not ready for taking its code from the UI, then we need to load it from its repo. */ + let filePath = bot.dataMine + "/" + "bots" + "/" + bot.processNode.referenceParent.parentNode.config.repo + "/" + pProcessConfig.codeName + filePath += "/User.Bot.js" - callBackFunction(global.DEFAULT_OK_RESPONSE); + fileStorage.getTextFile(filePath, onBotDownloaded); + function onBotDownloaded(err, text) { + + if (err.result !== global.DEFAULT_OK_RESPONSE.result) { + + parentLogger.write(MODULE_NAME, "[ERROR] initialize -> onInizialized -> onBotDownloaded -> err = " + err.message); + parentLogger.write(MODULE_NAME, "[ERROR] initialize -> onInizialized -> onBotDownloaded -> filePath = " + filePath); + callBackFunction(global.DEFAULT_FAIL_RESPONSE); + return; + } + + USER_BOT_MODULE = {} + USER_BOT_MODULE.newUserBot = eval(text); // TODO This needs to be changed function + + filePath = bot.dataMine + "/" + "bots" + "/" + bot.processNode.referenceParent.parentNode.config.repo + filePath += "/Commons.js" + + fileStorage.getTextFile(filePath, onCommonsDownloaded); + + function onCommonsDownloaded(err, text) { + if (err.result !== global.DEFAULT_OK_RESPONSE.result) { + parentLogger.write(MODULE_NAME, "[WARN] initialize -> onBotDownloaded -> onCommonsDownloaded -> Commons not found: " + err.code || err.message); + callBackFunction(global.DEFAULT_OK_RESPONSE); + return; + } + COMMONS_MODULE = {} + COMMONS_MODULE.newCommons = eval(text); // TODO This needs to be changed function + + callBackFunction(global.DEFAULT_OK_RESPONSE); + } + } } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> err = " + err.stack); + parentLogger.write(MODULE_NAME, "[ERROR] initialize -> err = " + err.stack); callBackFunction(global.DEFAULT_FAIL_RESPONSE); } } - function start(dataFiles, timeFrame, timeFrameLabel, currentDay, interExecutionMemory, callBackFunction) { - + function run(callBackFunction) { try { + let fixedTimeLoopIntervalHandle; - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> Entering function."); } + /* Heartbeats sent to the UI */ + bot.processHeartBeat = processHeartBeat - let products = {} - let mainDependency = {} - let processingDailyFiles - - if (currentDay !== undefined) { - processingDailyFiles = true + if (bot.runAtFixedInterval === true) { + fixedTimeLoopIntervalHandle = setInterval(loop, bot.fixedInterval); } else { - processingDailyFiles = false + loop(); } - /* The first phase here is about checking that we have everything we need at the definition level. */ - let dataDependencies = bot.processNode.referenceParent.processDependencies.dataDependencies - if (commons.validateDataDependencies(dataDependencies, callBackFunction) !== true) { return } - - let outputDatasets = bot.processNode.referenceParent.processOutput.outputDatasets - if (commons.validateOutputDatasets(outputDatasets, callBackFunction) !== true) { return } - - /* The second phase is about transforming the inputs into a format that can be used to apply the user defined code. */ - commons.inflateDatafiles(dataFiles, dataDependencies, products, mainDependency, timeFrame) - - /* During the third phase, we need to generate the data of the different products this process produces an output */ - for (let i = 0; i < outputDatasets.length; i++) { - - let outputDatasetNode = outputDatasets[i] - let jsonData // Just build data as Json objects - let outputData // Data built as a result of applying user defined code and formulas at the Data Building Procedure - let singularVariableName // Name of the variable for this product - let recordDefinition // Record as defined by the user at the UI - let fileContent // Here we store the contents of the new data built just before writing it to a file. - let resultsWithIrregularPeriods // A product will have irregular periods when the User Code inserts new result records at will, in contrast with normal procedure where the platform insert one record per loop execution. - - /* - For each outputDatasetNode in our process output, we will build the information based on our input products. - */ - - recordDefinition = outputDatasetNode.referenceParent.parentNode.record - singularVariableName = outputDatasetNode.referenceParent.parentNode.code.singularVariableName - - /* Check Irregular Periods */ - - if (outputDatasetNode.referenceParent.parentNode.dataBuilding.loop.javascriptCode !== undefined) { - if (outputDatasetNode.referenceParent.parentNode.dataBuilding.loop.javascriptCode.code.indexOf('results.push') >= 0) { - resultsWithIrregularPeriods = true + function loop() { + try { + function pad(str, max) { + str = str.toString(); + return str.length < max ? pad(" " + str, max) : str; } + + /* For each loop we want to create a new log file. */ + if (logger !== undefined) { + logger.finalize() + } + logger = DEBUG_MODULE.newDebugLog(); + global.LOGGER_MAP.set(MODULE_NAME, logger) + logger.bot = bot; + logger.initialize(); + + bot.loopCounter++; + bot.loopStartTime = new Date().valueOf(); + + /* We tell the UI that we are running. */ + processHeartBeat() + + /* We define here all the modules that the rest of the infraestructure, including the bots themselves can consume. */ + const UTILITIES = require(global.ROOT_DIR + 'CloudUtilities'); + const STATUS_REPORT = require(global.ROOT_DIR + 'StatusReport'); + const STATUS_DEPENDENCIES = require(global.ROOT_DIR + 'StatusDependencies'); + const DATA_DEPENDENCIES = require(global.ROOT_DIR + 'DataDependencies'); + const DATA_SET = require(global.ROOT_DIR + 'DataSet'); + const PROCESS_EXECUTION_EVENTS = require(global.ROOT_DIR + 'ProcessExecutionEvents'); + const PROCESS_OUTPUT = require(global.ROOT_DIR + 'ProcessOutput'); + + /* We define the datetime for the process that we are running now. This will be the official processing time for both the infraestructure and the bot. */ + bot.processDatetime = new Date(); // This will be considered the process date and time, so as to have it consistenly all over the execution. + + /* High level log entry */ + console.log(new Date().toISOString() + " " + pad(bot.exchange, 20) + " " + pad(bot.market.baseAsset + '/' + bot.market.quotedAsset, 10) + " " + pad(bot.codeName, 30) + " " + pad(bot.process, 30) + + " Main Loop # " + pad(Number(bot.loopCounter), 8)) + + /* We will prepare first the infraestructure needed for the bot to run. There are 3 modules we need to sucessfullly initialize first. */ + let processExecutionEvents + let userBot; + let processFramework; + let statusDependencies; + let dataDependencies; + + let nextWaitTime; + + initializeProcessExecutionEvents(); + + function initializeProcessExecutionEvents() { + try { + processExecutionEvents = PROCESS_EXECUTION_EVENTS.newProcessExecutionEvents(bot, logger) + processExecutionEvents.initialize(processConfig, onInizialized); + + function onInizialized(err) { + try { + switch (err.result) { + case global.DEFAULT_OK_RESPONSE.result: { + logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Execution finished well."); + startProcessExecutionEvents() + return; + } + case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. + logger.write(MODULE_NAME, "[WARN] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Retry Later. Requesting Execution Retry."); + nextWaitTime = 'Retry'; + loopControl(nextWaitTime); + return; + } + case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Operation Failed. Aborting the process."); + global.unexpectedError = err.message + processStopped() + return + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Unhandled err.result received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + + function startProcessExecutionEvents() { + try { + processExecutionEvents.start(onStarted); + + function onStarted(err) { + try { + switch (err.result) { + case global.DEFAULT_OK_RESPONSE.result: { + logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessExecutionEvents -> onStarted -> Execution finished well."); + + if (global.STOP_TASK_GRACEFULLY === true) { + loopControl() + return + } + + initializeStatusDependencies(); + return; + } + case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. + logger.write(MODULE_NAME, "[WARN] run -> loop -> startProcessExecutionEvents -> onStarted -> Retry Later. Requesting Execution Retry."); + nextWaitTime = 'Retry'; + loopControl(nextWaitTime); + return; + } + case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> Operation Failed. Aborting the process."); + global.unexpectedError = err.message + processStopped() + return + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> Unhandled err.result received. -> err.result = " + err.result); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> Unhandled err.result received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + + function initializeStatusDependencies() { + try { + statusDependencies = STATUS_DEPENDENCIES.newStatusDependencies(bot, logger, STATUS_REPORT, UTILITIES, PROCESS_OUTPUT); + statusDependencies.initialize(onInizialized); + + function onInizialized(err) { + try { + switch (err.result) { + case global.DEFAULT_OK_RESPONSE.result: { + logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeStatusDependencies -> onInizialized -> Execution finished well."); + initializeDataDependencies(); + return; + } + case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. + logger.write(MODULE_NAME, "[WARN] run -> loop -> initializeStatusDependencies -> onInizialized -> Retry Later. Requesting Execution Retry."); + nextWaitTime = 'Retry'; + loopControl(nextWaitTime); + return; + } + case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> Operation Failed. Aborting the process."); + global.unexpectedError = err.message + processStopped() + return + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> Unhandled err.result received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + + function initializeDataDependencies() { + try { + dataDependencies = DATA_DEPENDENCIES.newDataDependencies(bot, logger, DATA_SET); + dataDependencies.initialize(onInizialized); + + function onInizialized(err) { + try { + switch (err.result) { + case global.DEFAULT_OK_RESPONSE.result: { + /* If the process is configured to run inside a framework, we continue there, otherwise we run the bot directly. */ + if (processConfig.framework === undefined) { + initializeUserBot(); + return; + } + + switch (processConfig.framework.name) { + case 'Multi-Period-Market': { + processFramework = MULTI_PERIOD_MARKET.newMultiPeriodMarket(bot, logger, UTILITIES, FILE_STORAGE); + intitializeProcessFramework(); + break; + } + case 'Multi-Period-Daily': { + processFramework = MULTI_PERIOD_DAILY.newMultiPeriodDaily(bot, logger, UTILITIES, FILE_STORAGE); + intitializeProcessFramework(); + break; + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> Process Framework not Supported."); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> Process Framework Name = " + processConfig.framework.name); + global.unexpectedError = err.message + processStopped() + return + } + } + return; + } + case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. + logger.write(MODULE_NAME, "[WARN] run -> loop -> initializeDataDependencies -> onInizialized -> Retry Later. Requesting Execution Retry."); + nextWaitTime = 'Retry'; + loopControl(nextWaitTime); + return; + } + case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. + processStopped() + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> Operation Failed. Aborting the process."); + global.unexpectedError = err.message + processStopped() + return + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> Unhandled err.result received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + + function initializeUserBot() { + try { + usertBot = USER_BOT_MODULE.newUserBot(bot, logger, COMMONS_MODULE, UTILITIES, FILE_STORAGE); + usertBot.initialize(statusDependencies, onInizialized); + + function onInizialized(err) { + try { + switch (err.result) { + case global.DEFAULT_OK_RESPONSE.result: { + logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeUserBot -> onInizialized -> Execution finished well."); + startUserBot(); + return; + } + case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. + logger.write(MODULE_NAME, "[WARN] run -> loop -> initializeUserBot -> onInizialized -> Retry Later. Requesting Execution Retry."); + nextWaitTime = 'Retry'; + loopControl(nextWaitTime); + return; + } + case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> onInizialized -> Operation Failed. Aborting the process."); + global.unexpectedError = err.message + processStopped() + return + } + case global.CUSTOM_OK_RESPONSE.result: { + + switch (err.message) { + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> onInizialized > Unhandled custom response received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> onInizialized -> Unhandled err.result received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> onInizialized -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + + function startUserBot() { + try { + usertBot.start(onFinished); + + function onFinished(err) { + try { + switch (err.result) { + case global.DEFAULT_OK_RESPONSE.result: { + logger.write(MODULE_NAME, "[INFO] run -> loop -> startUserBot -> onFinished -> Execution finished well."); + finishProcessExecutionEvents() + return; + } + case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. + logger.write(MODULE_NAME, "[WARN] run -> loop -> startUserBot -> onFinished -> Retry Later. Requesting Execution Retry."); + nextWaitTime = 'Retry'; + loopControl(nextWaitTime); + return; + } + case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> onFinished -> Operation Failed. Aborting the process."); + global.unexpectedError = err.message + processStopped() + return + } + case global.CUSTOM_OK_RESPONSE.result: { + + switch (err.message) { + case "Dependency does not exist.": { + logger.write(MODULE_NAME, "[WARN] run -> loop -> startUserBot -> onFinished -> Dependency does not exist. This Loop will go to sleep."); + nextWaitTime = 'Sleep'; + loopControl(nextWaitTime); + return; + } + case "Dependency not ready.": { + logger.write(MODULE_NAME, "[WARN] run -> loop -> startUserBot -> onFinished -> Dependency not ready. Will Retry Later."); + nextWaitTime = 'Retry'; + loopControl(nextWaitTime); + return; + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> onFinished -> Unhandled custom response received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> onFinished -> Unhandled err.result received. -> err.result = " + err.result); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> onFinished -> Unhandled err.result received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> onFinished -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + + function intitializeProcessFramework() { + try { + processFramework.initialize(processConfig, statusDependencies, dataDependencies, onInizialized); + + function onInizialized(err) { + try { + switch (err.result) { + case global.DEFAULT_OK_RESPONSE.result: { + logger.write(MODULE_NAME, "[INFO] run -> loop -> intitializeProcessFramework -> onInizialized -> Execution finished well."); + startProcessFramework(); + return; + } + case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. + logger.write(MODULE_NAME, "[WARN] run -> loop -> intitializeProcessFramework -> onInizialized -> Retry Later. Requesting Execution Retry."); + nextWaitTime = 'Retry'; + loopControl(nextWaitTime); + return; + } + case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. + logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized -> Operation Failed. Aborting the process."); + global.unexpectedError = err.message + processStopped() + return + } + case global.CUSTOM_OK_RESPONSE.result: { + + switch (err.message) { + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized > Unhandled custom response received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized -> Unhandled err.result received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + + function startProcessFramework() { + try { + processFramework.start(onFinished); + + function onFinished(err) { + try { + processFramework.finalize() + processFramework = undefined + dataDependencies.finalize() + dataDependencies = undefined + statusDependencies.finalize() + statusDependencies = undefined + + switch (err.result) { + case global.DEFAULT_OK_RESPONSE.result: { + logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessFramework -> onFinished -> Execution finished well."); + finishProcessExecutionEvents() + return; + } + case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. + logger.write(MODULE_NAME, "[WARN] run -> loop -> startProcessFramework -> onFinished -> Retry Later. Requesting Execution Retry."); + nextWaitTime = 'Retry'; + loopControl(nextWaitTime); + return; + } + case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> Operation Failed. Aborting the process."); + global.unexpectedError = err.message + processStopped() + return + } + case global.CUSTOM_OK_RESPONSE.result: { + + switch (err.message) { + case "Dependency does not exist.": { + logger.write(MODULE_NAME, "[WARN] run -> loop -> startProcessFramework -> onFinished -> Dependency does not exist. This Loop will go to sleep."); + nextWaitTime = 'Sleep'; + loopControl(nextWaitTime); + return; + } + case "Dependency not ready.": { + logger.write(MODULE_NAME, "[WARN] run -> loop -> startProcessFramework -> onFinished -> Dependency not ready. This Loop will go to sleep."); + nextWaitTime = 'Sleep'; + loopControl(nextWaitTime); + return; + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> Unhandled custom response received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> Unhandled err.result received. -> err.result = " + err.result); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> Unhandled err.result received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + + function finishProcessExecutionEvents() { + try { + processExecutionEvents.finish(onFinished); + + function onFinished(err) { + try { + processExecutionEvents.finalize() + processExecutionEvents = undefined + + switch (err.result) { + case global.DEFAULT_OK_RESPONSE.result: { + logger.write(MODULE_NAME, "[INFO] run -> loop -> finishProcessExecutionEvents -> onFinished -> Execution finished well."); + nextWaitTime = 'Normal'; + loopControl(nextWaitTime); + return; + } + case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. + logger.write(MODULE_NAME, "[WARN] run -> loop -> finishProcessExecutionEvents -> onFinished -> Retry Later. Requesting Execution Retry."); + nextWaitTime = 'Retry'; + loopControl(nextWaitTime); + return; + } + case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. + logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> Operation Failed. Aborting the process."); + global.unexpectedError = err.message + processStopped() + return + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> Unhandled err.result received. -> err.result = " + err.result); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> Unhandled err.result received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + + function loopControl(nextWaitTime) { + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> nextWaitTime = " + nextWaitTime); } + + /* We show we reached the end of the loop. */ + processHeartBeat() + + /* Here we check if we must stop the loop gracefully. */ + shallWeStop(onStop, onContinue); + + function onStop() { + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> onStop -> Stopping the Loop Gracefully. See you next time!"); } + processStopped() + return; + } + + function onContinue() { + /* Indicator bots are going to be executed after a configured period of time after the last execution ended. This is to avoid overlapping executions. */ + switch (nextWaitTime) { + case 'Normal': { + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (processConfig.normalWaitTime / 1000) + " seconds."); } + nextLoopTimeoutHandle = setTimeout(loop, processConfig.normalWaitTime); + processHeartBeat(undefined, undefined, "Waiting " + processConfig.normalWaitTime / 1000 + " seconds for next execution.") + if (global.WRITE_LOGS_TO_FILES === 'true') { + logger.persist(); + } + } + break; + case 'Retry': { + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (processConfig.retryWaitTime / 1000) + " seconds."); } + nextLoopTimeoutHandle = setTimeout(loop, processConfig.retryWaitTime); + processHeartBeat(undefined, undefined, "Trying to recover from some problem. Waiting " + processConfig.retryWaitTime / 1000 + " seconds for next execution.") + logger.persist(); + } + break; + case 'Sleep': { + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (processConfig.sleepWaitTime / 60000) + " minutes."); } + nextLoopTimeoutHandle = setTimeout(loop, processConfig.sleepWaitTime); + processHeartBeat(undefined, undefined, "Waiting " + processConfig.sleepWaitTime / 60000 + " minutes for next execution.") + logger.persist(); + } + break; + case 'Coma': { + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (processConfig.comaWaitTime / 3600000) + " hours."); } + nextLoopTimeoutHandle = setTimeout(loop, processConfig.comaWaitTime); + processHeartBeat(undefined, undefined, "Waiting " + processConfig.comaWaitTime / 3600000 + " hours for next execution.") + logger.persist(); + } + break; + } + } + } + + function shallWeStop(stopCallBack, continueCallBack) { + try { + /* IMPORTANT: This function is exactly the same on the 3 modules. */ + if (!global.STOP_TASK_GRACEFULLY) { + continueCallBack(); + } else { + stopCallBack(); + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> shallWeStop -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + parentLogger.write(MODULE_NAME, "[ERROR] run -> loop -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return } + } - /* Build the data */ - jsonData = commons.dataBuildingProcedure( - products, - mainDependency, - recordDefinition, - outputDatasetNode.referenceParent.parentNode.dataBuilding, - singularVariableName, - outputDatasetNode.referenceParent.parentNode.code.codeName, - timeFrame, - timeFrameLabel, - resultsWithIrregularPeriods, - interExecutionMemory, - processingDailyFiles, - currentDay - ) + function processHeartBeat(processingDate, percentage, status) { + let event = { + seconds: (new Date()).getSeconds(), + processingDate: processingDate, + percentage: percentage, + status: status + } + global.EVENT_SERVER_CLIENT.raiseEvent(bot.processKey, 'Heartbeat', event) + } - /* Add the calculated properties */ - if (outputDatasetNode.referenceParent.parentNode.calculations !== undefined) { - outputData = commons.calculationsProcedure(jsonData, recordDefinition, outputDatasetNode.referenceParent.parentNode.calculations, singularVariableName, timeFrame) + function processStopped() { + if (global.unexpectedError !== undefined) { + global.PROCESS_ERROR(bot.processKey, undefined, "An unexpected error caused the Process to stop.") } else { - outputData = jsonData + global.EVENT_SERVER_CLIENT.raiseEvent(bot.processKey, 'Stopped') } - products[outputDatasetNode.referenceParent.parentNode.code.pluralVariableName] = outputData - } - - /*At the fourth and last phase, we will save the new information generated into files corresponding to each output outputDatasetNode.*/ - let totalFilesWritten = 0 - for (let i = 0; i < outputDatasets.length; i++) { - let outputDatasetNode = outputDatasets[i] - let outputData = products[outputDatasetNode.referenceParent.parentNode.code.pluralVariableName] - let resultsWithIrregularPeriods // A product will have irregular periods when the User Code inserts new result records at will, in contrast with normal procedure where the platform insert one record per loop execution. - let contextSummary = {} - - /* Check Irregular Periods */ - if (outputDatasetNode.referenceParent.parentNode.dataBuilding.loop.javascriptCode.code.indexOf('results.push') >= 0) { - resultsWithIrregularPeriods = true - } - - /* Simplifying the access to basic info */ - - contextSummary.dataset = outputDatasetNode.referenceParent.code.codeName - contextSummary.product = outputDatasetNode.referenceParent.parentNode.code.codeName - contextSummary.bot = outputDatasetNode.referenceParent.parentNode.parentNode.code.codeName - contextSummary.dataMine = outputDatasetNode.referenceParent.parentNode.parentNode.parentNode.code.codeName - - /* This stuff is still hardcoded and unresolved. */ - contextSummary.botVersion = { - "major": 1, - "minor": 0 - } - contextSummary.dataSetVersion = "dataSet.V1" - - let fileContent = commons.generateFileContent(outputData, outputDatasetNode.referenceParent.parentNode.record, resultsWithIrregularPeriods, processingDailyFiles, currentDay, callBackFunction) - commons.writeFile(contextSummary, fileContent, anotherFileWritten, processingDailyFiles, timeFrameLabel, currentDay, callBackFunction) - } - - - function anotherFileWritten() { - totalFilesWritten++ - if (totalFilesWritten === outputDatasets.length) { - callBackFunction(global.DEFAULT_OK_RESPONSE); + logger.persist(); + clearInterval(fixedTimeLoopIntervalHandle); + clearTimeout(nextLoopTimeoutHandle); + if (global.unexpectedError !== undefined) { + callBackFunction(global.DEFAULT_FAIL_RESPONSE) + } else { + callBackFunction(global.DEFAULT_OK_RESPONSE) } } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> err = " + err.stack); + + } catch (err) { + parentLogger.write(MODULE_NAME, "[ERROR] run -> err = " + err.stack); + clearInterval(fixedTimeLoopIntervalHandle); + clearTimeout(nextLoopTimeoutHandle); callBackFunction(global.DEFAULT_FAIL_RESPONSE); } } diff --git a/TaskServer/IndicatorBotProcessMainLoop.js b/TaskServer/IndicatorBotProcessMainLoop.js deleted file mode 100644 index 90892dd72..000000000 --- a/TaskServer/IndicatorBotProcessMainLoop.js +++ /dev/null @@ -1,1121 +0,0 @@ -exports.newIndicatorBotProcessMainLoop = function newIndicatorBotProcessMainLoop(bot, parentLogger) { - - const ROOT_DIR = './'; - - const MODULE_NAME = "Indicator Process Main Loop"; - const FULL_LOG = true; - - let USER_BOT_MODULE; - let COMMONS_MODULE; - - const MULTI_PERIOD_MARKET = require(ROOT_DIR + 'MultiPeriodMarket'); - const MULTI_PERIOD_DAILY = require(ROOT_DIR + 'MultiPeriodDaily'); - const FILE_STORAGE = require('./FileStorage.js'); - let fileStorage = FILE_STORAGE.newFileStorage(parentLogger); - - const DEBUG_MODULE = require(ROOT_DIR + 'DebugLog'); - let logger; // We need this here in order for the loopHealth function to work and be able to rescue the loop when it gets in trouble. - - let nextLoopTimeoutHandle; - let checkLoopHealthHandle; - - let thisObject = { - initialize: initialize, - run: run - }; - - let processConfig; - - return thisObject; - - function initialize(pProcessConfig, callBackFunction) { - - try { - if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, "[INFO] initialize -> Entering function."); } - - processConfig = pProcessConfig; - - if (bot.definedByUI === true) { - /* The code of the bot is defined at the UI. No need to load a file with the code. */ - callBackFunction(global.DEFAULT_OK_RESPONSE); - return - } - - /* This bot is not ready for taking its code from the UI, then we need to load it from its repo. */ - - let filePath = bot.dataMine + "/" + "bots" + "/" + bot.repo + "/" + pProcessConfig.codeName - filePath += "/User.Bot.js" - - fileStorage.getTextFile(filePath, onBotDownloaded); - - function onBotDownloaded(err, text) { - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - parentLogger.write(MODULE_NAME, "[ERROR] initialize -> onInizialized -> onBotDownloaded -> err = " + err.message); - parentLogger.write(MODULE_NAME, "[ERROR] initialize -> onInizialized -> onBotDownloaded -> filePath = " + filePath); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - - USER_BOT_MODULE = {} - USER_BOT_MODULE.newUserBot = eval(text); // TODO This needs to be changed function - - filePath = bot.dataMine + "/" + "bots" + "/" + bot.repo; - filePath += "/Commons.js" - - fileStorage.getTextFile(filePath, onCommonsDownloaded); - - function onCommonsDownloaded(err, text) { - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - parentLogger.write(MODULE_NAME, "[WARN] initialize -> onBotDownloaded -> onCommonsDownloaded -> Commons not found: " + err.code || err.message); - callBackFunction(global.DEFAULT_OK_RESPONSE); - return; - } - COMMONS_MODULE = {} - COMMONS_MODULE.newCommons = eval(text); // TODO This needs to be changed function - - callBackFunction(global.DEFAULT_OK_RESPONSE); - } - } - } catch (err) { - parentLogger.write(MODULE_NAME, "[ERROR] initialize -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function run(callBackFunction) { - - try { - - if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, "[INFO] run -> Entering function."); } - - bot.enableCheckLoopHealth = true; - - let fixedTimeLoopIntervalHandle; - - if (bot.runAtFixedInterval === true) { - - fixedTimeLoopIntervalHandle = setInterval(loop, bot.fixedInterval); - - } else { - - loop(); - - } - - function loop() { - - try { - - function pad(str, max) { - str = str.toString(); - return str.length < max ? pad(" " + str, max) : str; - } - - /* For each loop we want to create a new log file. */ - - if (logger !== undefined) { - logger.finalize() - } - logger = DEBUG_MODULE.newDebugLog(); - global.LOGGER_MAP.set(MODULE_NAME, logger) - logger.bot = bot; - logger.initialize(); - - bot.loopCounter++; - bot.loopStartTime = new Date().valueOf(); - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> Entering function."); } - - /* Loop Heartbeat sent to the UI */ - bot.processHeartBeat = processHeartBeat - processHeartBeat() - - /* We define here all the modules that the rest of the infraestructure, including the bots themselves can consume. */ - - const UTILITIES = require(ROOT_DIR + 'CloudUtilities'); - const STATUS_REPORT = require(ROOT_DIR + 'StatusReport'); - const STATUS_DEPENDENCIES = require(ROOT_DIR + 'StatusDependencies'); - const DATA_DEPENDENCIES = require(ROOT_DIR + 'DataDependencies'); - const DATA_SET = require(ROOT_DIR + 'DataSet'); - const PROCESS_EXECUTION_EVENTS = require(ROOT_DIR + 'ProcessExecutionEvents'); - const PROCESS_OUTPUT = require(ROOT_DIR + 'ProcessOutput'); - - /* We define the datetime for the process that we are running now. This will be the official processing time for both the infraestructure and the bot. */ - - bot.processDatetime = new Date(); // This will be considered the process date and time, so as to have it consistenly all over the execution. - - /* High level log entry */ - - console.log(new Date().toISOString() + " " + pad(bot.exchange, 20) + " " + pad(bot.market.baseAsset + '/' + bot.market.quotedAsset, 10) + " " + pad(bot.codeName, 30) + " " + pad(bot.process, 30) - + " Main Loop # " + pad(Number(bot.loopCounter), 8)) - - /* We will prepare first the infraestructure needed for the bot to run. There are 3 modules we need to sucessfullly initialize first. */ - - let processExecutionEvents - let userBot; - let processFramework; - let statusDependencies; - let dataDependencies; - - let nextWaitTime; - - initializeProcessExecutionEvents(); - - function initializeProcessExecutionEvents() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeProcessExecutionEvents -> Entering function."); } - - processExecutionEvents = PROCESS_EXECUTION_EVENTS.newProcessExecutionEvents(bot, logger) - - processExecutionEvents.initialize(onInizialized); - - function onInizialized(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Entering function."); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Execution finished well."); - startProcessExecutionEvents() - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[WARN] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Retry Later. Requesting Execution Retry."); - nextWaitTime = 'Retry'; - loopControl(nextWaitTime); - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - processStopped() - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - function startProcessExecutionEvents() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessExecutionEvents -> Entering function."); } - - processExecutionEvents.start(onStarted); - - function onStarted(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessExecutionEvents -> onStarted -> Entering function."); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessExecutionEvents -> onStarted -> Execution finished well."); - - if (global.STOP_TASK_GRACEFULLY === true) { - loopControl() - return - } - - initializeStatusDependencies(); - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[WARN] run -> loop -> startProcessExecutionEvents -> onStarted -> Retry Later. Requesting Execution Retry."); - nextWaitTime = 'Retry'; - loopControl(nextWaitTime); - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - processStopped() - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - function initializeStatusDependencies() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeStatusDependencies -> Entering function."); } - - statusDependencies = STATUS_DEPENDENCIES.newStatusDependencies(bot, logger, STATUS_REPORT, UTILITIES, PROCESS_OUTPUT); - - statusDependencies.initialize(onInizialized); - - function onInizialized(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeStatusDependencies -> onInizialized -> Entering function."); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeStatusDependencies -> onInizialized -> Execution finished well."); - initializeDataDependencies(); - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[WARN] run -> loop -> initializeStatusDependencies -> onInizialized -> Retry Later. Requesting Execution Retry."); - nextWaitTime = 'Retry'; - loopControl(nextWaitTime); - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - processStopped() - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - function initializeDataDependencies() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeDataDependencies -> Entering function."); } - - dataDependencies = DATA_DEPENDENCIES.newDataDependencies(bot, logger, DATA_SET); - - dataDependencies.initialize(onInizialized); - - function onInizialized(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeDataDependencies -> onInizialized -> Entering function."); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeDataDependencies -> onInizialized -> Execution finished well."); } - - /* If the process is configured to run inside a framework, we continue there, otherwise we run the bot directly. */ - if (processConfig.framework === undefined) { - initializeUserBot(); - return; - } - - switch (processConfig.framework.name) { - case 'Multi-Period-Market': { - processFramework = MULTI_PERIOD_MARKET.newMultiPeriodMarket(bot, logger, UTILITIES, FILE_STORAGE); - intitializeProcessFramework(); - break; - } - case 'Multi-Period-Daily': { - processFramework = MULTI_PERIOD_DAILY.newMultiPeriodDaily(bot, logger, UTILITIES, FILE_STORAGE); - intitializeProcessFramework(); - break; - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> Process Framework not Supported."); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> Process Framework Name = " + processConfig.framework.name); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - } - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[WARN] run -> loop -> initializeDataDependencies -> onInizialized -> Retry Later. Requesting Execution Retry."); - nextWaitTime = 'Retry'; - loopControl(nextWaitTime); - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - processStopped() - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - function initializeUserBot() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeUserBot -> Entering function."); } - - usertBot = USER_BOT_MODULE.newUserBot(bot, logger, COMMONS_MODULE, UTILITIES, FILE_STORAGE); - - usertBot.initialize(statusDependencies, onInizialized); - - function onInizialized(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeUserBot -> onInizialized -> Entering function."); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeUserBot -> onInizialized -> Execution finished well."); - startUserBot(); - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[WARN] run -> loop -> initializeUserBot -> onInizialized -> Retry Later. Requesting Execution Retry."); - nextWaitTime = 'Retry'; - loopControl(nextWaitTime); - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - processStopped() - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> onInizialized -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - case global.CUSTOM_OK_RESPONSE.result: { - - switch (err.message) { - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> onInizialized > Unhandled custom response received. -> err = " + err.message); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - } - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> onInizialized -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> onInizialized -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - function startUserBot() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> startUserBot -> Entering function."); } - - usertBot.start(onFinished); - - function onFinished(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> startUserBot -> onFinished -> Entering function."); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - logger.write(MODULE_NAME, "[INFO] run -> loop -> startUserBot -> onFinished -> Execution finished well."); - finishProcessExecutionEvents() - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[WARN] run -> loop -> startUserBot -> onFinished -> Retry Later. Requesting Execution Retry."); - nextWaitTime = 'Retry'; - loopControl(nextWaitTime); - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - processStopped() - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> onFinished -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - case global.CUSTOM_OK_RESPONSE.result: { - - switch (err.message) { - case "Dependency does not exist.": { - logger.write(MODULE_NAME, "[WARN] run -> loop -> startUserBot -> onFinished -> Dependency does not exist. This Loop will go to sleep."); - nextWaitTime = 'Sleep'; - loopControl(nextWaitTime); - return; - } - case "Dependency not ready.": { - logger.write(MODULE_NAME, "[WARN] run -> loop -> startUserBot -> onFinished -> Dependency not ready. Will Retry Later."); - nextWaitTime = 'Retry'; - loopControl(nextWaitTime); - return; - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> onFinished -> Unhandled custom response received. -> err = " + err.message); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - } - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> onFinished -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> onFinished -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> onFinished -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - function intitializeProcessFramework() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> intitializeProcessFramework -> Entering function."); } - - processFramework.initialize(processConfig, statusDependencies, dataDependencies, onInizialized); - - function onInizialized(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> intitializeProcessFramework -> onInizialized -> Entering function."); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - logger.write(MODULE_NAME, "[INFO] run -> loop -> intitializeProcessFramework -> onInizialized -> Execution finished well."); - startProcessFramework(); - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[WARN] run -> loop -> intitializeProcessFramework -> onInizialized -> Retry Later. Requesting Execution Retry."); - nextWaitTime = 'Retry'; - loopControl(nextWaitTime); - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - processStopped() - logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - case global.CUSTOM_OK_RESPONSE.result: { - - switch (err.message) { - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized > Unhandled custom response received. -> err = " + err.message); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - } - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - function startProcessFramework() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessFramework -> Entering function."); } - - processFramework.start(onFinished); - - function onFinished(err) { - - try { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessFramework -> onFinished -> Entering function."); } - processFramework.finalize() - processFramework = undefined - dataDependencies.finalize() - dataDependencies = undefined - statusDependencies.finalize() - statusDependencies = undefined - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessFramework -> onFinished -> Execution finished well."); - finishProcessExecutionEvents() - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[WARN] run -> loop -> startProcessFramework -> onFinished -> Retry Later. Requesting Execution Retry."); - nextWaitTime = 'Retry'; - loopControl(nextWaitTime); - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - processStopped() - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - case global.CUSTOM_OK_RESPONSE.result: { - - switch (err.message) { - case "Dependency does not exist.": { - logger.write(MODULE_NAME, "[WARN] run -> loop -> startProcessFramework -> onFinished -> Dependency does not exist. This Loop will go to sleep."); - nextWaitTime = 'Sleep'; - loopControl(nextWaitTime); - return; - } - case "Dependency not ready.": { - logger.write(MODULE_NAME, "[WARN] run -> loop -> startProcessFramework -> onFinished -> Dependency not ready. This Loop will go to sleep."); - nextWaitTime = 'Sleep'; - loopControl(nextWaitTime); - return; - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> Unhandled custom response received. -> err = " + err.message); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - } - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - function finishProcessExecutionEvents() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> finishProcessExecutionEvents -> Entering function."); } - - processExecutionEvents.finish(onFinished); - - function onFinished(err) { - try { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> finishProcessExecutionEvents -> onFinished -> Entering function."); } - - processExecutionEvents.finalize() - processExecutionEvents = undefined - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - logger.write(MODULE_NAME, "[INFO] run -> loop -> finishProcessExecutionEvents -> onFinished -> Execution finished well."); - nextWaitTime = 'Normal'; - loopControl(nextWaitTime); - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[WARN] run -> loop -> finishProcessExecutionEvents -> onFinished -> Retry Later. Requesting Execution Retry."); - nextWaitTime = 'Retry'; - loopControl(nextWaitTime); - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - processStopped() - logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - function loopControl(nextWaitTime) { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Entering function."); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> nextWaitTime = " + nextWaitTime); } - - /* We show we reached the end of the loop. */ - - processHeartBeat() - - /* Here we check if we must stop the loop gracefully. */ - - shallWeStop(onStop, onContinue); - - function onStop() { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> onStop -> Entering function."); } - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> onStop -> Stopping the Loop Gracefully. See you next time!"); } - - if(global.WRITE_LOGS_TO_FILES === 'true'){ - logger.persist(); - } - - processStopped() - callBackFunction(global.DEFAULT_OK_RESPONSE); - return; - - } - - function onContinue() { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> onContinue -> Entering function."); } - - /* Indicator bots are going to be executed after a configured period of time after the last execution ended. This is to avoid overlapping executions. */ - - switch (nextWaitTime) { - case 'Normal': { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (processConfig.normalWaitTime / 1000) + " seconds."); } - if (processConfig.deadWaitTime > 0) { - checkLoopHealthHandle = setTimeout(checkLoopHealth, processConfig.deadWaitTime, bot.loopCounter); - } - nextLoopTimeoutHandle = setTimeout(loop, processConfig.normalWaitTime); - processHeartBeat(undefined, undefined, "Waiting " + processConfig.normalWaitTime / 1000 + " seconds for next execution.") - if(global.WRITE_LOGS_TO_FILES === 'true'){ - logger.persist(); - } - } - break; - case 'Retry': { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (processConfig.retryWaitTime / 1000) + " seconds."); } - if (processConfig.deadWaitTime > 0) { - checkLoopHealthHandle = setTimeout(checkLoopHealth, processConfig.deadWaitTime, bot.loopCounter); - } - nextLoopTimeoutHandle = setTimeout(loop, processConfig.retryWaitTime); - processHeartBeat(undefined, undefined, "Trying to recover from some problem. Waiting " + processConfig.retryWaitTime / 1000 + " seconds for next execution.") - logger.persist(); - } - break; - case 'Sleep': { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (processConfig.sleepWaitTime / 60000) + " minutes."); } - nextLoopTimeoutHandle = setTimeout(loop, processConfig.sleepWaitTime); - processHeartBeat(undefined, undefined, "Waiting " + processConfig.sleepWaitTime / 60000 + " minutes for next execution.") - logger.persist(); - } - break; - case 'Coma': { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (processConfig.comaWaitTime / 3600000) + " hours."); } - nextLoopTimeoutHandle = setTimeout(loop, processConfig.comaWaitTime); - processHeartBeat(undefined, undefined, "Waiting " + processConfig.comaWaitTime / 3600000 + " hours for next execution.") - logger.persist(); - } - break; - } - } - } - - function checkLoopHealth(pLastLoop) { - - if (bot.enableCheckLoopHealth === false || global.STOP_TASK_GRACEFULLY === true) { - - logger.write(MODULE_NAME, "[WARN] run -> loop -> checkLoopHealth -> bot.enableCheckLoopHealth = " + bot.enableCheckLoopHealth); - - return; - } // This gets disabled anytime the Main Loop is shut down by any condition. - - if (bot.loopCounter <= pLastLoop + 1) { // This means that the next loop started but also stopped executing abruptally. - - let now = new Date().valueOf(); - - if (now - bot.loopStartTime > processConfig.deadWaitTime) { - - logger.write(MODULE_NAME, "[ERROR] run -> loop -> checkLoopHealth -> Dead loop found -> pLastLoop = " + pLastLoop); - console.log((new Date().toISOString() + " [ERROR] run -> loop -> checkLoopHealth -> " + pad(bot.codeName,20) + " " + pad(bot.process,30) + " Loop # " + pad(Number(bot.loopCounter),5) + " found dead. Resurrecting it now.")); - - logger.persist(); // We persist the logs of the failed execution. - clearTimeout(nextLoopTimeoutHandle); // We cancel the timeout in case the original loop was still running and schedulled to reexecute. - loop(); // We restart the loop so that the processing can continue. - - } else { - - console.log((new Date().toISOString() + " [WARN] run -> loop -> checkLoopHealth -> " + pad(bot.codeName,20) + " " + pad(bot.process,30) + " Loop # " + pad(Number(bot.loopCounter),5) + " found delayed but still alive. No action taken.")); - - } - } - } - - function shallWeStop(stopCallBack, continueCallBack) { - - try { - - /* IMPORTANT: This function is exactly the same on the 3 modules. */ - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> shallWeStop -> Entering function. "); } - - if (!global.STOP_TASK_GRACEFULLY) { - continueCallBack(); - } else { - stopCallBack(); - } - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> shallWeStop -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - } catch (err) { - parentLogger.write(MODULE_NAME, "[ERROR] run -> loop -> err = "+ err.stack); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - function processHeartBeat(processingDate, percentage, status) { - let event = { - seconds: (new Date()).getSeconds(), - processingDate: processingDate, - percentage: percentage, - status: status - } - global.EVENT_SERVER_CLIENT.raiseEvent(bot.processKey, 'Heartbeat', event) - } - - function processStopped() { - global.EVENT_SERVER_CLIENT.raiseEvent(bot.processKey, 'Stopped') - } - - } catch (err) { - parentLogger.write(MODULE_NAME, "[ERROR] run -> err = "+ err.stack); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } -}; diff --git a/TaskServer/IndicatorOutput.js b/TaskServer/IndicatorOutput.js new file mode 100644 index 000000000..d7f258b6b --- /dev/null +++ b/TaskServer/IndicatorOutput.js @@ -0,0 +1,157 @@ +exports.newIndicatorOutput = function newIndicatorOutput(bot, logger, UTILITIES, FILE_STORAGE) { + const FULL_LOG = true; + const MODULE_NAME = "Indicator Bot"; + + let thisObject = { + initialize: initialize, + finalize: finalize, + start: start + }; + + let utilities = UTILITIES.newCloudUtilities(logger); + let fileStorage = FILE_STORAGE.newFileStorage(logger); + + const COMMONS = require('./Commons.js'); + let commons = COMMONS.newCommons(bot, logger, UTILITIES, FILE_STORAGE); + + return thisObject; + + function finalize() { + thisObject = undefined + utilities = undefined + fileStorage = undefined + commons = undefined + } + + function initialize(callBackFunction) { + try { + logger.fileName = MODULE_NAME; + logger.initialize(); + + callBackFunction(global.DEFAULT_OK_RESPONSE); + + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] initialize -> err = " + err.stack); + callBackFunction(global.DEFAULT_FAIL_RESPONSE); + } + } + + function start(dataFiles, timeFrame, timeFrameLabel, currentDay, interExecutionMemory, callBackFunction) { + + try { + + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> Entering function."); } + + let products = {} + let mainDependency = {} + let processingDailyFiles + + if (currentDay !== undefined) { + processingDailyFiles = true + } else { + processingDailyFiles = false + } + + /* The first phase here is about checking that we have everything we need at the definition level. */ + let dataDependencies = global.NODE_BRANCH_TO_ARRAY(bot.processNode.referenceParent.processDependencies, 'Data Dependency') + + if (commons.validateDataDependencies(dataDependencies, callBackFunction) !== true) { return } + + let outputDatasets = global.NODE_BRANCH_TO_ARRAY (bot.processNode.referenceParent.processOutput, 'Output Dataset') + if (commons.validateOutputDatasets(outputDatasets, callBackFunction) !== true) { return } + + /* The second phase is about transforming the inputs into a format that can be used to apply the user defined code. */ + commons.inflateDatafiles(dataFiles, dataDependencies, products, mainDependency, timeFrame) + + /* During the third phase, we need to generate the data of the different products this process produces an output */ + for (let i = 0; i < outputDatasets.length; i++) { + + let outputDatasetNode = outputDatasets[i] + let jsonData // Just build data as Json objects + let outputData // Data built as a result of applying user defined code and formulas at the Data Building Procedure + let singularVariableName // Name of the variable for this product + let recordDefinition // Record as defined by the user at the UI + let fileContent // Here we store the contents of the new data built just before writing it to a file. + let resultsWithIrregularPeriods // A product will have irregular periods when the User Code inserts new result records at will, in contrast with normal procedure where the platform insert one record per loop execution. + + /* + For each outputDatasetNode in our process output, we will build the information based on our input products. + */ + + recordDefinition = outputDatasetNode.referenceParent.parentNode.record + singularVariableName = outputDatasetNode.referenceParent.parentNode.config.singularVariableName + + /* Check Irregular Periods */ + + if (outputDatasetNode.referenceParent.parentNode.dataBuilding.loop.javascriptCode !== undefined) { + if (outputDatasetNode.referenceParent.parentNode.dataBuilding.loop.javascriptCode.code.indexOf('results.push') >= 0) { + resultsWithIrregularPeriods = true + } + } + + /* Build the data */ + jsonData = commons.dataBuildingProcedure( + products, + mainDependency, + recordDefinition, + outputDatasetNode.referenceParent.parentNode.dataBuilding, + singularVariableName, + outputDatasetNode.referenceParent.parentNode.config.codeName, + timeFrame, + timeFrameLabel, + resultsWithIrregularPeriods, + interExecutionMemory, + processingDailyFiles, + currentDay + ) + + /* Add the calculated properties */ + if (outputDatasetNode.referenceParent.parentNode.calculations !== undefined) { + outputData = commons.calculationsProcedure(jsonData, recordDefinition, outputDatasetNode.referenceParent.parentNode.calculations, singularVariableName, timeFrame) + } else { + outputData = jsonData + } + products[outputDatasetNode.referenceParent.parentNode.config.pluralVariableName] = outputData + } + + /*At the fourth and last phase, we will save the new information generated into files corresponding to each output outputDatasetNode.*/ + let totalFilesWritten = 0 + for (let i = 0; i < outputDatasets.length; i++) { + let outputDatasetNode = outputDatasets[i] + let outputData = products[outputDatasetNode.referenceParent.parentNode.config.pluralVariableName] + let resultsWithIrregularPeriods // A product will have irregular periods when the User Code inserts new result records at will, in contrast with normal procedure where the platform insert one record per loop execution. + let contextSummary = {} + + /* Check Irregular Periods */ + if (outputDatasetNode.referenceParent.parentNode.dataBuilding.loop.javascriptCode.code.indexOf('results.push') >= 0) { + resultsWithIrregularPeriods = true + } + + /* Simplifying the access to basic info */ + + contextSummary.dataset = outputDatasetNode.referenceParent.config.codeName + contextSummary.product = outputDatasetNode.referenceParent.parentNode.config.codeName + + let botNode = global.FIND_NODE_IN_NODE_MESH(outputDatasetNode, 'Indicator Bot') + contextSummary.bot = botNode.config.codeName + let dataMineNode = global.FIND_NODE_IN_NODE_MESH(outputDatasetNode, 'Data Mine') + contextSummary.dataMine = dataMineNode.config.codeName + + let fileContent = commons.generateFileContent(outputData, outputDatasetNode.referenceParent.parentNode.record, resultsWithIrregularPeriods, processingDailyFiles, currentDay, callBackFunction) + commons.writeFile(contextSummary, fileContent, anotherFileWritten, processingDailyFiles, timeFrameLabel, currentDay, callBackFunction) + } + + + function anotherFileWritten() { + totalFilesWritten++ + if (totalFilesWritten === outputDatasets.length) { + callBackFunction(global.DEFAULT_OK_RESPONSE); + } + } + } + catch (err) { + logger.write(MODULE_NAME, "[ERROR] start -> err = " + err.stack); + callBackFunction(global.DEFAULT_FAIL_RESPONSE); + } + } +}; diff --git a/TaskServer/LowFrequencyTrading/Announcements.js b/TaskServer/LowFrequencyTrading/Announcements.js new file mode 100644 index 000000000..2c63c88d1 --- /dev/null +++ b/TaskServer/LowFrequencyTrading/Announcements.js @@ -0,0 +1,57 @@ +exports.newAnnouncements = function newAnnouncements(bot, logger) { + + const MODULE_NAME = 'Announcements' + + let thisObject = { + makeAnnoucements: makeAnnoucements, + initialize: initialize, + finalize: finalize + } + + let tradingSystem + let tradingEngine + + return thisObject + + function initialize() { + tradingSystem = bot.simulationState.tradingSystem + tradingEngine = bot.simulationState.tradingEngine + } + + function finalize() { + tradingSystem = undefined + tradingEngine = undefined + bot.SESSION.messagesSent = undefined + } + + function makeAnnoucements(node) { + if (node.announcements !== undefined) { + for (let i = 0; i < node.announcements.length; i++) { + let announcement = node.announcements[i] + let canAnnounce = true + if (announcement.announcementCondition !== undefined) { + let conditionValue + try { + conditionValue = eval(announcement.announcementCondition.code) + } catch (err) { + tradingSystem.errors.push([announcement.announcementCondition.id, err.message]) + } + if (conditionValue !== true) { canAnnounce = false } + } + if (canAnnounce === true) { + let text = announcement.config.text + if (announcement.formula !== undefined) { + text = tradingSystem.formulas.get(announcement.formula.id) + } + + if (bot.SESSION.socialBots !== undefined) { + bot.SESSION.socialBots.announce(text) + tradingSystem.announcements.push([announcement.id, text]) + } else { + tradingSystem.errors.push([announcement.id, 'Could not announce because session does not have Social Bots.']) + } + } + } + } + } +} \ No newline at end of file diff --git a/TaskServer/LowFrequencyTrading/ExchangeAPI.js b/TaskServer/LowFrequencyTrading/ExchangeAPI.js new file mode 100644 index 000000000..a6d314c43 --- /dev/null +++ b/TaskServer/LowFrequencyTrading/ExchangeAPI.js @@ -0,0 +1,169 @@ +exports.newExchangeAPI = function newExchangeAPI(bot, logger) { + + let MODULE_NAME = "Exchange API"; + + let thisObject = { + getOrder: getOrder, + createOrder: createOrder, + cancelOrder: cancelOrder, + initialize: initialize, + finalize: finalize + }; + + let tradingSystem + + let exchangeId + let options = {} + let exchange + + const ccxt = require('ccxt') + + return thisObject; + + function initialize() { + tradingSystem = bot.simulationState.tradingSystem + + exchangeId = bot.exchange.toLowerCase() + + let key = bot.KEY + let secret = bot.SECRET + + const exchangeClass = ccxt[exchangeId] + const exchangeConstructorParams = { + 'apiKey': key, + 'secret': secret, + 'timeout': 30000, + 'enableRateLimit': true, + verbose: false, + 'adjustForTimeDifference': true, + options: options + } + exchange = new exchangeClass(exchangeConstructorParams) + } + + function finalize() { + tradingSystem = undefined + exchangeId = undefined + options = undefined + exchange = undefined + } + + async function getOrder(tradingSystemOrder, tradingEngineOrder) { + + let orderId = tradingEngineOrder.exchangeId.value + const symbol = bot.market.baseAsset + '/' + bot.market.quotedAsset + + /* Basic Logging */ + logInfo("getOrder -> orderId = " + orderId) + logInfo("getOrder -> symbol = " + symbol) + + /* Basic Validations */ + if (exchange.has['fetchOrder'] === false) { + logError("getOrder -> Exchange does not support fetchOrder command."); + return + } + + try { + let order = await exchange.fetchOrder(orderId, symbol) + + logInfo("getOrder -> Response from the Exchange: " + JSON.stringify(order)); + return order + } catch (err) { + tradingSystem.errors.push([tradingSystemOrder.id, "getOrder -> Error = " + err.message]) + logError("getOrder -> Error = " + err.message); + } + } + + async function createOrder(tradingSystemOrder, tradingEngineOrder) { + + let price = tradingEngineOrder.rate.value // CCXT: how much quote currency you are willing to pay for a trade lot of base currency (for limit orders only) + let type // CCXT: a string literal type of order, ccxt currently unifies market and limit orders only + let side // CCXT: a string literal for the direction of your order, buy or sell + let symbol = bot.market.baseAsset + '/' + bot.market.quotedAsset // CCXT: a string literal symbol of the market you wish to trade on, like BTC/USD, ZEC/ETH, DOGE/DASH, etc + let amount = tradingEngineOrder.orderBaseAsset.size.value // CCXT: how much of currency you want to trade, in Base Asset. + + switch (tradingSystemOrder.type) { + case 'Market Buy Order': { + type = 'market' + side = 'buy' + break + } + case 'Market Sell Order': { + type = 'market' + side = 'sell' + break + } + case 'Limit Buy Order': { + type = 'limit' + side = 'buy' + break + } + case 'Limit Sell Order': { + type = 'limit' + side = 'sell' + break + } + } + + /* Basic Logging */ + logInfo("createOrder -> symbol = " + symbol); + logInfo("createOrder -> side = " + side); + logInfo("createOrder -> type = " + type); + logInfo("createOrder -> amount = " + amount); + logInfo("createOrder -> price = " + price); + + /* Basic Validations */ + if (side !== "buy" && side !== "sell") { + logError("createOrder -> side must be either 'buy' or 'sell'."); + return + } + if (exchange.has['createOrder'] === false) { + logError("createOrder -> Exchange does not support createOrder command."); + return + } + + try { + let order = await (exchange.createOrder(symbol, type, side, amount, price)) + + logInfo("createOrder -> Response from the Exchange: " + JSON.stringify(order)); + return order.id + } catch (err) { + tradingSystem.errors.push([tradingSystemOrder.id, "createOrder -> Error = " + err.message]) + logError("createOrder -> Error = " + err.message); + } + } + + async function cancelOrder(tradingSystemOrder, tradingEngineOrder) { + + let orderId = tradingEngineOrder.exchangeId.value + + /* Basic Logging */ + logInfo("cancelOrder -> Entering function. orderId = " + orderId); + + const symbol = bot.market.baseAsset + '/' + bot.market.quotedAsset + + /* Basic Validations */ + if (exchange.has['fetchOrder'] === false) { + logError("cancelOrder -> Exchange does not support fetchOrder command."); + return + } + + try { + let order = await exchange.cancelOrder(orderId, symbol) + + logInfo("cancelOrder -> Response from the Exchange: " + JSON.stringify(order)); + return true + } catch (err) { + tradingSystem.errors.push([tradingSystemOrder.id, "cancelOrder -> Error = " + err.message]) + logError("cancelOrder -> Error = " + err.message); + } + } + + function logInfo(message) { + logger.write(MODULE_NAME, '[INFO] ' + message) + } + + function logError(message) { + logger.write(MODULE_NAME, '[ERROR] ' + message) + } +}; diff --git a/TaskServer/LowFrequencyTrading/Snapshots.js b/TaskServer/LowFrequencyTrading/Snapshots.js new file mode 100644 index 000000000..6f1b02c5a --- /dev/null +++ b/TaskServer/LowFrequencyTrading/Snapshots.js @@ -0,0 +1,342 @@ +exports.newSnapshots = function newSnapshots(bot, logger) { + /* + This module encapsulates the snapshots functionality. + */ + const MODULE_NAME = 'Snapshots' + + let thisObject = { + updateChart: updateChart, + strategyEntry: strategyEntry, + strategyExit: strategyExit, + positionEntry: positionEntry, + positionExit: positionExit, + addCodeToSnapshot: addCodeToSnapshot, + initialize: initialize, + finalize: finalize + } + + let tradingEngine + let tradingSystem + let sessionParameters + + const SNAPSHOTS_FOLDER_NAME = 'Snapshots' + + /* Snapshots of Strategies and Positions */ + let snapshots = { + headers: [], + strategies: [], + positions: [] + } + + let positionKeys = new Map() // This is to prevent adding the same indicator / variable to the output collection. + let strategyKeys = new Map() + let createHeaders = true // This is going to be true only once + let createCloseHeaders = true // This is going to be true only once + let closeValues + let strategyValues + let addToStrategyValues + let positionValues + let addToPositionValues + + let chart + + return thisObject + + function initialize() { + tradingEngine = bot.simulationState.tradingEngine + tradingSystem = bot.simulationState.tradingSystem + sessionParameters = bot.SESSION.parameters + } + + function finalize() { + writeSnapshotFiles() + tradingEngine = undefined + tradingSystem = undefined + sessionParameters = undefined + + positionKeys = undefined + strategyKeys = undefined + + chart = undefined + } + + function updateChart(pChart) { + chart = pChart + } + + function strategyEntry() { + /* + We will record here a snapshot of all values used in conditions and formulas within the Trading System. + If the strategy exists with a trade, this information will be added to the snapshots file. + */ + + strategyKeys = new Map() + strategyValues = [] + addToStrategyValues = true + + evalNode(tradingSystem) + + /* Turn off this */ + createHeaders = false + addToStrategyValues = false + } + + function strategyExit() { + getResults(tradingEngine.current.strategy.begin.value, tradingEngine.current.strategy.end.value) + let valuesArray = closeValues.concat(strategyValues) + snapshots.strategies.push(valuesArray) + } + + function positionEntry() { + + positionKeys = new Map() + positionValues = [] + addToPositionValues = true + + evalNode(tradingSystem) + + /* Turn off this */ + createHeaders = false + addToPositionValues = false + } + + function positionExit() { + getResults(tradingEngine.current.position.begin.value, tradingEngine.current.position.end.value) + let valuesArray = closeValues.concat(positionValues) + snapshots.positions.push(valuesArray) + } + + function evalNode(node) { + if (node === undefined) { return } + + /* Here we check if there is a codition to be evaluated */ + if (node.type === 'Condition') { + /* We will eval this condition */ + evalCondition(node) + } + + /* Here we check if there is a formula to be evaluated */ + if (node.type === 'Formula') { + if (node.code !== undefined) { + /* We will eval this formula */ + evalFormula(node) + } + } + + /* Now we go down through all this node children */ + let nodeDefinition = global.APP_SCHEMA_MAP.get(node.type) + if (nodeDefinition === undefined) { return } + + if (nodeDefinition.properties !== undefined) { + let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. + for (let i = 0; i < nodeDefinition.properties.length; i++) { + let property = nodeDefinition.properties[i] + + switch (property.type) { + case 'node': { + if (property.name !== previousPropertyName) { + if (node[property.name] !== undefined) { + evalNode(node[property.name]) + } + previousPropertyName = property.name + } + break + } + case 'array': { + if (node[property.name] !== undefined) { + let nodePropertyArray = node[property.name] + for (let m = 0; m < nodePropertyArray.length; m++) { + evalNode(nodePropertyArray[m]) + } + } + break + } + } + } + } + } + + function evalCondition(node) { + + /* + The code can be at the condition node if it was done with the Conditions Editor, or it can also be + at a Javascript Code node. If there is a Javascript object we will give it preference and take the code + from there. Otherwise we will take the code from the Condition node. + */ + + let nodeWithCode = node + if (node.javascriptCode !== undefined) { + if (node.javascriptCode.code !== undefined) { + nodeWithCode = node.javascriptCode + } + } + addCodeToSnapshot(nodeWithCode) + } + + function evalFormula(node) { + let nodeWithCode = node + addCodeToSnapshot(nodeWithCode) + } + + function addCodeToSnapshot(nodeWithCode) { + if (nodeWithCode === undefined) { return } + if (nodeWithCode.code === undefined) { return } + + try { + let instructionsArray = nodeWithCode.code.split(' ') + for (let i = 0; i < instructionsArray.length; i++) { + let instruction = instructionsArray[i] + instruction = instruction.replace('(', '') + instruction = instruction.replace(')', '') + instruction = instruction.replace(//g, '') + instruction = instruction.replace(/<=/g, '') + instruction = instruction.replace(/>=/g, '') + instruction = instruction.replace(/!=/g, '') + instruction = instruction.replace(/!==/g, '') + instruction = instruction.replace(/==/g, '') + instruction = instruction.replace(/===/g, '') + instruction = instruction.replace(/{/g, '') + instruction = instruction.replace(/}/g, '') + if (instruction.indexOf('chart') >= 0) { + let parts = instruction.split('.') + let timeFrame = parts[1] + let product = parts[2] + let property + checkPrevious(3) + function checkPrevious(index) { + property = parts[index] + if (property === 'previous') { + product = product + '.previous' + checkPrevious(index + 1) + } + } + + // Example: chart.at01hs.popularSMA.sma200 - chart.at01hs.popularSMA.sma100 < 10 + if (timeFrame !== 'atAnyTimeFrame') { + timeFrame = timeFrame.substring(2, 4) + '-' + timeFrame.substring(4, 7) + } + let key = timeFrame + '-' + product + '-' + property + let existingKey + + if (addToStrategyValues === true) { + addValues(strategyKeys, strategyValues) + } + + if (addToPositionValues === true) { + addValues(positionKeys, positionValues) + } + + function addValues(keys, values) { + existingKey = keys.get(key) + + if (existingKey === undefined) { // means that at the current loop this property of this product was not used before. + keys.set(key, key) + if (createHeaders === true) { + snapshots.headers.push(key) + } + + try { + let value = eval(instruction) + values.push(value) + } catch (err) { + tradingSystem.errors.push([nodeWithCode.id, 'Instruction ' + instruction + ' evalueates with error ' + err.message]) + values.push(0) + } + } + } + } + } + } catch (err) { + tradingSystem.errors.push([nodeWithCode.id, err.message]) + logger.write(MODULE_NAME, '[ERROR] runSimulation -> addCodeToSnapshot -> nodeWithCode.code = ' + nodeWithCode.code) + logger.write(MODULE_NAME, '[ERROR] runSimulation -> addCodeToSnapshot -> err = ' + err.stack) + } + } + + function getResults(openDatetime, closeDatetime) { + + let closeHeaders = ['Trade Number', 'Open Datetime', 'Close Datetime', 'Strategy Name', 'Trigger On Situation', 'Take Position Situation', 'Result In Base Asset', 'Result In Quoted Asset', 'ROI in Base Asset', 'ROI in Quoted Asset', 'Exit Type'] + closeValues = [ + tradingEngine.current.episode.episodeCounters.positions.value, // Position Number + (new Date(openDatetime)).toISOString(), // Open Datetime + (new Date(closeDatetime)).toISOString(), // Open Datetime + tradingEngine.current.strategy.strategyName.value, // Strategy Name + tradingEngine.current.strategy.situationName.value, // Trigger On Situation + tradingEngine.current.position.situationName.value, // Take Position Situation + tradingEngine.current.position.positionBaseAsset.hitFail.value, // Result in Base Asset + tradingEngine.current.position.positionQuotedAsset.hitFail.value, // Result in Base Asset + tradingEngine.current.position.positionBaseAsset.ROI.value, // ROI in Base Asseet + tradingEngine.current.position.positionQuotedAsset.ROI.value, // ROI in Quoted Asset + tradingEngine.current.position.exitType.value // Exit Type + ] + + if (createCloseHeaders === true) { + snapshots.headers = closeHeaders.concat(JSON.parse(JSON.stringify(snapshots.headers))) + createCloseHeaders = false + } + } + + function writeSnapshotFiles() { + + if (sessionParameters.snapshots !== undefined) { + if (sessionParameters.snapshots.config.strategy === true) { + writeSnapshotFile(snapshots.strategies, 'Strategies') + } + } + + if (sessionParameters.snapshots !== undefined) { + if (sessionParameters.snapshots.config.strategy === true) { + writeSnapshotFile(snapshots.positions, 'Positions') + } + } + } + + function writeSnapshotFile(snapshotArray, pFileName) { + try { + const FILE_STORAGE = require('../FileStorage.js'); + let fileStorage = FILE_STORAGE.newFileStorage(logger); + + let fileContent = ""; + let separator = "\r\n"; + + parseRecord(snapshots.headers) + + for (let i = 0; i < snapshotArray.length; i++) { + let record = snapshotArray[i]; + parseRecord(record) + } + + function parseRecord(record) { + for (let j = 0; j < record.length; j++) { + let property = record[j] + + fileContent = fileContent + '' + property + if (j !== record.length - 1) { + fileContent = fileContent + "," + } + } + fileContent = fileContent + separator + } + + fileContent = "" + fileContent + ""; + + let fileName = pFileName + '.csv'; + let filePath = bot.filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + SNAPSHOTS_FOLDER_NAME; + filePath += '/' + fileName + + fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); + + function onFileCreated(err) { + if (err.result !== global.DEFAULT_OK_RESPONSE.result) { + logger.write(MODULE_NAME, "[ERROR] writeSnapshotFile -> onFileCreated -> err = " + err.stack); + logger.write(MODULE_NAME, "[ERROR] writeSnapshotFile -> onFileCreated -> filePath = " + filePath); + logger.write(MODULE_NAME, "[ERROR] writeSnapshotFile -> onFileCreated -> market = " + market.baseAsset + "_" + market.quotedAsset); + } + } + } + catch (err) { + logger.write(MODULE_NAME, "[ERROR] writeSnapshotFile -> err = " + err.stack); + } + } +} \ No newline at end of file diff --git a/TaskServer/LowFrequencyTrading/TradingEngine.js b/TaskServer/LowFrequencyTrading/TradingEngine.js new file mode 100644 index 000000000..b9dc6f889 --- /dev/null +++ b/TaskServer/LowFrequencyTrading/TradingEngine.js @@ -0,0 +1,216 @@ +exports.newTradingEngine = function newTradingEngine(bot, logger) { + /* + We call the Trading Engine to the data structure that is needed in order to exevute the + trading protocol with the specific rules defined at the Trading System. + */ + const MODULE_NAME = 'Trading Engine' + let thisObject = { + mantain: mantain, + reset: reset, + getNodeById: getNodeById, + cloneValues: cloneValues, + setCurrentCandle: setCurrentCandle, + setCurrentCycle: setCurrentCycle, + initializeNode: initializeNode, + initialize: initialize, + finalize: finalize + } + + let tradingEngine + let sessionParameters + let nodesMap = new Map() + + return thisObject + + function initialize() { + + tradingEngine = bot.simulationState.tradingEngine + sessionParameters = bot.SESSION.parameters + + initializeNodeMap(tradingEngine) + + if (bot.FIRST_EXECUTION === true) { + /* + Here we will go through all the nodes in the Trading Engine hiriarchy and + apply the initial value to the value property when needed + */ + initializeNode(tradingEngine) + } + } + + function finalize() { + tradingEngine = undefined + sessionParameters = undefined + nodesMap = undefined + } + + function mantain() { + } + + function reset() { + + } + + function getNodeById(NodeId) { + return nodesMap.get(NodeId) + } + + function setCurrentCandle(candle) { + tradingEngine.current.episode.candle.begin.value = candle.begin + tradingEngine.current.episode.candle.end.value = candle.end + tradingEngine.current.episode.candle.open.value = candle.open + tradingEngine.current.episode.candle.close.value = candle.close + tradingEngine.current.episode.candle.min.value = candle.min + tradingEngine.current.episode.candle.max.value = candle.max + } + + function setCurrentCycle(cycle) { + tradingEngine.current.episode.cycle.value = cycle + switch (cycle) { + case 'First': { + tradingEngine.current.episode.cycle.begin.value = + tradingEngine.current.episode.candle.begin.value + + sessionParameters.timeFrame.config.value + tradingEngine.current.episode.cycle.end.value = + tradingEngine.current.episode.candle.begin.value + + sessionParameters.timeFrame.config.value + + sessionParameters.timeFrame.config.value / 2 - 1 + break + } + case 'Second': { + tradingEngine.current.episode.cycle.begin.value = + tradingEngine.current.episode.candle.begin.value + + sessionParameters.timeFrame.config.value + + sessionParameters.timeFrame.config.value / 2 + tradingEngine.current.episode.cycle.end.value = + tradingEngine.current.episode.candle.begin.value + + sessionParameters.timeFrame.config.value + + sessionParameters.timeFrame.config.value * 4 / 4 - 1 + break + } + } + } + + function cloneValues(originNode, destinationNode) { + if (originNode === undefined) { return } + if (destinationNode === undefined) { return } + + /* Here copy the node value */ + destinationNode.value = originNode.value + + /* Now we go down through all the children of the origin node, assuming the destination node has the same children structure*/ + let nodeDefinition = global.APP_SCHEMA_MAP.get(originNode.type) + if (nodeDefinition === undefined) { return } + + if (nodeDefinition.properties !== undefined) { + let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. + for (let i = 0; i < nodeDefinition.properties.length; i++) { + let property = nodeDefinition.properties[i] + + switch (property.type) { + case 'node': { + if (property.name !== previousPropertyName) { + if (originNode[property.name] !== undefined && destinationNode[property.name] !== undefined) { + cloneValues(originNode[property.name], destinationNode[property.name]) + } + previousPropertyName = property.name + } + break + } + case 'array': { + if (originNode[property.name] !== undefined && destinationNode[property.name] !== undefined) { + let originNodePropertyArray = originNode[property.name] + let destinationNodePropertyArray = destinationNode[property.name] + for (let m = 0; m < originNodePropertyArray.length; m++) { + cloneValues(originNodePropertyArray[m], destinationNodePropertyArray[m]) + } + } + break + } + } + } + } + } + + function initializeNodeMap(node) { + if (node === undefined) { return } + /* Add to Node Map */ + nodesMap.set(node.id, node) + + /* Now we go down through all this node children */ + let nodeDefinition = global.APP_SCHEMA_MAP.get(node.type) + if (nodeDefinition === undefined) { return } + + if (nodeDefinition.properties !== undefined) { + let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. + for (let i = 0; i < nodeDefinition.properties.length; i++) { + let property = nodeDefinition.properties[i] + + switch (property.type) { + case 'node': { + if (property.name !== previousPropertyName) { + if (node[property.name] !== undefined) { + initializeNodeMap(node[property.name]) + } + previousPropertyName = property.name + } + break + } + case 'array': { + if (node[property.name] !== undefined) { + let nodePropertyArray = node[property.name] + for (let m = 0; m < nodePropertyArray.length; m++) { + initializeNodeMap(nodePropertyArray[m]) + } + } + break + } + } + } + } + } + + function initializeNode(node) { + if (node === undefined) { return } + + /* Here we initialize the node value */ + if (node.config !== undefined) { + if (node.config.initialValue !== undefined) { + node.value = node.config.initialValue + } + } + + /* Now we go down through all this node children */ + let nodeDefinition = global.APP_SCHEMA_MAP.get(node.type) + if (nodeDefinition === undefined) { return } + + if (nodeDefinition.properties !== undefined) { + let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. + for (let i = 0; i < nodeDefinition.properties.length; i++) { + let property = nodeDefinition.properties[i] + + switch (property.type) { + case 'node': { + if (property.name !== previousPropertyName) { + if (node[property.name] !== undefined) { + initializeNode(node[property.name]) + } + previousPropertyName = property.name + } + break + } + case 'array': { + if (node[property.name] !== undefined) { + let nodePropertyArray = node[property.name] + for (let m = 0; m < nodePropertyArray.length; m++) { + initializeNode(nodePropertyArray[m]) + } + } + break + } + } + } + } + } +} + diff --git a/TaskServer/LowFrequencyTrading/TradingEpisode.js b/TaskServer/LowFrequencyTrading/TradingEpisode.js new file mode 100644 index 000000000..76bb7a8d3 --- /dev/null +++ b/TaskServer/LowFrequencyTrading/TradingEpisode.js @@ -0,0 +1,317 @@ +exports.newTradingEpisode = function newTradingEpisode(bot, logger, tradingEngineModule) { + /* + This module packages all functions related to Episodes. + */ + const MODULE_NAME = 'Trading Episode' + let thisObject = { + mantain: mantain, + reset: reset, + openEpisode: openEpisode, + updateExitType: updateExitType, + closeEpisode: closeEpisode, + cycleBasedStatistics: cycleBasedStatistics, + initialize: initialize, + finalize: finalize + } + + let tradingEngine + let tradingSystem + let sessionParameters + + return thisObject + + function initialize() { + tradingSystem = bot.simulationState.tradingSystem + tradingEngine = bot.simulationState.tradingEngine + sessionParameters = bot.SESSION.parameters + } + + function finalize() { + tradingEngine = undefined + tradingSystem = undefined + sessionParameters = undefined + } + + function mantain() { + updateCounters() + updateStatistics() + updateEnds() + updateDistanceToEventsCounters() + } + + function reset() { + resetTradingEngineDataStructure() + } + + function openEpisode() { + /* + This function is called each time the simulation starts. That does not mean the Episode + must be opened there, since it might happen that it is looping at the end of the market + or the task / session was restarted. + */ + if (bot.FIRST_EXECUTION === true) { + /* Getting the begin Balance from the session configuration */ + tradingEngine.current.episode.episodeBaseAsset.beginBalance.value = sessionParameters.sessionBaseAsset.config.initialBalance + tradingEngine.current.episode.episodeQuotedAsset.beginBalance.value = sessionParameters.sessionQuotedAsset.config.initialBalance + + /* The current balance is also the begin balance, that is how this starts. */ + tradingEngine.current.episode.episodeBaseAsset.balance.value = sessionParameters.sessionBaseAsset.config.initialBalance + tradingEngine.current.episode.episodeQuotedAsset.balance.value = sessionParameters.sessionQuotedAsset.config.initialBalance + + /* Recording the opening at the Trading Engine Data Structure */ + tradingEngine.current.episode.status.value = 'Open' + tradingEngine.current.episode.serialNumber.value = 1 + tradingEngine.current.episode.identifier.value = global.UNIQUE_ID() + tradingEngine.current.episode.begin.value = tradingEngine.current.episode.candle.begin.value + tradingEngine.current.episode.beginRate.value = tradingEngine.current.episode.candle.close.value + } + } + + function updateExitType(exitType) { + tradingEngine.current.episode.exitType.value = exitType + } + + function closeEpisode() { + tradingEngine.current.episode.status.value = 'Closed' + tradingEngine.current.episode.end.value = tradingEngine.current.episode.candle.end.value + tradingEngine.current.episode.endRate.value = tradingEngine.current.episode.candle.close.value + tradingEngine.current.episode.episodeBaseAsset.endBalance.value = tradingEngine.current.episode.episodeBaseAsset.balance.value + tradingEngine.current.episode.episodeQuotedAsset.endBalance.value = tradingEngine.current.episode.episodeQuotedAsset.balance.value + } + + function resetEpisode() { + tradingEngineModule.initializeNode(tradingEngine.current.episode) + } + + function updateEnds() { + if (tradingEngine.current.episode.status.value === 'Open') { + tradingEngine.current.episode.end.value = tradingEngine.current.episode.candle.end.value + tradingEngine.current.episode.endRate.value = tradingEngine.current.episode.candle.close.value + tradingEngine.current.episode.episodeBaseAsset.endBalance.value = tradingEngine.current.episode.episodeBaseAsset.balance.value + tradingEngine.current.episode.episodeQuotedAsset.endBalance.value = tradingEngine.current.episode.episodeQuotedAsset.balance.value + } + } + + function resetTradingEngineDataStructure() { + if (tradingEngine.current.episode.status.value === 'Closed') { + resetEpisode() + } + } + + function updateCounters() { + if (tradingEngine.current.episode.status.value === 'Open') { + tradingEngine.current.episode.episodeCounters.periods.value++ + } + } + + function updateStatistics() { + + /* Daus Calculation */ + tradingEngine.current.episode.episodeStatistics.days.value = + tradingEngine.current.episode.episodeCounters.periods.value * + sessionParameters.timeFrame.config.value / + global.ONE_DAY_IN_MILISECONDS + } + + function cycleBasedStatistics() { + + calculateAssetsStatistics() + calculateEpisodeStatistics() + + function calculateAssetsStatistics() { + /* Updating Profit Loss */ + tradingEngine.current.episode.episodeBaseAsset.profitLoss.value = + tradingEngine.current.episode.episodeBaseAsset.balance.value - + sessionParameters.sessionBaseAsset.config.initialBalance + + tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value = + tradingEngine.current.episode.episodeQuotedAsset.balance.value - + sessionParameters.sessionQuotedAsset.config.initialBalance + + tradingEngine.current.episode.episodeBaseAsset.profitLoss.value = global.PRECISE(tradingEngine.current.episode.episodeBaseAsset.profitLoss.value, 10) + tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value = global.PRECISE(tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value, 10) + + /* + Updating ROI + + https://www.investopedia.com/articles/basics/10/guide-to-calculating-roi.asp + */ + tradingEngine.current.episode.episodeBaseAsset.ROI.value = + tradingEngine.current.episode.episodeBaseAsset.profitLoss.value / + tradingEngine.current.episode.episodeBaseAsset.beginBalance.value * 100 + + tradingEngine.current.episode.episodeQuotedAsset.ROI.value = + tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value / + tradingEngine.current.episode.episodeQuotedAsset.beginBalance.value * 100 + + tradingEngine.current.episode.episodeBaseAsset.ROI.value = global.PRECISE(tradingEngine.current.episode.episodeBaseAsset.ROI.value, 10) + tradingEngine.current.episode.episodeQuotedAsset.ROI.value = global.PRECISE(tradingEngine.current.episode.episodeQuotedAsset.ROI.value, 10) + + /* Updating Hit Ratio */ + if (tradingEngine.current.episode.episodeCounters.positions.value > 0) { + tradingEngine.current.episode.episodeBaseAsset.hitRatio.value = + tradingEngine.current.episode.episodeBaseAsset.hits.value / + tradingEngine.current.episode.episodeCounters.positions.value + + tradingEngine.current.episode.episodeQuotedAsset.hitRatio.value = + tradingEngine.current.episode.episodeQuotedAsset.hits.value / + tradingEngine.current.episode.episodeCounters.positions.value + + tradingEngine.current.episode.episodeBaseAsset.hitRatio.value = global.PRECISE(tradingEngine.current.episode.episodeBaseAsset.hitRatio.value, 10) + tradingEngine.current.episode.episodeQuotedAsset.hitRatio.value = global.PRECISE(tradingEngine.current.episode.episodeQuotedAsset.hitRatio.value, 10) + } + + /* + Updating Annualized Rate Of Return + + https://www.investopedia.com/terms/a/annualized-rate.asp + */ + tradingEngine.current.episode.episodeBaseAsset.annualizedRateOfReturn.value = + Math.pow( + ( + tradingEngine.current.episode.episodeBaseAsset.beginBalance.value + + tradingEngine.current.episode.episodeBaseAsset.profitLoss.value + ) / tradingEngine.current.episode.episodeBaseAsset.beginBalance.value + , + (365 / tradingEngine.current.episode.episodeStatistics.days.value) + ) - 1 + + tradingEngine.current.episode.episodeQuotedAsset.annualizedRateOfReturn.value = + Math.pow( + ( + tradingEngine.current.episode.episodeQuotedAsset.beginBalance.value + + tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value + ) / tradingEngine.current.episode.episodeQuotedAsset.beginBalance.value + , + (365 / tradingEngine.current.episode.episodeStatistics.days.value) + ) - 1 + + tradingEngine.current.episode.episodeBaseAsset.annualizedRateOfReturn.value = global.PRECISE(tradingEngine.current.episode.episodeBaseAsset.annualizedRateOfReturn.value, 10) + tradingEngine.current.episode.episodeQuotedAsset.annualizedRateOfReturn.value = global.PRECISE(tradingEngine.current.episode.episodeQuotedAsset.annualizedRateOfReturn.value, 10) + + /* Updating Hit or Fail */ + if (tradingEngine.current.episode.episodeBaseAsset.profitLoss.value > 0) { + tradingEngine.current.episode.episodeBaseAsset.hitFail.value = 'Hit' + } else { + tradingEngine.current.episode.episodeBaseAsset.hitFail.value = 'Fail' + } + if (tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value > 0) { + tradingEngine.current.episode.episodeQuotedAsset.hitFail.value = 'Hit' + } else { + tradingEngine.current.episode.episodeQuotedAsset.hitFail.value = 'Fail' + } + } + + function calculateEpisodeStatistics() { + /* Updating Profit Loss */ + tradingEngine.current.episode.episodeStatistics.profitLoss.value = + tradingEngine.current.episode.episodeBaseAsset.profitLoss.value * tradingEngine.current.episode.candle.close.value + + tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value + + tradingEngine.current.episode.episodeStatistics.profitLoss.value = global.PRECISE(tradingEngine.current.episode.episodeStatistics.profitLoss.value, 10) + + /* + Updating ROI + + https://www.investopedia.com/articles/basics/10/guide-to-calculating-roi.asp + */ + tradingEngine.current.episode.episodeStatistics.ROI.value = + ( + tradingEngine.current.episode.episodeBaseAsset.profitLoss.value * tradingEngine.current.episode.endRate.value + + tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value + ) / ( + tradingEngine.current.episode.episodeBaseAsset.beginBalance.value * tradingEngine.current.episode.beginRate.value + + tradingEngine.current.episode.episodeQuotedAsset.beginBalance.value + ) * 100 + + tradingEngine.current.episode.episodeStatistics.ROI.value = global.PRECISE(tradingEngine.current.episode.episodeStatistics.ROI.value, 10) + + /* + Updating Annualized Rate Of Return + + https://www.investopedia.com/terms/a/annualized-rate.asp + */ + tradingEngine.current.episode.episodeStatistics.annualizedRateOfReturn.value = + Math.pow( + ( + tradingEngine.current.episode.episodeBaseAsset.beginBalance.value * tradingEngine.current.episode.beginRate.value + + tradingEngine.current.episode.episodeQuotedAsset.beginBalance.value + + tradingEngine.current.episode.episodeBaseAsset.profitLoss.value + + tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value + ) / + ( + tradingEngine.current.episode.episodeBaseAsset.beginBalance.value * tradingEngine.current.episode.beginRate.value + + tradingEngine.current.episode.episodeQuotedAsset.beginBalance.value + ) + , + (365 / tradingEngine.current.episode.episodeStatistics.days.value) + ) - 1 + + tradingEngine.current.episode.episodeStatistics.annualizedRateOfReturn.value = global.PRECISE(tradingEngine.current.episode.episodeStatistics.annualizedRateOfReturn.value, 10) + + /* Updating Hit or Fail */ + if (tradingEngine.current.episode.episodeStatistics.profitLoss.value > 0) { + tradingEngine.current.episode.episodeStatistics.hitFail.value = 'Hit' + } else { + tradingEngine.current.episode.episodeStatistics.hitFail.value = 'Fail' + } + } + } + + function updateDistanceToEventsCounters() { + /* Keeping Distance Counters Up-to-date while avoinding counting before the first event happens. */ + if ( + tradingEngine.current.episode.distanceToEvent.triggerOn.value > 0 + ) { + tradingEngine.current.episode.distanceToEvent.triggerOn.value++ + } + + if ( + tradingEngine.current.episode.distanceToEvent.triggerOff.value > 0 + ) { + tradingEngine.current.episode.distanceToEvent.triggerOff.value++ + } + + if ( + tradingEngine.current.episode.distanceToEvent.takePosition.value > 0 + ) { + tradingEngine.current.episode.distanceToEvent.takePosition.value++ + } + + if ( + tradingEngine.current.episode.distanceToEvent.closePosition.value > 0 + ) { + tradingEngine.current.episode.distanceToEvent.closePosition.value++ + } + + if ( + tradingEngine.current.episode.distanceToEvent.nextPhase.value > 0 + ) { + tradingEngine.current.episode.distanceToEvent.nextPhase.value++ + } + + if ( + tradingEngine.current.episode.distanceToEvent.moveToPhase.value > 0 + ) { + tradingEngine.current.episode.distanceToEvent.moveToPhase.value++ + } + + if ( + tradingEngine.current.episode.distanceToEvent.createOrder.value > 0 + ) { + tradingEngine.current.episode.distanceToEvent.createOrder.value++ + } + + if ( + tradingEngine.current.episode.distanceToEvent.cancelOrder.value > 0 + ) { + tradingEngine.current.episode.distanceToEvent.cancelOrder.value++ + } + + if ( + tradingEngine.current.episode.distanceToEvent.closeOrder.value > 0 + ) { + tradingEngine.current.episode.distanceToEvent.closeOrder.value++ + } + } +} \ No newline at end of file diff --git a/TaskServer/LowFrequencyTrading/TradingExecution.js b/TaskServer/LowFrequencyTrading/TradingExecution.js new file mode 100644 index 000000000..7e6619ec3 --- /dev/null +++ b/TaskServer/LowFrequencyTrading/TradingExecution.js @@ -0,0 +1,103 @@ +exports.newTradingExecution = function newTradingExecution(bot, logger, tradingEngineModule) { + /* + The Trading Execution modules manages the execution nodes and execution algoritms. + */ + const MODULE_NAME = 'Trading Execution' + + let thisObject = { + mantain: mantain, + reset: reset, + runExecution: runExecution, + initialize: initialize, + finalize: finalize + } + + let tradingEngine + let tradingSystem + let sessionParameters + + const TRADING_ORDERS_MODULE = require('./TradingOrders.js') + let tradingOrdersModule = TRADING_ORDERS_MODULE.newTradingOrders(bot, logger, tradingEngineModule) + + return thisObject + + function initialize() { + tradingSystem = bot.simulationState.tradingSystem + tradingEngine = bot.simulationState.tradingEngine + sessionParameters = bot.SESSION.parameters + + tradingOrdersModule.initialize() + } + + function finalize() { + tradingSystem = undefined + tradingEngine = undefined + sessionParameters = undefined + + tradingOrdersModule.finalize() + tradingOrdersModule = undefined + } + + function mantain() { + tradingOrdersModule.mantain() + } + + function reset() { + tradingOrdersModule.reset() + } + + async function runExecution( + executionNode, + tradingEngineStage + ) { + try { + /* Trading Engine Stage Validations */ + if (tradingEngineStage.stageBaseAsset === undefined) { badDefinitionUnhandledException(undefined, 'stageBaseAsset === undefined', tradingEngineStage) } + if (tradingEngineStage.stageBaseAsset.targetSize === undefined) { badDefinitionUnhandledException(undefined, 'stageBaseAsset.targetSize === undefined', tradingEngineStage) } + if (tradingEngineStage.stageBaseAsset.sizePlaced === undefined) { badDefinitionUnhandledException(undefined, 'stageBaseAsset.sizePlaced === undefined', tradingEngineStage) } + if (tradingEngineStage.stageBaseAsset.sizeFilled === undefined) { badDefinitionUnhandledException(undefined, 'stageBaseAsset.sizeFilled === undefined', tradingEngineStage) } + if (tradingEngineStage.stageBaseAsset.feesPaid === undefined) { badDefinitionUnhandledException(undefined, 'stageBaseAsset.feesPaid === undefined', tradingEngineStage) } + if (tradingEngineStage.stageQuotedAsset === undefined) { badDefinitionUnhandledException(undefined, 'stageQuotedAsset === undefined', tradingEngineStage) } + if (tradingEngineStage.stageQuotedAsset.targetSize === undefined) { badDefinitionUnhandledException(undefined, 'stageQuotedAsset.targetSize === undefined', tradingEngineStage) } + if (tradingEngineStage.stageQuotedAsset.sizePlaced === undefined) { badDefinitionUnhandledException(undefined, 'stageQuotedAsset.sizePlaced === undefined', tradingEngineStage) } + if (tradingEngineStage.stageQuotedAsset.sizeFilled === undefined) { badDefinitionUnhandledException(undefined, 'stageQuotedAsset.sizeFilled === undefined', tradingEngineStage) } + if (tradingEngineStage.stageQuotedAsset.feesPaid === undefined) { badDefinitionUnhandledException(undefined, 'stageQuotedAsset.feesPaid === undefined', tradingEngineStage) } + + await checkExecutionAlgorithms(executionNode) + + async function checkExecutionAlgorithms(executionNode) { + for (let i = 0; i < executionNode.executionAlgorithms.length; i++) { + let executionAlgorithm = executionNode.executionAlgorithms[i] + await tradingOrdersModule.checkOrders(tradingEngineStage, executionAlgorithm.marketBuyOrders, executionAlgorithm, executionNode) + await tradingOrdersModule.checkOrders(tradingEngineStage, executionAlgorithm.marketSellOrders, executionAlgorithm, executionNode) + await tradingOrdersModule.checkOrders(tradingEngineStage, executionAlgorithm.limitBuyOrders, executionAlgorithm, executionNode) + await tradingOrdersModule.checkOrders(tradingEngineStage, executionAlgorithm.limitSellOrders, executionAlgorithm, executionNode) + } + } + + } catch (err) { + tradingSystem.errors.push([executionNode.id, err.message]) + + if (typeof err === 'string' || err instanceof String) { + logger.write(MODULE_NAME, '[ERROR] runExecution -> err = ' + err) + } + if (err.stack !== undefined) { + logger.write(MODULE_NAME, '[ERROR] runExecution -> err = ' + err.stack) + } + } + } + + function badDefinitionUnhandledException(err, message, node) { + tradingSystem.errors.push([node.id, message]) + + logger.write(MODULE_NAME, "[ERROR] -> " + message); + logger.write(MODULE_NAME, "[ERROR] -> node.name = " + node.name); + logger.write(MODULE_NAME, "[ERROR] -> node.type = " + node.type); + logger.write(MODULE_NAME, "[ERROR] -> node.config = " + JSON.stringify(node.config)); + if (err !== undefined) { + logger.write(MODULE_NAME, "[ERROR] -> err.stack = " + err.stack); + } + throw 'Please fix the problem and try again.' + } +} + diff --git a/TaskServer/LowFrequencyTrading/TradingOrders.js b/TaskServer/LowFrequencyTrading/TradingOrders.js new file mode 100644 index 000000000..76d1cabe0 --- /dev/null +++ b/TaskServer/LowFrequencyTrading/TradingOrders.js @@ -0,0 +1,1292 @@ +exports.newTradingOrders = function newTradingOrders(bot, logger, tradingEngineModule) { + /* + The Trading Orders modules manages the execution of orders against the exchanges. + */ + const MODULE_NAME = 'Trading Orders' + + let thisObject = { + mantain: mantain, + reset: reset, + checkOrders: checkOrders, + initialize: initialize, + finalize: finalize + } + + let tradingEngine + let tradingSystem + let sessionParameters + + const EXCHANGE_API_MODULE = require('./ExchangeAPI.js') + let exchangeAPIModule = EXCHANGE_API_MODULE.newExchangeAPI(bot, logger) + + const ANNOUNCEMENTS_MODULE = require('./Announcements.js') + let announcementsModule = ANNOUNCEMENTS_MODULE.newAnnouncements(bot, logger) + + return thisObject + + function initialize() { + tradingSystem = bot.simulationState.tradingSystem + tradingEngine = bot.simulationState.tradingEngine + sessionParameters = bot.SESSION.parameters + + exchangeAPIModule.initialize() + announcementsModule.initialize() + } + + function finalize() { + tradingSystem = undefined + tradingEngine = undefined + sessionParameters = undefined + + exchangeAPIModule.finalize() + exchangeAPIModule = undefined + + announcementsModule.finalize() + announcementsModule = undefined + } + + function mantain() { + mantainReset(true, false) + } + + function reset() { + mantainReset(false, true) + } + + function mantainReset(mantain, reset) { + + if (tradingEngine.current.strategy.index.value === tradingEngine.current.strategy.index.config.initialValue) { return } + + let stageNode + let executionNode + + stageNode = tradingSystem.tradingStrategies[tradingEngine.current.strategy.index.value].openStage + executionNode = stageNode.openExecution + processExecutionNode(executionNode, tradingEngine.current.strategyOpenStage.status.value) + + stageNode = tradingSystem.tradingStrategies[tradingEngine.current.strategy.index.value].closeStage + executionNode = stageNode.closeExecution + processExecutionNode(executionNode, tradingEngine.current.strategyCloseStage.status.value) + + function processExecutionNode(executionNode, stageStatus) { + + preocessExecutionAlgorithms(executionNode) + + function preocessExecutionAlgorithms(executionNode) { + for (let i = 0; i < executionNode.executionAlgorithms.length; i++) { + let executionAlgorithm = executionNode.executionAlgorithms[i] + processOrders(executionAlgorithm.marketBuyOrders) + processOrders(executionAlgorithm.marketSellOrders) + processOrders(executionAlgorithm.limitBuyOrders) + processOrders(executionAlgorithm.limitSellOrders) + } + } + + function processOrders(orders) { + for (let i = 0; i < orders.length; i++) { + let tradingSystemOrder = orders[i] + if (tradingSystemOrder.referenceParent === undefined) { + badDefinitionUnhandledException(undefined, 'tradingSystemOrder.referenceParent === undefined', tradingSystemOrder) + } + let tradingEngineOrder = tradingEngineModule.getNodeById(tradingSystemOrder.referenceParent.id) + + if (tradingEngineOrder.status === undefined) { + badDefinitionUnhandledException(undefined, 'tradingEngineOrder.status === undefined', tradingEngineOrder) + } + + if (mantain === true) { + updateCounters(tradingEngineOrder) + updateEnds(tradingEngineOrder) + updateStatistics(tradingEngineOrder) + } + if (reset === true) { + resetTradingEngineDataStructure(tradingEngineOrder, tradingSystemOrder, stageStatus) + } + } + } + } + } + + async function checkOrders(tradingEngineStage, orders, executionAlgorithm, executionNode) { + for (let i = 0; i < orders.length; i++) { + + let tradingSystemOrder = orders[i] + tradingSystemValidations(tradingSystemOrder) + let tradingEngineOrder = tradingEngineModule.getNodeById(tradingSystemOrder.referenceParent.id) + tradingEngineValidations(tradingEngineOrder) + + switch (tradingEngineOrder.status.value) { + case 'Not Open': { + { + /* During the First cycle we can not create new orders. That is reserved for the Second cycle. */ + if (tradingEngine.current.episode.cycle.value === 'First') { continue } + /* When the stage is closing we can not create new orders */ + if (tradingEngineStage.status.value === 'Closing') { continue } + /* + Check if we can create an order based on the config value for spawnMultipleOrders. + Trading System Orders that cannot spawn more than one Trading Engine Order needs to check if + at the Trading Engine Order the lock is Open or Closed. + */ + if (tradingSystemOrder.config.spawnMultipleOrders !== true) { + if (tradingEngineOrder.lock.value === 'Closed') { + tradingSystem.infos.push(['Order ' + tradingSystemOrder.name + ' skipped because lock was closed.']) + continue + } + } + /* Check if we need to Create this Order */ + let situationName = await checkOrderEvent(tradingSystemOrder.createOrderEvent, tradingSystemOrder, executionAlgorithm, executionNode) + if (situationName !== undefined) { + + /* Open a new order */ + await tryToOpenOrder(tradingEngineStage, executionAlgorithm, tradingSystemOrder, tradingEngineOrder, situationName) + } + } + break + } + case 'Open': { + /* During the Second cycle we can not cancel orders. That is reserved for the First cycle. */ + if (tradingEngine.current.episode.cycle.value === 'Second') { continue } + + /* Simulate Events that happens at the Exchange, if needed. */ + simulateExchangeEvents(tradingEngineStage, tradingSystemOrder, tradingEngineOrder) + + /* Check Events that happens at the Exchange, if needed. */ + let allGood = await checkExchangeEvents(tradingEngineStage, tradingSystemOrder, tradingEngineOrder) + + if (allGood !== true) { + /* + For some reason we could not check the order at the exchange, so we will not even check if we + need to cancel it, since we could end up with inconsisten information at the accounting level. + */ + if (tradingSystemOrder.cancelOrderEvent !== undefined) { + tradingSystem.warnings.push([tradingSystemOrder.cancelOrderEvent.id, 'Skipping Cancel Event Checking because cheking the order at the exchange failed.']) + } + return + } + + /* Check if we need to cancel the order */ + await checkCancelOrderEvent(tradingEngineStage, executionAlgorithm, executionNode, tradingEngineOrder, tradingSystemOrder) + /* + If by this time the order is closed, we need to clone it and get the close + to the Last node at the Trading Engine data structure. + */ + if (tradingEngineOrder.status.value === 'Closed') { + switch (tradingEngineOrder.type) { + case 'Market Order': { + tradingEngineModule.cloneValues(tradingEngineOrder, tradingEngine.last.marketOrders) + break + } + case 'Limit Order': { + tradingEngineModule.cloneValues(tradingEngineOrder, tradingEngine.last.limitOrders) + break + } + } + } + } + } + } + } + + async function checkCancelOrderEvent(tradingEngineStage, executionAlgorithm, executionNode, tradingEngineOrder, tradingSystemOrder) { + /* + In the previous steps, we might have discovered that the order was cancelled + at the exchange, or filled, so the order might still not be Open. + If the stage is closing or the order is not Open, we wont be cancelling orders + based on defined events. + */ + if (tradingEngineStage.status.value !== 'Closing' && tradingEngineOrder.status.value === 'Open') { + + /* Check if we need to Cancel this Order */ + let situationName = await checkOrderEvent(tradingSystemOrder.cancelOrderEvent, tradingSystemOrder, executionAlgorithm, executionNode) + if (situationName !== undefined) { + + /* Simulate Order Cancelation, if needed. */ + simulateCancelOrder(tradingEngineStage, tradingSystemOrder, tradingEngineOrder, 'Cancel Event') + + /* Cancel the order at the Exchange, if needed. */ + await exchangeCancelOrder(tradingEngineStage, tradingSystemOrder, tradingEngineOrder, 'Cancel Event') + + await updateEndsWithCycle(tradingEngineOrder) + } + } + } + + function tradingSystemValidations(tradingSystemOrder) { + /* Trading System Validations */ + if (tradingSystemOrder.config.percentageOfAlgorithmSize === undefined) { badDefinitionUnhandledException(undefined, 'tradingSystemOrder.config.percentageOfAlgorithmSize === undefined', tradingSystemOrder) } + if (tradingSystemOrder.referenceParent === undefined) { badDefinitionUnhandledException(undefined, 'tradingSystemOrder.referenceParent === undefined', tradingSystemOrder) } + } + + function tradingEngineValidations(tradingEngineOrder) { + /* Trading Engine Order Validations */ + if (tradingEngineOrder.serialNumber === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.serialNumber === undefined', tradingEngineOrder) } + if (tradingEngineOrder.identifier === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.identifier === undefined', tradingEngineOrder) } + if (tradingEngineOrder.exchangeId === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.exchangeId === undefined', tradingEngineOrder) } + if (tradingEngineOrder.begin === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.begin === undefined', tradingEngineOrder) } + if (tradingEngineOrder.end === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.end === undefined', tradingEngineOrder) } + if (tradingEngineOrder.rate === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.rate === undefined', tradingEngineOrder) } + if (tradingEngineOrder.status === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.status === undefined', tradingEngineOrder) } + if (tradingEngineOrder.algorithmName === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.algorithmName === undefined', tradingEngineOrder) } + if (tradingEngineOrder.orderCounters === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.orderCounters === undefined', tradingEngineOrder) } + if (tradingEngineOrder.orderCounters.periods === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.orderCounters.periods === undefined', tradingEngineOrder) } + if (tradingEngineOrder.orderStatistics.days === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.orderStatistics.days === undefined', tradingEngineOrder) } + if (tradingEngineOrder.orderStatistics.percentageFilled === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.orderStatistics.percentageFilled === undefined', tradingEngineOrder) } + if (tradingEngineOrder.orderStatistics.actualRate === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.orderStatistics.actualRate === undefined', tradingEngineOrder) } + + if (tradingEngineOrder.orderBaseAsset.size === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.orderBaseAsset.size === undefined', tradingEngineOrder) } + if (tradingEngineOrder.orderBaseAsset.sizeFilled === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.orderBaseAsset.sizeFilled === undefined', tradingEngineOrder) } + if (tradingEngineOrder.orderBaseAsset.feesPaid === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.orderBaseAsset.feesPaid === undefined', tradingEngineOrder) } + + if (tradingEngineOrder.orderQuotedAsset.size === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.orderQuotedAsset.size === undefined', tradingEngineOrder) } + if (tradingEngineOrder.orderQuotedAsset.sizeFilled === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.orderQuotedAsset.sizeFilled === undefined', tradingEngineOrder) } + if (tradingEngineOrder.orderQuotedAsset.feesPaid === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.orderQuotedAsset.feesPaid === undefined', tradingEngineOrder) } + } + + async function tryToOpenOrder(tradingEngineStage, executionAlgorithm, tradingSystemOrder, tradingEngineOrder, situationName) { + + await calculateOrderRate() + await calculateOrderSize() + + /* Check Size: We are not going to create Orders which size is equal or less to zero. */ + if (tradingEngineOrder.orderBaseAsset.size.value <= 0 || tradingEngineOrder.orderQuotedAsset.size.value <= 0) { + tradingSystem.warnings.push([tradingSystemOrder.id, 'Could not open this order because its size would be zero.']) + return + } + + /* Place Order at the Exchange, if needed. */ + let result = await createOrderAtExchange(tradingSystemOrder, tradingEngineOrder) + if (result !== true) { + tradingSystem.warnings.push([tradingSystemOrder.id, 'Could not open this order because something failed placing the order at the Exchange.']) + return + } + + /* Update Stage Placed Size */ + tradingEngineStage.stageBaseAsset.sizePlaced.value = tradingEngineStage.stageBaseAsset.sizePlaced.value + tradingEngineOrder.orderBaseAsset.size.value + tradingEngineStage.stageBaseAsset.sizePlaced.value = global.PRECISE(tradingEngineStage.stageBaseAsset.sizePlaced.value, 10) + tradingEngineStage.stageQuotedAsset.sizePlaced.value = tradingEngineStage.stageQuotedAsset.sizePlaced.value + tradingEngineOrder.orderQuotedAsset.size.value + tradingEngineStage.stageQuotedAsset.sizePlaced.value = global.PRECISE(tradingEngineStage.stageQuotedAsset.sizePlaced.value, 10) + + /* Updating Episode Counters */ + tradingEngine.current.episode.episodeCounters.orders.value++ + + /* Initialize this */ + tradingEngine.current.episode.distanceToEvent.createOrder.value = 1 + + /* Create Order Procedure */ + tradingEngineOrder.status.value = 'Open' + tradingEngineOrder.identifier.value = global.UNIQUE_ID() + tradingEngineOrder.begin.value = tradingEngine.current.episode.cycle.begin.value + tradingEngineOrder.end.value = tradingEngine.current.episode.cycle.end.value + tradingEngineOrder.serialNumber.value = tradingEngine.current.episode.episodeCounters.orders.value + tradingEngineOrder.orderName.value = tradingSystemOrder.name + tradingEngineOrder.algorithmName.value = executionAlgorithm.name + tradingEngineOrder.situationName.value = situationName + + async function calculateOrderRate() { + + /* Optional Rate Definition */ + if (tradingSystemOrder.type === 'Limit Buy Order' || tradingSystemOrder.type === 'Limit Sell Order') { + if (tradingSystemOrder.orderRate === undefined) { badDefinitionUnhandledException(undefined, 'tradingSystemOrder.orderRate === undefined', tradingSystemOrder) } + if (tradingSystemOrder.orderRate.formula === undefined) { badDefinitionUnhandledException(undefined, 'tradingSystemOrder.orderRate.formula === undefined', tradingSystemOrder) } + + /* Extract the rate value from the user-defined formula */ + tradingEngineOrder.rate.value = tradingSystem.formulas.get(tradingSystemOrder.orderRate.formula.id) + + /* Final rate validations */ + if (tradingEngineOrder.rate.value === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.rate.value === undefined', tradingSystemOrder) } + if (isNaN(tradingEngineOrder.rate.value) === true) { badDefinitionUnhandledException(undefined, 'isNaN(tradingEngineOrder.rate.value) === true', tradingSystemOrder) } + if (tradingEngineOrder.rate.value <= 0) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.rate.value <= 0', tradingSystemOrder) } + + tradingEngineOrder.rate.value = global.PRECISE(tradingEngineOrder.rate.value, 10) + } else { + /* + For Market Orders, the rate is irrelevant, since it is not sent to the Exchange. + We store at this field the last know price as a reference. + */ + tradingEngineOrder.rate.value = tradingEngine.current.episode.candle.close.value + } + } + + async function calculateOrderSize() { + /* Validate that this config exists */ + if (executionAlgorithm.config.percentageOfStageTargetSize === undefined) { badDefinitionUnhandledException(undefined, 'executionAlgorithm.config.percentageOfStageTargetSize === undefined', executionAlgorithm) } + if (isNaN(executionAlgorithm.config.percentageOfStageTargetSize) === true) { badDefinitionUnhandledException(undefined, 'isNaN(executionAlgorithm.config.percentageOfStageTargetSize) === true', executionAlgorithm) } + + let algorithmSizeInBaseAsset = tradingEngineStage.stageBaseAsset.targetSize.value * executionAlgorithm.config.percentageOfStageTargetSize / 100 + let algorithmSizeInQuotedAsset = tradingEngineStage.stageQuotedAsset.targetSize.value * executionAlgorithm.config.percentageOfStageTargetSize / 100 + + /* Validate that this config exists */ + if (tradingSystemOrder.config.percentageOfAlgorithmSize === undefined) { badDefinitionUnhandledException(undefined, 'tradingSystemOrder.config.percentageOfAlgorithmSize === undefined', tradingSystemOrder) } + if (isNaN(tradingSystemOrder.config.percentageOfAlgorithmSize) === true) { badDefinitionUnhandledException(undefined, 'isNaN(tradingSystemOrder.config.percentageOfAlgorithmSize) === true', tradingSystemOrder) } + + /* + The Size calculation depends on how the user defined the size of the position. + The user could have defined the size of the position in Base Asset or Quoted Asset. + */ + switch (tradingEngineStage.stageDefinedIn.value) { + case 'Base Asset': { + /* Size in Base Asset */ + tradingEngineOrder.orderBaseAsset.size.value = algorithmSizeInBaseAsset * tradingSystemOrder.config.percentageOfAlgorithmSize / 100 + + /* Check that the Size calculated would not surpass Stage Target Size */ + if ( + tradingEngineOrder.orderBaseAsset.size.value + tradingEngineStage.stageBaseAsset.sizePlaced.value > + tradingEngineStage.stageBaseAsset.targetSize.value + ) { + tradingEngineOrder.orderBaseAsset.size.value = tradingEngineStage.stageBaseAsset.targetSize.value - tradingEngineStage.stageBaseAsset.sizePlaced.value + } + + /* Size in Quoted Asset */ + tradingEngineOrder.orderQuotedAsset.size.value = tradingEngineOrder.orderBaseAsset.size.value * tradingEngineOrder.rate.value + break + } + case 'Quoted Asset': { + /* Size in Quoted Asset */ + tradingEngineOrder.orderQuotedAsset.size.value = algorithmSizeInQuotedAsset * tradingSystemOrder.config.percentageOfAlgorithmSize / 100 + + /* Check that the Size calculated would not surpass Stage Target Size */ + if ( + tradingEngineOrder.orderQuotedAsset.size.value + tradingEngineStage.stageQuotedAsset.sizePlaced.value > + tradingEngineStage.stageQuotedAsset.targetSize.value + ) { + tradingEngineOrder.orderQuotedAsset.size.value = tradingEngineStage.stageQuotedAsset.targetSize.value - tradingEngineStage.stageQuotedAsset.sizePlaced.value + } + + /* Size in Base Asset */ + tradingEngineOrder.orderBaseAsset.size.value = tradingEngineOrder.orderQuotedAsset.size.value / tradingEngineOrder.rate.value + break + } + } + + tradingEngineOrder.orderBaseAsset.size.value = global.PRECISE(tradingEngineOrder.orderBaseAsset.size.value, 10) + tradingEngineOrder.orderQuotedAsset.size.value = global.PRECISE(tradingEngineOrder.orderQuotedAsset.size.value, 10) + } + + async function createOrderAtExchange(tradingSystemOrder, tradingEngineOrder) { + + /* Filter by Session Type */ + switch (bot.SESSION.type) { + case 'Backtesting Session': { + return true + } + case 'Live Trading Session': { + break + } + case 'Fordward Testing Session': { + break + } + case 'Paper Trading Session': { + return true + } + } + + let orderId = await exchangeAPIModule.createOrder(tradingSystemOrder, tradingEngineOrder) + + if (orderId !== undefined) { + tradingEngineOrder.exchangeId.value = orderId + return true + } + } + } + + function simulateExchangeEvents(tradingEngineStage, tradingSystemOrder, tradingEngineOrder) { + + /* Filter by Session Type */ + switch (bot.SESSION.type) { + case 'Backtesting Session': { + break + } + case 'Live Trading Session': { + return + } + case 'Fordward Testing Session': { + return + } + case 'Paper Trading Session': { + break + } + } + + let previousQuotedAssetSize = tradingEngineOrder.orderQuotedAsset.size.value + let previousBaseAssetSizeFilled = tradingEngineOrder.orderBaseAsset.sizeFilled.value + let previousQuotedAssetSizeFilled = tradingEngineOrder.orderQuotedAsset.sizeFilled.value + let previousBaseAssetFeesPaid = tradingEngineOrder.orderBaseAsset.feesPaid.value + let previousQuotedAssetFeesPaid = tradingEngineOrder.orderQuotedAsset.feesPaid.value + + actualRateSimulation() + percentageFilledSimulation() + feesPaidSimulation() + sizeFilledSimulation() + + doTheAccounting( + tradingEngineStage, + tradingSystemOrder, + tradingEngineOrder, + previousBaseAssetSizeFilled, + previousQuotedAssetSizeFilled, + previousBaseAssetFeesPaid, + previousQuotedAssetFeesPaid + ) + + /* If the Stage is Closing and this order is still open, we need to cancel it now */ + if (tradingEngineStage.status.value === 'Closing' && tradingEngineOrder.status.value !== 'Closed') { + simulateCancelOrder(tradingEngineStage, tradingSystemOrder, tradingEngineOrder, 'Closing Stage') + } + + function actualRateSimulation() { + /* Actual Rate Simulation */ + let calculatedBasedOnTradingSystem = false + + basedOnTradingSystem() + basedOnSessionParameters() + considerBestMatchWithOrderBook() + recalculateQuotedAsset() + recalculateSizePlaced() + + function basedOnTradingSystem() { + /* Based on the Trading System Definition */ + if (tradingSystemOrder.simulatedExchangeEvents !== undefined) { + if (tradingSystemOrder.simulatedExchangeEvents.simulatedActualRate !== undefined) { + if (tradingSystemOrder.simulatedExchangeEvents.simulatedActualRate.formula !== undefined) { + /* Calculate this only once for this order */ + if (tradingEngineOrder.orderStatistics.actualRate.value === tradingEngineOrder.orderStatistics.actualRate.config.initialValue) { + tradingEngineOrder.orderStatistics.actualRate.value = tradingSystem.formulas.get(tradingSystemOrder.simulatedExchangeEvents.simulatedActualRate.formula.id) + if (tradingEngineOrder.orderStatistics.actualRate.value !== undefined) { + calculatedBasedOnTradingSystem = true + } + } + } + } + } + } + + function basedOnSessionParameters() { + /* Based on the Session Parameters Definition */ + if (calculatedBasedOnTradingSystem === false) { + switch (tradingEngineOrder.type) { + case 'Market Order': { + /* Actual Rate is simulated based on the Session Paremeters */ + let slippageAmount = tradingEngineOrder.rate.value * sessionParameters.slippage.config.positionRate / 100 + switch (tradingSystemOrder.type) { + case 'Market Sell Order': { + tradingEngineOrder.orderStatistics.actualRate.value = tradingEngineOrder.rate.value - slippageAmount + break + } + case 'Market Buy Order': { + tradingEngineOrder.orderStatistics.actualRate.value = tradingEngineOrder.rate.value + slippageAmount + break + } + } + break + } + case 'Limit Order': { + /* In Limit Orders the actual rate is the rate of the order, there is no slippage */ + tradingEngineOrder.orderStatistics.actualRate.value = tradingEngineOrder.rate.value + break + } + } + } + } + + function considerBestMatchWithOrderBook() { + /* + Until here we have got the rate based on the formula definition or based on session parameters slippage. + THe last check is about watching what happened in the market. Let's remember that the exchange will + fill the order with the best possible matches at it's order book. That means that if the rate + we set for the order was too low (for a sale order) or too hight (for a buy order), the actual rate + should be better than expected. + */ + switch (true) { + case tradingSystemOrder.type === 'Market Buy Order' || tradingSystemOrder.type === 'Limit Buy Order': { + if (tradingEngineOrder.orderStatistics.actualRate.value > tradingEngine.current.episode.candle.max.value) { + tradingEngineOrder.orderStatistics.actualRate.value = tradingEngine.current.episode.candle.max.value + } + break + } + case tradingSystemOrder.type === 'Market Sell Order' || tradingSystemOrder.type === 'Limit Sell Order': { + if (tradingEngineOrder.orderStatistics.actualRate.value < tradingEngine.current.episode.candle.min.value) { + tradingEngineOrder.orderStatistics.actualRate.value = tradingEngine.current.episode.candle.min.value + } + break + } + } + tradingEngineOrder.orderStatistics.actualRate.value = global.PRECISE(tradingEngineOrder.orderStatistics.actualRate.value, 10) + } + + function recalculateQuotedAsset() { + /* + Recalculate the Quouted Asset Size based on the newly calculated Actual Rate. + */ + tradingEngineOrder.orderQuotedAsset.size.value = tradingEngineOrder.orderBaseAsset.size.value * tradingEngineOrder.orderStatistics.actualRate.value + tradingEngineOrder.orderQuotedAsset.size.value = global.PRECISE(tradingEngineOrder.orderQuotedAsset.size.value, 10) + } + + function recalculateSizePlaced() { + /* + Recaulculate the Size Placed Based on the newly calculated Quoted Asset Size. + */ + tradingEngineStage.stageQuotedAsset.sizePlaced.value = + tradingEngineStage.stageQuotedAsset.sizePlaced.value - + previousQuotedAssetSize + + tradingEngineStage.stageQuotedAsset.sizePlaced.value = + tradingEngineStage.stageQuotedAsset.sizePlaced.value + + tradingEngineOrder.orderQuotedAsset.size.value + + tradingEngineStage.stageQuotedAsset.sizePlaced.value = global.PRECISE(tradingEngineStage.stageQuotedAsset.sizePlaced.value, 10) + } + } + + function percentageFilledSimulation() { + /* + Order Filling Simulation: the way we are going to handle this is the following. + For buy orders we are going to check if the price was below the order rate, and + for sell orders we are going to check if the price was above the order rate. + + If we have a partial filling defined we are going to use it to estimate how much + of the order we will consider filled. + */ + let orderWasHit + switch (tradingSystemOrder.type) { + case 'Limit Buy Order': { + if (tradingEngine.current.episode.candle.min.value <= tradingEngineOrder.rate.value) { + orderWasHit = true + } + break + } + case 'Limit Sell Order': { + if (tradingEngine.current.episode.candle.max.value >= tradingEngineOrder.rate.value) { + orderWasHit = true + } + break + } + case 'Market Buy Order': { + orderWasHit = true + break + } + case 'Market Sell Order': { + orderWasHit = true + break + } + } + if (orderWasHit === true) { + let calculatedBasedOnTradingSystem = false + + /* Based on the Trading System Definition */ + if (tradingSystemOrder.simulatedExchangeEvents !== undefined) { + if (tradingSystemOrder.simulatedExchangeEvents.simulatedPartialFill !== undefined) { + if (tradingSystemOrder.simulatedExchangeEvents.simulatedPartialFill.config.fillProbability !== undefined) { + + /* Percentage Filled */ + let percentageFilled = tradingSystemOrder.simulatedExchangeEvents.simulatedPartialFill.config.fillProbability * 100 + if (tradingEngineOrder.orderStatistics.percentageFilled.value + percentageFilled > 100) { + percentageFilled = 100 - tradingEngineOrder.orderStatistics.percentageFilled.value + } + tradingEngineOrder.orderStatistics.percentageFilled.value = tradingEngineOrder.orderStatistics.percentageFilled.value + percentageFilled + tradingEngineOrder.orderStatistics.percentageFilled.value = global.PRECISE(tradingEngineOrder.orderStatistics.percentageFilled.value, 10) + calculatedBasedOnTradingSystem = true + } + } + } + /* + If there is no definition for this at the trading system we will assume orders + are 100% filled every single time. + */ + if (calculatedBasedOnTradingSystem === false) { + /* We will assume that 100% of the order was filled */ + tradingEngineOrder.orderStatistics.percentageFilled.value = 100 + } + /* Check if we need to close the order */ + if (tradingEngineOrder.orderStatistics.percentageFilled.value === 100) { + + /* Close this Order */ + tradingEngineOrder.status.value = 'Closed' + tradingEngineOrder.exitType.value = 'Filled' + + /* Initialize this */ + tradingEngine.current.episode.distanceToEvent.closeOrder.value = 1 + + updateEndsWithCycle(tradingEngineOrder) + tradingSystem.infos.push([tradingSystemOrder.id, 'percentageFilledSimulation -> Closing Order with Exit Type ' + tradingEngineOrder.exitType.value]) + } + } + } + + function feesPaidSimulation() { + /* + The way the Fess Paid are calculated is as follows: From the order size we apply the % of fee, + that would give us the total fees for that order. To that we apply the % filled of the orders, + that give use the final result of the fees paid for the current % filled. + + But before that, we will see if there is an specific definition on how to simulate the fees for + this order, or if there is not, we use the fees session parameters definitions. + */ + + /* Based on the Trading System Definition */ + if (tradingSystemOrder.simulatedExchangeEvents !== undefined) { + if (tradingSystemOrder.simulatedExchangeEvents.simulatedFeesPaid !== undefined) { + if (tradingSystemOrder.simulatedExchangeEvents.simulatedFeesPaid.config.percentage !== undefined) { + applyFeePercentage(tradingEngineOrder, tradingSystemOrder, tradingSystemOrder.simulatedExchangeEvents.simulatedFeesPaid.config.percentage) + return + } + } + } + + /* + Another way to simulate the Fees Paid is by using the Session Paremeters configuration for Fees. + */ + switch (tradingEngineOrder.type) { + case 'Market Order': { + applyFeePercentage(tradingEngineOrder, tradingSystemOrder, sessionParameters.feeStructure.config.taker) + break + } + case 'Limit Order': { + applyFeePercentage(tradingEngineOrder, tradingSystemOrder, sessionParameters.feeStructure.config.maker) + break + } + } + } + + function sizeFilledSimulation() { + /* Size Filled */ + tradingEngineOrder.orderBaseAsset.sizeFilled.value = + tradingEngineOrder.orderBaseAsset.size.value * + tradingEngineOrder.orderStatistics.percentageFilled.value / 100 + + tradingEngineOrder.orderQuotedAsset.sizeFilled.value = + tradingEngineOrder.orderQuotedAsset.size.value * + tradingEngineOrder.orderStatistics.percentageFilled.value / 100 + + tradingEngineOrder.orderBaseAsset.sizeFilled.value = global.PRECISE(tradingEngineOrder.orderBaseAsset.sizeFilled.value, 10) + tradingEngineOrder.orderQuotedAsset.sizeFilled.value = global.PRECISE(tradingEngineOrder.orderQuotedAsset.sizeFilled.value, 10) + } + } + + async function checkExchangeEvents(tradingEngineStage, tradingSystemOrder, tradingEngineOrder) { + + /* Filter by Session Type */ + switch (bot.SESSION.type) { + case 'Backtesting Session': { + return true + } + case 'Live Trading Session': { + break + } + case 'Fordward Testing Session': { + break + } + case 'Paper Trading Session': { + return true + } + } + + let order = await exchangeAPIModule.getOrder(tradingSystemOrder, tradingEngineOrder) + + if (order === undefined) { + tradingSystem.warnings.push([tradingSystemOrder.id, 'Could not verify the status of this order at the exchange.']) + return false + } + + const AT_EXCHANGE_STATUS = { + OPEN: 'open', + CLOSED: 'closed', + CANCELLED: 'canceled' + } + + /* Status Checks */ + if (order.remaining === 0 && order.status === AT_EXCHANGE_STATUS.CLOSED) { + /* Close this Order */ + tradingEngineOrder.status.value = 'Closed' + tradingEngineOrder.exitType.value = 'Filled' + + /* Initialize this */ + tradingEngine.current.episode.distanceToEvent.closeOrder.value = 1 + + await updateEndsWithCycle(tradingEngineOrder) + tradingSystem.infos.push([tradingSystemOrder.id, 'checkExchangeEvents -> Closing Order with Exit Type ' + tradingEngineOrder.exitType.value]) + + await syncWithExchange(tradingEngineStage, tradingSystemOrder, tradingEngineOrder, order) + return + } + + if (order.remaining > 0 && order.status === AT_EXCHANGE_STATUS.CLOSED) { + /* Close this Order */ + tradingEngineOrder.status.value = 'Closed' + tradingEngineOrder.exitType.value = 'Closed at the Exchange' + /* Initialize this */ + tradingEngine.current.episode.distanceToEvent.closeOrder.value = 1 + + await updateEndsWithCycle(tradingEngineOrder) + tradingSystem.infos.push([tradingSystemOrder.id, 'checkExchangeEvents -> Closing Order with Exit Type ' + tradingEngineOrder.exitType.value]) + + await syncWithExchange(tradingEngineStage, tradingSystemOrder, tradingEngineOrder, order) + await recalculateStageSize(tradingEngineStage, tradingEngineOrder) + return + } + + if (order.status === AT_EXCHANGE_STATUS.CANCELLED) { + /* Close this Order */ + tradingEngineOrder.status.value = 'Closed' + /* + We must be carefull here not to overide an already defined exitType. It can happen + for instance that the order was cancellerd from the bot, but veryfing the cancellation + was not possible because of a connection to the exchange problem. In that case + the exit type was defined but the order was kept open until the verification could be done. + */ + if (tradingEngineOrder.exitType.value === tradingEngineOrder.exitType.config.initialValue) { + tradingEngineOrder.exitType.value = 'Cancelled at the Exchange' + } + /* Initialize this */ + tradingEngine.current.episode.distanceToEvent.closeOrder.value = 1 + + await updateEndsWithCycle(tradingEngineOrder) + tradingSystem.infos.push([tradingSystemOrder.id, 'checkExchangeEvents -> Closing Order with Exit Type ' + tradingEngineOrder.exitType.value]) + + await syncWithExchange(tradingEngineStage, tradingSystemOrder, tradingEngineOrder, order) + await recalculateStageSize(tradingEngineStage, tradingEngineOrder) + return + } + + /* + If the order happens to be at least partially filled, there is a syncronization work + we need to do, that includes discovering which is the Actual Rate the order is being filled, + the Fees Paid and many other thing we need to account for. + */ + if (order.filled > 0) { + await syncWithExchange(tradingEngineStage, tradingSystemOrder, tradingEngineOrder, order) + } + + /* + Forced Cancellation Check: Here we check if we need to cancel this order because the + stage is closing. + */ + if (tradingEngineStage.status.value === 'Closing' && tradingEngineOrder.status.value !== 'Closed') { + await exchangeCancelOrder(tradingEngineStage, tradingSystemOrder, tradingEngineOrder, 'Closing Stage') + } + + return true + } + + async function syncWithExchange(tradingEngineStage, tradingSystemOrder, tradingEngineOrder, order) { + + let previousBaseAssetSize = tradingEngineOrder.orderBaseAsset.size.value + let previousQuotedAssetSize = tradingEngineOrder.orderQuotedAsset.size.value + let previousBaseAssetSizeFilled = tradingEngineOrder.orderBaseAsset.sizeFilled.value + let previousQuotedAssetSizeFilled = tradingEngineOrder.orderQuotedAsset.sizeFilled.value + let previousBaseAssetFeesPaid = tradingEngineOrder.orderBaseAsset.feesPaid.value + let previousQuotedAssetFeesPaid = tradingEngineOrder.orderQuotedAsset.feesPaid.value + + await actualSizeCalculation() + await actualRateCalculation() + await percentageFilledCalculation() + await feesPaidCalculation() + await sizeFilledCalculation() + + await doTheAccounting( + tradingEngineStage, + tradingSystemOrder, + tradingEngineOrder, + previousBaseAssetSizeFilled, + previousQuotedAssetSizeFilled, + previousBaseAssetFeesPaid, + previousQuotedAssetFeesPaid + ) + + return + + async function actualSizeCalculation() { + /* + When we submit the order to the exchange, we do it specifying the order size + in Base Asset. The exchange might take that size or might change it a little + bit if for example, if it does not accept as many decimals as we are sending. + If we identify the situation in which the size accepted is different than the + size we have accounted for, we need to make several adjustments so that the + accounting syncronizes with reality. + */ + if (tradingEngineOrder.orderBaseAsset.size.value === order.amount) { return } + /* + We will sync the Base Asset size, and recalculate the Quoted Asset size too. + */ + tradingEngineOrder.orderBaseAsset.size.value = order.amount + tradingEngineOrder.orderQuotedAsset.size.value = tradingEngineOrder.orderBaseAsset.size.value * tradingEngineOrder.rate.value + + tradingEngineOrder.orderBaseAsset.size.value = global.PRECISE(tradingEngineOrder.orderBaseAsset.size.value, 10) + tradingEngineOrder.orderQuotedAsset.size.value = global.PRECISE(tradingEngineOrder.orderQuotedAsset.size.value, 10) + /* + Finaly we need to unaccount the previous size placed and correctly account + for the the new sizes we now have. + */ + tradingEngineStage.stageBaseAsset.sizePlaced.value = + tradingEngineStage.stageBaseAsset.sizePlaced.value - + previousBaseAssetSize + + tradingEngineStage.stageBaseAsset.sizePlaced.value = + tradingEngineStage.stageBaseAsset.sizePlaced.value + + tradingEngineOrder.orderBaseAsset.size.value + + tradingEngineStage.stageQuotedAsset.sizePlaced.value = + tradingEngineStage.stageQuotedAsset.sizePlaced.value - + previousQuotedAssetSize + + tradingEngineStage.stageQuotedAsset.sizePlaced.value = + tradingEngineStage.stageQuotedAsset.sizePlaced.value + + tradingEngineOrder.orderQuotedAsset.size.value + + tradingEngineStage.stageBaseAsset.sizePlaced.value = global.PRECISE(tradingEngineStage.stageBaseAsset.sizePlaced.value, 10) + tradingEngineStage.stageQuotedAsset.sizePlaced.value = global.PRECISE(tradingEngineStage.stageQuotedAsset.sizePlaced.value, 10) + + previousBaseAssetSize = tradingEngineOrder.orderBaseAsset.size.value + previousQuotedAssetSize = tradingEngineOrder.orderQuotedAsset.size.value + } + + async function actualRateCalculation() { + /* + Actual Rate Calculation: Let's remember that the exchange may not take the rate + we send it with the order (in Limit orders) and for any reason change it a little bit. + For example we might have sent a rate with too many decimals and the exchange truncate + them. Another thing that might happen is that we send a rate that is matching orders already + at the order book. In this case we would get an actual rate not only different than the one + we sent, but also, better since the trading engine inside the exchange would match out orders + with the first orders best by price. + + In the case of Market Orders we don't even send a rate. For all those reason + we get and store the Actual Rate at which the order was filled. + */ + if (order.average !== undefined) { + /* + We will use the average whenever is available. + */ + tradingEngineOrder.orderStatistics.actualRate.value = order.average + } else { + /* + Otherwise we use the order.price. + */ + tradingEngineOrder.orderStatistics.actualRate.value = order.price + } + + tradingEngineOrder.orderStatistics.actualRate.value = global.PRECISE(tradingEngineOrder.orderStatistics.actualRate.value, 10) + + if (tradingEngineOrder.orderStatistics.actualRate.value === tradingEngineOrder.rate.value) { return } + /* + Now we know the Actual Rate at which the order was filled. Since the actual rate + is not the same as the Rate we defined for the order, we need to syncronize + the Order Size for Quoted Asset since it was calculated with the Order Size that we + now know it is not the once really used at the exchange. We will recalculate the + Order Size in Quoted Asset and not in Base Asset, since the Order Size in Base Asset + is the one we sent to the exchange, so that is fixed, regardless of how we initially + got the Order Size in Base Asset, eigher from direct imput from the user or calculated + from the Order Size in Quoted Asset input it by the user. So here we go. + */ + tradingEngineOrder.orderQuotedAsset.size.value = tradingEngineOrder.orderBaseAsset.size.value * tradingEngineOrder.orderStatistics.actualRate.value + tradingEngineOrder.orderQuotedAsset.size.value = global.PRECISE(tradingEngineOrder.orderQuotedAsset.size.value, 10) + /* + Great, this up-to-date order size in Base Asset and the Actual Rate can now be used for example to calculate + the orders fees in Quoted Assets, and it is perfectly accurate. The next problem + we need to fix is that the sizePlaced for Quoted Asset that we already have calculated + was based on the Order Rate, not the Actual Rate, so we need to fix that by anuncounting + the previous size and accounting the new one, all this only for Quoted Asset. + */ + tradingEngineStage.stageQuotedAsset.sizePlaced.value = + tradingEngineStage.stageQuotedAsset.sizePlaced.value - + previousQuotedAssetSize + + tradingEngineStage.stageQuotedAsset.sizePlaced.value = + tradingEngineStage.stageQuotedAsset.sizePlaced.value + + tradingEngineOrder.orderQuotedAsset.size.value + + tradingEngineStage.stageQuotedAsset.sizePlaced.value = global.PRECISE(tradingEngineStage.stageQuotedAsset.sizePlaced.value, 10) + } + + async function percentageFilledCalculation() { + /* Percentage Filled Calculation */ + tradingEngineOrder.orderStatistics.percentageFilled.value = order.filled * 100 / (order.filled + order.remaining) + tradingEngineOrder.orderStatistics.percentageFilled.value = global.PRECISE(tradingEngineOrder.orderStatistics.percentageFilled.value, 10) + } + + async function feesPaidCalculation() { + /* + The exchange fees are taken from the Base Asset or the Quoted Asset depending if we + are buying or selling. Within the order information received we can not see the fees paid so we need to + calculate them by ourselves. To do this it is needed to be used the Session Fees Parameters. + */ + switch (tradingEngineOrder.type) { + case 'Market Order': { + await applyFeePercentage(tradingEngineOrder, tradingSystemOrder, sessionParameters.feeStructure.config.taker) + break + } + case 'Limit Order': { + await applyFeePercentage(tradingEngineOrder, tradingSystemOrder, sessionParameters.feeStructure.config.maker) + break + } + } + } + + async function sizeFilledCalculation() { + /* + CCXT returns order.filled with an amount denominated in Base Asset. We will + take it from there for our Order Base Asset. The amount in order.filled does + not account for the fees, which is exactly what we need in this case. + */ + tradingEngineOrder.orderBaseAsset.sizeFilled.value = order.filled + tradingEngineOrder.orderBaseAsset.sizeFilled.value = global.PRECISE(tradingEngineOrder.orderBaseAsset.sizeFilled.value, 10) + /* + For Quoted Asset, CCXT does not return any field with the size filled, so we + need to calculate that by ourselves. Since we know the Size in Quoted Asset thet + is already adjusted with the Actual Rate and the Percentage Filled, we will use all + this in this formula to get the Size Filled in Quoted Asset. + */ + tradingEngineOrder.orderQuotedAsset.sizeFilled.value = + tradingEngineOrder.orderQuotedAsset.size.value * tradingEngineOrder.orderStatistics.percentageFilled.value / 100 + + tradingEngineOrder.orderQuotedAsset.sizeFilled.value = global.PRECISE(tradingEngineOrder.orderQuotedAsset.sizeFilled.value, 10) + } + } + + async function doTheAccounting( + tradingEngineStage, + tradingSystemOrder, + tradingEngineOrder, + previousBaseAssetSizeFilled, + previousQuotedAssetSizeFilled, + previousBaseAssetFeesPaid, + previousQuotedAssetFeesPaid + ) { + + await updateStageAssets() + await updateBalances() + + async function updateStageAssets() { + /* Stage Base Asset: Undo the previous accounting */ + tradingEngineStage.stageBaseAsset.sizeFilled.value = + tradingEngineStage.stageBaseAsset.sizeFilled.value - + previousBaseAssetSizeFilled + + tradingEngineStage.stageBaseAsset.feesPaid.value = + tradingEngineStage.stageBaseAsset.feesPaid.value - + previousBaseAssetFeesPaid + + /* Stage Base Asset: Account the current filling and fees */ + tradingEngineStage.stageBaseAsset.sizeFilled.value = + tradingEngineStage.stageBaseAsset.sizeFilled.value + + tradingEngineOrder.orderBaseAsset.sizeFilled.value + + tradingEngineStage.stageBaseAsset.feesPaid.value = + tradingEngineStage.stageBaseAsset.feesPaid.value + + tradingEngineOrder.orderBaseAsset.feesPaid.value + + /* Stage Quote Asset: Undo the previous accounting */ + tradingEngineStage.stageQuotedAsset.sizeFilled.value = + tradingEngineStage.stageQuotedAsset.sizeFilled.value - + previousQuotedAssetSizeFilled + + tradingEngineStage.stageQuotedAsset.feesPaid.value = + tradingEngineStage.stageQuotedAsset.feesPaid.value - + previousQuotedAssetFeesPaid + + /* Stage Quote Asset: Account the current filling and fees */ + tradingEngineStage.stageQuotedAsset.sizeFilled.value = + tradingEngineStage.stageQuotedAsset.sizeFilled.value + + tradingEngineOrder.orderQuotedAsset.sizeFilled.value + + tradingEngineStage.stageQuotedAsset.feesPaid.value = + tradingEngineStage.stageQuotedAsset.feesPaid.value + + tradingEngineOrder.orderQuotedAsset.feesPaid.value + + tradingEngineStage.stageBaseAsset.sizeFilled.value = global.PRECISE(tradingEngineStage.stageBaseAsset.sizeFilled.value, 10) + tradingEngineStage.stageBaseAsset.feesPaid.value = global.PRECISE(tradingEngineStage.stageBaseAsset.feesPaid.value, 10) + + tradingEngineStage.stageQuotedAsset.sizeFilled.value = global.PRECISE(tradingEngineStage.stageQuotedAsset.sizeFilled.value, 10) + tradingEngineStage.stageQuotedAsset.feesPaid.value = global.PRECISE(tradingEngineStage.stageQuotedAsset.feesPaid.value, 10) + } + + async function updateBalances() { + /* Balances Update */ + switch (true) { + /* + Let's remember that for Buy orders, the fees are paid in Base Asset. So we + actually don't receive the whole Size Filled in Base Asset, but the Size + Filled minus the Fees Paid. For the case of Quoted Asset, we actually + need to susbstract the whole Size Filled from the balance. + */ + case tradingSystemOrder.type === 'Market Buy Order' || tradingSystemOrder.type === 'Limit Buy Order': { + + /* Balance Base Asset: Undo the previous accounting */ + tradingEngine.current.episode.episodeBaseAsset.balance.value = + tradingEngine.current.episode.episodeBaseAsset.balance.value - + previousBaseAssetSizeFilled + + previousBaseAssetFeesPaid + + /* Balance Base Asset: Account the current filling and fees */ + tradingEngine.current.episode.episodeBaseAsset.balance.value = + tradingEngine.current.episode.episodeBaseAsset.balance.value + + tradingEngineOrder.orderBaseAsset.sizeFilled.value - + tradingEngineOrder.orderBaseAsset.feesPaid.value + + /* Balance Quoted Asset: Undo the previous accounting */ + tradingEngine.current.episode.episodeQuotedAsset.balance.value = + tradingEngine.current.episode.episodeQuotedAsset.balance.value + + previousQuotedAssetSizeFilled + + /* Balance Quoted Asset: Account the current filling and fees */ + tradingEngine.current.episode.episodeQuotedAsset.balance.value = + tradingEngine.current.episode.episodeQuotedAsset.balance.value - + tradingEngineOrder.orderQuotedAsset.sizeFilled.value + break + } + /* + For Sell orders, the fees are being paid in Quote Asset, so we never + acutally receive the whole Filled Size in Quote Asset, but the Filled + Size minus the Fees Paid. But we do expend the whole Filled Size in + Base Asset. + */ + case tradingSystemOrder.type === 'Market Sell Order' || tradingSystemOrder.type === 'Limit Sell Order': { + + /* Balance Base Asset: Undo the previous accounting */ + tradingEngine.current.episode.episodeBaseAsset.balance.value = + tradingEngine.current.episode.episodeBaseAsset.balance.value + + previousBaseAssetSizeFilled + + /* Balance Base Asset: Account the current filling and fees */ + tradingEngine.current.episode.episodeBaseAsset.balance.value = + tradingEngine.current.episode.episodeBaseAsset.balance.value - + tradingEngineOrder.orderBaseAsset.sizeFilled.value + + /* Balance Quoted Asset: Undo the previous accounting */ + tradingEngine.current.episode.episodeQuotedAsset.balance.value = + tradingEngine.current.episode.episodeQuotedAsset.balance.value - + previousQuotedAssetSizeFilled + + previousQuotedAssetFeesPaid + + /* Balance Quoted Asset: Account the current filling and fees */ + tradingEngine.current.episode.episodeQuotedAsset.balance.value = + tradingEngine.current.episode.episodeQuotedAsset.balance.value + + tradingEngineOrder.orderQuotedAsset.sizeFilled.value - + tradingEngineOrder.orderQuotedAsset.feesPaid.value + break + } + } + tradingEngine.current.episode.episodeBaseAsset.balance.value = global.PRECISE(tradingEngine.current.episode.episodeBaseAsset.balance.value, 10) + tradingEngine.current.episode.episodeQuotedAsset.balance.value = global.PRECISE(tradingEngine.current.episode.episodeQuotedAsset.balance.value, 10) + } + } + + function simulateCancelOrder(tradingEngineStage, tradingSystemOrder, tradingEngineOrder, exitType) { + + /* Filter by Session Type */ + switch (bot.SESSION.type) { + case 'Backtesting Session': { + break + } + case 'Live Trading Session': { + return + } + case 'Fordward Testing Session': { + return + } + case 'Paper Trading Session': { + break + } + } + + /* Close this Order */ + tradingEngineOrder.status.value = 'Closed' + tradingEngineOrder.exitType.value = exitType + + /* Initialize this */ + tradingEngine.current.episode.distanceToEvent.closeOrder.value = 1 + + updateEndsWithCycle(tradingEngineOrder) + tradingSystem.infos.push([tradingSystemOrder.id, 'simulateCancelOrder -> Closing Order with Exit Type ' + tradingEngineOrder.exitType.value]) + + recalculateStageSize(tradingEngineStage, tradingEngineOrder) + } + + async function exchangeCancelOrder(tradingEngineStage, tradingSystemOrder, tradingEngineOrder, exitType) { + + /* Filter by Session Type */ + switch (bot.SESSION.type) { + case 'Backtesting Session': { + return + } + case 'Live Trading Session': { + break + } + case 'Fordward Testing Session': { + break + } + case 'Paper Trading Session': { + return + } + } + + /* Check if we can cancel the order at the Exchange. */ + let result = await exchangeAPIModule.cancelOrder(tradingSystemOrder, tradingEngineOrder) + if (result === true) { + + /* At this point we know which is the exit type for this order */ + tradingEngineOrder.exitType.value = exitType + + /* + Perhaps the order was filled a bit more between the last time we checked and when it was cancelled. + To sync our accounting, we need to check the order one last time and if it changed, fix it. + */ + + let order = await exchangeAPIModule.getOrder(tradingSystemOrder, tradingEngineOrder) + + if (order === undefined) { + tradingSystem.warnings.push([tradingSystemOrder.id, 'Could not verify the status of this order at the exchange, and syncronize the accounting.']) + return false + } + + /* + Close this Order. Note that we are not closing the order until we have the exchange + response with the order details that we can use to syncronize with our accoounting. + Otherwise if the connection to the exchange fails, we would have a closed order not + accounted in any way. + */ + tradingEngineOrder.status.value = 'Closed' + + /* Initialize this */ + tradingEngine.current.episode.distanceToEvent.closeOrder.value = 1 + + await updateEndsWithCycle(tradingEngineOrder) + tradingSystem.infos.push([tradingSystemOrder.id, 'exchangeCancelOrder -> Closing Order with Exit Type ' + tradingEngineOrder.exitType.value]) + + await syncWithExchange(tradingEngineStage, tradingSystemOrder, tradingEngineOrder, order) + + await recalculateStageSize(tradingEngineStage, tradingEngineOrder) + } + } + + async function recalculateStageSize(tradingEngineStage, tradingEngineOrder) { + /* + Since the order is Cancelled, we need to adjust the stage sizePlaced. Remember that the Stage + Size Placed accumulates for each asset, the order size placed at the exchange. A cancelation means that + only the part filled can be considered placed, so we need to substract from the stage size + the remainder. To achieve this with the information we currently have, we are going first + to unaccount the order size, and the account only the sizeFilled + the feesPaid. + */ + tradingEngineStage.stageBaseAsset.sizePlaced.value = + tradingEngineStage.stageBaseAsset.sizePlaced.value - + tradingEngineOrder.orderBaseAsset.size.value + + tradingEngineStage.stageQuotedAsset.sizePlaced.value = + tradingEngineStage.stageQuotedAsset.sizePlaced.value - + tradingEngineOrder.orderQuotedAsset.size.value + + tradingEngineStage.stageBaseAsset.sizePlaced.value = + tradingEngineStage.stageBaseAsset.sizePlaced.value + + tradingEngineOrder.orderBaseAsset.sizeFilled.value + + tradingEngineStage.stageQuotedAsset.sizePlaced.value = + tradingEngineStage.stageQuotedAsset.sizePlaced.value + + tradingEngineOrder.orderQuotedAsset.sizeFilled.value + + tradingEngineStage.stageBaseAsset.sizePlaced.value = global.PRECISE(tradingEngineStage.stageBaseAsset.sizePlaced.value, 10) + tradingEngineStage.stageQuotedAsset.sizePlaced.value = global.PRECISE(tradingEngineStage.stageQuotedAsset.sizePlaced.value, 10) + } + + async function applyFeePercentage(tradingEngineOrder, tradingSystemOrder, feePercentage) { + switch (true) { + case tradingSystemOrder.type === 'Market Buy Order' || tradingSystemOrder.type === 'Limit Buy Order': { + /* + In this case the fees are taken from the Base Asset you receive. + */ + tradingEngineOrder.orderBaseAsset.feesPaid.value = + tradingEngineOrder.orderBaseAsset.size.value * + feePercentage / 100 * + tradingEngineOrder.orderStatistics.percentageFilled.value / 100 + break + } + case tradingSystemOrder.type === 'Market Sell Order' || tradingSystemOrder.type === 'Limit Sell Order': { + /* + In this case the fees are taken from the Quoted Asset you receive. + */ + tradingEngineOrder.orderQuotedAsset.feesPaid.value = + tradingEngineOrder.orderQuotedAsset.size.value * + feePercentage / 100 * + tradingEngineOrder.orderStatistics.percentageFilled.value / 100 + break + } + } + + tradingEngineOrder.orderBaseAsset.feesPaid.value = global.PRECISE(tradingEngineOrder.orderBaseAsset.feesPaid.value, 10) + tradingEngineOrder.orderQuotedAsset.feesPaid.value = global.PRECISE(tradingEngineOrder.orderQuotedAsset.feesPaid.value, 10) + } + + async function checkOrderEvent(event, order, executionAlgorithm, executionNode) { + if (event !== undefined) { + for (let k = 0; k < event.situations.length; k++) { + let situation = event.situations[k] + let passed + if (situation.conditions.length > 0) { + passed = true + } + + passed = tradingSystem.checkConditions(situation, passed) + + tradingSystem.values.push([situation.id, passed]) + if (passed) { + tradingSystem.highlights.push(situation.id) + tradingSystem.highlights.push(event.id) + tradingSystem.highlights.push(order.id) + tradingSystem.highlights.push(executionAlgorithm.id) + tradingSystem.highlights.push(executionNode.id) + + announcementsModule.makeAnnoucements(event) + return situation.name // if the event is triggered, we return the name of the situation that passed + } + } + } + } + + function updateEnds(tradingEngineOrder) { + if (tradingEngineOrder.status.value === 'Open') { + tradingEngineOrder.end.value = tradingEngine.current.episode.candle.end.value + } + } + + async function updateEndsWithCycle(tradingEngineOrder) { + tradingEngineOrder.end.value = tradingEngine.current.episode.cycle.end.value + } + + function updateCounters(tradingEngineOrder) { + if (tradingEngineOrder.status.value === 'Open') { + tradingEngineOrder.orderCounters.periods.value++ + } + } + + function updateStatistics(tradingEngineOrder) { + tradingEngineOrder.orderStatistics.days.value = tradingEngineOrder.orderCounters.periods.value * sessionParameters.timeFrame.config.value / global.ONE_DAY_IN_MILISECONDS + tradingEngineOrder.orderStatistics.days.value = global.PRECISE(tradingEngineOrder.orderStatistics.days.value, 10) + } + + function resetTradingEngineDataStructure(tradingEngineOrder, tradingSystemOrder, stageStatus) { + if (tradingEngineOrder.status.value === 'Closed') { + /* We reset the order data structure inside the Trading Engine to its initial value */ + tradingEngineModule.initializeNode(tradingEngineOrder) + if (tradingSystemOrder.config.spawnMultipleOrders !== true) { + /* + We close the lock so as to prevent this data structure to be used again during this same stage execution. + */ + if (stageStatus === 'Open') { + tradingEngineOrder.lock.value = 'Closed' + } + } + } + } + + function badDefinitionUnhandledException(err, message, node) { + tradingSystem.errors.push([node.id, message]) + + logger.write(MODULE_NAME, "[ERROR] -> " + message); + logger.write(MODULE_NAME, "[ERROR] -> node.name = " + node.name); + logger.write(MODULE_NAME, "[ERROR] -> node.type = " + node.type); + logger.write(MODULE_NAME, "[ERROR] -> node.config = " + JSON.stringify(node.config)); + if (err !== undefined) { + logger.write(MODULE_NAME, "[ERROR] -> err.stack = " + err.stack); + } + throw 'Please fix the problem and try again.' + } +} + diff --git a/TaskServer/LowFrequencyTrading/TradingOutput.js b/TaskServer/LowFrequencyTrading/TradingOutput.js new file mode 100644 index 000000000..1f582d090 --- /dev/null +++ b/TaskServer/LowFrequencyTrading/TradingOutput.js @@ -0,0 +1,233 @@ +exports.newTradingOutput = function newTradingOutput(bot, logger, tradingEngineModule, UTILITIES, FILE_STORAGE) { + /* + This module will load if necesary all the data outputs so that they can be appended with new + records if needed. After running the simulation, it will save all the data outputs. + */ + const MODULE_NAME = 'Trading Bot' + + let thisObject = { + initialize: initialize, + finalize: finalize, + start: start + } + + let utilities = UTILITIES.newCloudUtilities(logger) + let fileStorage = FILE_STORAGE.newFileStorage(logger) + + return thisObject + + function finalize() { + thisObject = undefined + utilities = undefined + fileStorage = undefined + commons = undefined + } + + function initialize() { + + } + + async function start(chart, timeFrame, timeFrameLabel, tradingProcessDate) { + try { + + if (timeFrame > global.dailyFilePeriods[0][0]) { + bot.processingDailyFiles = false + } else { + bot.processingDailyFiles = true + } + + /* Preparing everything for the Simulation */ + const TRADING_SIMULATION = require('./TradingSimulation.js') + let tradingSimulation = TRADING_SIMULATION.newTradingSimulation(bot, logger, tradingEngineModule, UTILITIES) + + let outputDatasets = global.NODE_BRANCH_TO_ARRAY(bot.processNode.referenceParent.processOutput, 'Output Dataset') + let outputDatasetsMap = new Map() + + if (bot.processingDailyFiles === true) { + /* + For Daily Files, we are going to initialize the outputs at the first execution + if we are not resuming, but also at every following execution except when + we are at the head of the market, because at the head of the market we need to + append more data to the same output files that already exists. + */ + if (bot.FIRST_EXECUTION === true && bot.RESUME === false) { + await initializeOutputs() + } else { + if (bot.simulationState.tradingEngine.current.episode.headOfTheMarket.value === true) { + await readFiles() + } else { + await initializeOutputs() + } + } + } else { + /* + Form Market Files, we are only going to initialize the outputs at the first run + and if we are not resuming execution. Subsequent runs means that we are at the + head of the market. Remember that backtests finishes the session once the reach + the final datetime. + */ + if (bot.FIRST_EXECUTION === true && bot.RESUME === false) { + await initializeOutputs() + } else { + await readFiles() + } + } + + await tradingSimulation.runSimulation( + chart, + outputDatasetsMap, + writeFiles + ) + + tradingSimulation.finalize() + return + + async function initializeOutputs() { + if (bot.processingDailyFiles) { + await initializeDailyFiles() + } else { + await initializeMarketFiles() + } + } + + async function initializeDailyFiles() { + for (let i = 0; i < outputDatasets.length; i++) { + let outputDatasetNode = outputDatasets[i] + let dataset = outputDatasetNode.referenceParent + + if (dataset.config.type === 'Daily Files') { + outputDatasetsMap.set(dataset.parentNode.config.codeName, []) + } + } + } + + async function initializeMarketFiles() { + for (let i = 0; i < outputDatasets.length; i++) { + let outputDatasetNode = outputDatasets[i] + let dataset = outputDatasetNode.referenceParent + + if (dataset.config.type === 'Market Files') { + outputDatasetsMap.set(dataset.parentNode.config.codeName, []) + } + } + } + + async function readFiles() { + /* + This bot have an output of files that it generates. At every call to the bot, it needs to read the previously generated + files in order to later append more information after the execution is over. Here in this function we are going to + read those output files and get them ready for appending content during the simulation. + */ + if (bot.processingDailyFiles) { + await readDailyFiles() + } else { + await readMarketFiles() + } + } + + async function readMarketFiles() { + for (let i = 0; i < outputDatasets.length; i++) { + let outputDatasetNode = outputDatasets[i] + let dataset = outputDatasetNode.referenceParent + + if (dataset.config.type === 'Market Files') { + + let fileName = 'Data.json' + let filePath = bot.filePathRoot + '/Output/' + bot.SESSION.folderName + '/' + dataset.parentNode.config.codeName + '/' + dataset.config.codeName + '/' + timeFrameLabel + + await readOutputFile(fileName, filePath, dataset.parentNode.config.codeName) + } + } + } + + async function readDailyFiles() { + for (let i = 0; i < outputDatasets.length; i++) { + let outputDatasetNode = outputDatasets[i] + let dataset = outputDatasetNode.referenceParent + + if (dataset.config.type === 'Daily Files') { + + let dateForPath = tradingProcessDate.getUTCFullYear() + '/' + utilities.pad(tradingProcessDate.getUTCMonth() + 1, 2) + '/' + utilities.pad(tradingProcessDate.getUTCDate(), 2); + let fileName = 'Data.json' + let filePath = bot.filePathRoot + '/Output/' + bot.SESSION.folderName + '/' + dataset.parentNode.config.codeName + '/' + dataset.config.codeName + '/' + timeFrameLabel + "/" + dateForPath + + await readOutputFile(fileName, filePath, dataset.parentNode.config.codeName) + } + } + } + + async function readOutputFile(fileName, filePath, productName) { + filePath += '/' + fileName + + let response = await fileStorage.asyncGetTextFile(filePath, true) + + if (response.err.message === 'File does not exist.') { + outputDatasetsMap.set(productName, []) + return + } + if (response.err.result !== global.DEFAULT_OK_RESPONSE.result) { + throw(response.err) + } + outputDatasetsMap.set(productName, JSON.parse(response.text)) + } + + async function writeFiles() { + /* + The output of files which were appended with information during the simulation execution, now needs to be saved. + */ + if (bot.processingDailyFiles) { + await writeDailyFiles() + } else { + await writeMarketFiles() + } + } + + async function writeMarketFiles() { + for (let i = 0; i < outputDatasets.length; i++) { + let outputDatasetNode = outputDatasets[i] + let dataset = outputDatasetNode.referenceParent + + if (dataset.config.type === 'Market Files') { + + let fileName = 'Data.json' + let filePath = bot.filePathRoot + '/Output/' + bot.SESSION.folderName + '/' + dataset.parentNode.config.codeName + '/' + dataset.config.codeName + '/' + timeFrameLabel + + await writeOutputFile(fileName, filePath, dataset.parentNode.config.codeName) + } + } + } + + async function writeDailyFiles() { + for (let i = 0; i < outputDatasets.length; i++) { + let outputDatasetNode = outputDatasets[i] + let dataset = outputDatasetNode.referenceParent + + if (dataset.config.type === 'Daily Files') { + + let dateForPath = tradingProcessDate.getUTCFullYear() + '/' + utilities.pad(tradingProcessDate.getUTCMonth() + 1, 2) + '/' + utilities.pad(tradingProcessDate.getUTCDate(), 2); + let fileName = 'Data.json' + let filePath = bot.filePathRoot + '/Output/' + bot.SESSION.folderName + '/' + dataset.parentNode.config.codeName + '/' + dataset.config.codeName + '/' + timeFrameLabel + "/" + dateForPath + + await writeOutputFile(fileName, filePath, dataset.parentNode.config.codeName) + } + } + } + + async function writeOutputFile(fileName, filePath, productName) { + filePath += '/' + fileName + let fileContent = JSON.stringify(outputDatasetsMap.get(productName)) + + let response = await fileStorage.asyncCreateTextFile(filePath, fileContent) + + if (response.err.result !== global.DEFAULT_OK_RESPONSE.result) { + throw(response.err) + } + } + + } catch (err) { + logger.write(MODULE_NAME, '[ERROR] start -> err = ' + err.stack) + throw(global.DEFAULT_FAIL_RESPONSE) + } + } +} + diff --git a/TaskServer/LowFrequencyTrading/TradingPosition.js b/TaskServer/LowFrequencyTrading/TradingPosition.js new file mode 100644 index 000000000..8476a4685 --- /dev/null +++ b/TaskServer/LowFrequencyTrading/TradingPosition.js @@ -0,0 +1,380 @@ +exports.newTradingPosition = function newTradingPosition(bot, logger, tradingEngineModule) { + /* + This module packages all functions related to Positions. + */ + const MODULE_NAME = 'Trading Position' + let thisObject = { + mantain: mantain, + reset: reset, + cycleBasedStatistics: cycleBasedStatistics, + openPosition: openPosition, + closingPosition: closingPosition, + closePosition: closePosition, + applyStopLossFormula: applyStopLossFormula, + applyTakeProfitFormula: applyTakeProfitFormula, + updateStopLoss: updateStopLoss, + updateTakeProfit: updateTakeProfit, + initialTargets: initialTargets, + updateEnds: updateEnds, + resetTradingEngineDataStructure: resetTradingEngineDataStructure, + updateCounters: updateCounters, + initialize: initialize, + finalize: finalize + } + + let tradingEngine + let tradingSystem + let sessionParameters + + return thisObject + + function initialize() { + tradingSystem = bot.simulationState.tradingSystem + tradingEngine = bot.simulationState.tradingEngine + sessionParameters = bot.SESSION.parameters + } + + function finalize() { + tradingEngine = undefined + tradingSystem = undefined + sessionParameters = undefined + } + + function mantain() { + updateCounters() + updateEnds() + } + + function reset() { + resetTradingEngineDataStructure() + } + + function openPosition(situationName) { + + /* Recording the opening at the Trading Engine Data Structure */ + tradingEngine.current.position.status.value = 'Open' + tradingEngine.current.position.serialNumber.value = tradingEngine.current.episode.episodeCounters.positions.value + 1 + tradingEngine.current.position.identifier.value = global.UNIQUE_ID() + tradingEngine.current.position.begin.value = tradingEngine.current.episode.candle.end.value + tradingEngine.current.position.beginRate.value = tradingEngine.current.episode.candle.close.value + tradingEngine.current.position.positionBaseAsset.beginBalance.value = tradingEngine.current.episode.episodeBaseAsset.balance.value + tradingEngine.current.position.positionQuotedAsset.beginBalance.value = tradingEngine.current.episode.episodeQuotedAsset.balance.value + tradingEngine.current.position.situationName.value = situationName + + /* Initializing Stop and Take Phase */ + tradingEngine.current.position.stopLoss.stopLossPhase.value = 1 + tradingEngine.current.position.takeProfit.takeProfitPhase.value = 1 + + /* Updating Episode Counters */ + tradingEngine.current.episode.episodeCounters.positions.value++ + + /* Inicializing this counter */ + tradingEngine.current.episode.distanceToEvent.takePosition.value = 1 + + /* Remember the balance we had before taking the position to later calculate profit or loss */ + tradingEngine.current.position.positionBaseAsset.beginBalance = tradingEngine.current.episode.episodeBaseAsset.balance.value + tradingEngine.current.position.positionQuotedAsset.beginBalance = tradingEngine.current.episode.episodeQuotedAsset.balance.value + } + + function closingPosition(exitType) { + tradingEngine.current.position.status.value = 'Closing' + tradingEngine.current.position.exitType.value = exitType + } + + function closePosition() { + tradingEngine.current.position.status.value = 'Closed' + tradingEngine.current.position.end.value = tradingEngine.current.episode.candle.end.value + tradingEngine.current.position.endRate.value = tradingEngine.current.episode.candle.close.value + tradingEngine.current.position.positionBaseAsset.endBalance.value = tradingEngine.current.episode.episodeBaseAsset.balance.value + tradingEngine.current.position.positionQuotedAsset.endBalance.value = tradingEngine.current.episode.episodeQuotedAsset.balance.value + + /* + Now that the position is closed, it is the right time to move this position from current to last at the Trading Engine data structure. + */ + tradingEngineModule.cloneValues(tradingEngine.current.position, tradingEngine.last.position) + + cycleBasedStatistics() + + /* Updating Hits & Fails */ + if (tradingEngine.current.position.positionBaseAsset.profitLoss.value > 0) { + tradingEngine.current.episode.episodeBaseAsset.hits.value++ + } + if (tradingEngine.current.position.positionBaseAsset.profitLoss.value < 0) { + tradingEngine.current.episode.episodeBaseAsset.fails.value++ + } + if (tradingEngine.current.position.positionQuotedAsset.profitLoss.value > 0) { + tradingEngine.current.episode.episodeQuotedAsset.hits.value++ + } + if (tradingEngine.current.position.positionQuotedAsset.profitLoss.value < 0) { + tradingEngine.current.episode.episodeQuotedAsset.fails.value++ + } + } + + function applyStopLossFormula(formulas, formulaId) { + tradingEngine.current.position.stopLoss.value = formulas.get(formulaId) + } + + function applyTakeProfitFormula(formulas, formulaId) { + tradingEngine.current.position.takeProfit.value = formulas.get(formulaId) + } + + function updateStopLoss(phase) { + tradingEngine.current.position.stopLoss.stopLossPhase.value = phase + } + + function updateTakeProfit(phase) { + tradingEngine.current.position.takeProfit.takeProfitPhase.value = phase + } + + function initialTargets(tradingSystemStageNode, tradingEngineStageNode) { + + if (tradingSystemStageNode.initialTargets === undefined) { + const message = 'Stage without Initial Targets node. Add one please.' + badDefinitionUnhandledException(undefined, message, tradingSystemStageNode) + } + + setTargetRate() + setTargetSize() + + function setTargetRate() { + if (tradingSystemStageNode.initialTargets.targetRate === undefined) { + const message = 'Target Rate Node not Found. Fix this please.' + badDefinitionUnhandledException(undefined, message, tradingSystemStageNode.initialTargets) + } + if (tradingSystemStageNode.initialTargets.targetRate.formula === undefined) { + const message = 'Formula of Target Rate Node not Found. Fix this please.' + badDefinitionUnhandledException(undefined, message, tradingSystemStageNode.initialTargets.targetRate) + } + + let value = tradingSystem.formulas.get(tradingSystemStageNode.initialTargets.targetRate.formula.id) + if (value === undefined) { + const message = 'Target Rate can not be undefined. Fix this please.' + badDefinitionUnhandledException(undefined, message, tradingSystemStageNode.initialTargets.targetRate.formula) + } + if (isNaN(value)) { + const message = 'Target Rate must be a number. Fix this please.' + badDefinitionUnhandledException(undefined, message, tradingSystemStageNode.initialTargets.targetRate.formula) + } + + switch (tradingSystemStageNode.type) { + case 'Open Stage': { + tradingEngine.current.position.entryTargetRate.value = global.PRECISE(value, 10) + break + } + case 'Close Stage': { + tradingEngine.current.position.exitTargetRate.value = global.PRECISE(value, 10) + break + } + } + } + + function setTargetSize() { + /* Basic Validation */ + if ( + tradingSystemStageNode.initialTargets.targetSizeInBaseAsset !== undefined && + tradingSystemStageNode.initialTargets.targetSizeInQuotedAsset !== undefined + ) { + const message = 'Only Target Size In Base Asset or Target Size In Quoted Asset is allowed. Remove one of them please.' + badDefinitionUnhandledException(undefined, message, tradingSystemStageNode) + } + + /* Position In Base Asset */ + if (tradingSystemStageNode.initialTargets.targetSizeInBaseAsset !== undefined) { + if (tradingSystemStageNode.initialTargets.targetSizeInBaseAsset.formula !== undefined) { + let value = tradingSystem.formulas.get(tradingSystemStageNode.initialTargets.targetSizeInBaseAsset.formula.id) + if (value === undefined) { + const message = 'Target Size In Base Asset cannot be undefined. Fix this please.' + badDefinitionUnhandledException(undefined, message, tradingSystemStageNode.initialTargets.targetSizeInBaseAsset.formula) + } + if (value === undefined) { + const message = 'Target Size In Base Asset cannot be zero. Fix this please.' + badDefinitionUnhandledException(undefined, message, tradingSystemStageNode.initialTargets.targetSizeInBaseAsset.formula) + } + + switch (tradingSystemStageNode.type) { + case 'Open Stage': { + tradingEngine.current.position.positionBaseAsset.entryTargetSize.value = global.PRECISE(value, 10) + tradingEngine.current.position.positionQuotedAsset.entryTargetSize.value = + global.PRECISE(value * tradingEngine.current.position.entryTargetRate.value, 10) + break + } + case 'Close Stage': { + tradingEngine.current.position.positionBaseAsset.exitTargetSize.value = global.PRECISE(value, 10) + tradingEngine.current.position.positionQuotedAsset.exitTargetSize.value = + global.PRECISE(value * tradingEngine.current.position.exitTargetRate.value, 10) + break + } + } + + /* Remember how the end user defined this stage. */ + tradingEngineStageNode.stageDefinedIn.value = 'Base Asset' + } else { + const message = 'You need to specify a Formula for this.' + badDefinitionUnhandledException(undefined, message, tradingSystemStageNode.initialTargets.targetSizeInBaseAsset) + } + } + + /* Position In Quoted Asset */ + if (tradingSystemStageNode.initialTargets.targetSizeInQuotedAsset !== undefined) { + if (tradingSystemStageNode.initialTargets.targetSizeInQuotedAsset.formula !== undefined) { + let value = tradingSystem.formulas.get(tradingSystemStageNode.initialTargets.targetSizeInQuotedAsset.formula.id) + if (value === undefined) { + const message = 'Target Size In Quoted Asset cannot be undefined. Fix this please.' + badDefinitionUnhandledException(undefined, message, tradingSystemStageNode.initialTargets.targetSizeInQuotedAsset.formula) + } + if (value === undefined) { + const message = 'Target Size In Quoted Asset cannot be zero. Fix this please.' + badDefinitionUnhandledException(undefined, message, tradingSystemStageNode.initialTargets.targetSizeInQuotedAsset.formula) + } + switch (tradingSystemStageNode.type) { + case 'Open Stage': { + tradingEngine.current.position.positionQuotedAsset.entryTargetSize.value = global.PRECISE(value, 10) + tradingEngine.current.position.positionBaseAsset.entryTargetSize.value = + global.PRECISE(value / tradingEngine.current.position.entryTargetRate.value, 10) + break + } + case 'Close Stage': { + tradingEngine.current.position.positionQuotedAsset.exitTargetSize.value = global.PRECISE(value, 10) + tradingEngine.current.position.positionBaseAsset.exitTargetSize.value = + global.PRECISE(value / tradingEngine.current.position.exitTargetRate.value, 10) + break + } + } + + /* Remember how the end user defined this stage. */ + tradingEngineStageNode.stageDefinedIn.value = 'Quoted Asset' + } else { + const errorText = 'You need to specify a Formula for this.' + badDefinitionUnhandledException(undefined, message, tradingSystemStageNode.initialTargets.targetSizeInQuotedAsset.formula) + } + } + } + } + + function updateEnds() { + if (tradingEngine.current.position.status.value === 'Open') { + tradingEngine.current.position.end.value = tradingEngine.current.episode.candle.end.value + tradingEngine.current.position.endRate.value = tradingEngine.current.episode.candle.close.value + tradingEngine.current.position.positionBaseAsset.endBalance.value = tradingEngine.current.episode.episodeBaseAsset.balance.value + tradingEngine.current.position.positionQuotedAsset.endBalance.value = tradingEngine.current.episode.episodeQuotedAsset.balance.value + } + } + + function resetTradingEngineDataStructure() { + if (tradingEngine.current.position.status.value === 'Closed') { + tradingEngineModule.initializeNode(tradingEngine.current.position) + } + } + + function updateCounters() { + if (tradingEngine.current.position.status.value === 'Open') { + tradingEngine.current.position.positionCounters.periods.value++ + } + } + + function cycleBasedStatistics() { + + calculateAssetsStatistics() + calculatePositionStatistics() + + function calculateAssetsStatistics() { + /* Profit Loss Calculation */ + tradingEngine.current.position.positionBaseAsset.profitLoss.value = + tradingEngine.current.episode.episodeBaseAsset.balance.value - + tradingEngine.current.position.positionBaseAsset.beginBalance + + tradingEngine.current.position.positionQuotedAsset.profitLoss.value = + tradingEngine.current.episode.episodeQuotedAsset.balance.value - + tradingEngine.current.position.positionQuotedAsset.beginBalance + + tradingEngine.current.position.positionBaseAsset.profitLoss.value = global.PRECISE(tradingEngine.current.position.positionBaseAsset.profitLoss.value, 10) + tradingEngine.current.position.positionQuotedAsset.profitLoss.value = global.PRECISE(tradingEngine.current.position.positionQuotedAsset.profitLoss.value, 10) + + /* ROI Calculation */ + tradingEngine.current.position.positionBaseAsset.ROI.value = + tradingEngine.current.position.positionBaseAsset.profitLoss.value * 100 / + tradingEngine.current.strategyOpenStage.stageBaseAsset.targetSize.value + + tradingEngine.current.position.positionQuotedAsset.ROI.value = + tradingEngine.current.position.positionQuotedAsset.profitLoss.value * 100 / + tradingEngine.current.strategyOpenStage.stageQuotedAsset.targetSize.value + + tradingEngine.current.position.positionBaseAsset.ROI.value = global.PRECISE(tradingEngine.current.position.positionBaseAsset.ROI.value, 10) + tradingEngine.current.position.positionQuotedAsset.ROI.value = global.PRECISE(tradingEngine.current.position.positionQuotedAsset.ROI.value, 10) + + /* Hit Fail Calculation */ + if (tradingEngine.current.position.positionBaseAsset.ROI.value > 0) { + tradingEngine.current.position.positionBaseAsset.hitFail.value = 'Hit' + } + if (tradingEngine.current.position.positionBaseAsset.ROI.value < 0) { + tradingEngine.current.position.positionBaseAsset.hitFail.value = 'Fail' + } + if (tradingEngine.current.position.positionBaseAsset.ROI.value === 0) { + tradingEngine.current.position.positionBaseAsset.hitFail.value = 'Even' + } + if (tradingEngine.current.position.positionQuotedAsset.ROI.value > 0) { + tradingEngine.current.position.positionQuotedAsset.hitFail.value = 'Hit' + } + if (tradingEngine.current.position.positionQuotedAsset.ROI.value < 0) { + tradingEngine.current.position.positionQuotedAsset.hitFail.value = 'Fail' + } + if (tradingEngine.current.position.positionQuotedAsset.ROI.value === 0) { + tradingEngine.current.position.positionQuotedAsset.hitFail.value = 'Even' + } + } + + function calculatePositionStatistics() { + /* Profit Loss Calculation */ + tradingEngine.current.position.positionStatistics.profitLoss.value = + ( + tradingEngine.current.episode.episodeBaseAsset.profitLoss.value * tradingEngine.current.position.endRate.value + + tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value + ) + + tradingEngine.current.position.positionStatistics.profitLoss.value = global.PRECISE(tradingEngine.current.position.positionStatistics.profitLoss.value, 10) + + /* ROI Calculation */ + tradingEngine.current.position.positionStatistics.ROI.value = + ( + tradingEngine.current.position.positionStatistics.profitLoss.value + ) + * 100 / + ( + tradingEngine.current.position.positionBaseAsset.beginBalance * tradingEngine.current.position.beginRate.value + + tradingEngine.current.position.positionQuotedAsset.beginBalance + ) + tradingEngine.current.position.positionStatistics.ROI.value = global.PRECISE(tradingEngine.current.position.positionStatistics.ROI.value, 10) + + /* Hit Fail Calculation */ + if (tradingEngine.current.position.positionStatistics.ROI.value > 0) { + tradingEngine.current.position.positionStatistics.hitFail.value = 'Hit' + } + if (tradingEngine.current.position.positionStatistics.ROI.value < 0) { + tradingEngine.current.position.positionStatistics.hitFail.value = 'Fail' + } + if (tradingEngine.current.position.positionStatistics.ROI.value === 0) { + tradingEngine.current.position.positionStatistics.hitFail.value = 'Even' + } + + /* Days Calculation */ + tradingEngine.current.position.positionStatistics.days.value = + tradingEngine.current.position.positionCounters.periods.value * + sessionParameters.timeFrame.config.value / global.ONE_DAY_IN_MILISECONDS + + tradingEngine.current.position.positionStatistics.days.value = global.PRECISE(tradingEngine.current.position.positionStatistics.days.value, 10) + } + } + + function badDefinitionUnhandledException(err, message, node) { + tradingSystem.errors.push([node.id, message]) + + logger.write(MODULE_NAME, "[ERROR] -> " + message); + logger.write(MODULE_NAME, "[ERROR] -> node.name = " + node.name); + logger.write(MODULE_NAME, "[ERROR] -> node.type = " + node.type); + logger.write(MODULE_NAME, "[ERROR] -> node.config = " + JSON.stringify(node.config)); + if (err !== undefined) { + logger.write(MODULE_NAME, "[ERROR] -> err.stack = " + err.stack); + } + throw 'Please fix the problem and try again.' + } +} \ No newline at end of file diff --git a/TaskServer/LowFrequencyTrading/TradingProcess.js b/TaskServer/LowFrequencyTrading/TradingProcess.js new file mode 100644 index 000000000..bddb9883a --- /dev/null +++ b/TaskServer/LowFrequencyTrading/TradingProcess.js @@ -0,0 +1,786 @@ +exports.newTradingProcess = function newTradingProcess(bot, logger, UTILITIES) { + /* + This Module will load all the process data dependencies from files and send them downstream. + After execution, will save the time range and status report of the process. + */ + const FULL_LOG = true; + const MODULE_NAME = "Trading Process"; + const GMT_SECONDS = ':00.000 GMT+0000'; + + thisObject = { + initialize: initialize, + finalize: finalize, + start: start + }; + + let utilities = UTILITIES.newCloudUtilities(logger); + + let statusDependencies; + let dataDependenciesModule; + let dataFiles = new Map(); + let multiPeriodDataFiles = new Map(); + + const FILE_STORAGE = require('../FileStorage.js'); + let fileStorage = FILE_STORAGE.newFileStorage(logger); + + const TRADING_ENGINE_MODULE = require('./TradingEngine.js') + let tradingEngineModule = TRADING_ENGINE_MODULE.newTradingEngine(bot, logger) + + let TRADING_OUTPUT_MODULE = require("./TradingOutput") + let tradingOutputModule = TRADING_OUTPUT_MODULE.newTradingOutput(bot, logger, tradingEngineModule, UTILITIES, FILE_STORAGE) + + let processConfig; + + return thisObject; + + function initialize(pProcessConfig, pStatusDependencies, pDataDependencies, callBackFunction) { + try { + logger.fileName = MODULE_NAME + logger.initialize() + + statusDependencies = pStatusDependencies + dataDependenciesModule = pDataDependencies + processConfig = pProcessConfig + + tradingOutputModule.initialize() + + callBackFunction(global.DEFAULT_OK_RESPONSE) + + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] initialize -> err = " + err.stack); + callBackFunction(global.DEFAULT_FAIL_RESPONSE); + } + } + + function finalize() { + + tradingEngineModule.finalize() + tradingEngineModule = undefined + + tradingOutputModule.finalize() + tradingOutputModule = undefined + + dataFiles = undefined + multiPeriodDataFiles = undefined + statusDependencies = undefined + dataDependenciesModule = undefined + fileStorage = undefined + processConfig = undefined + thisObject = undefined + } + + async function start(callBackFunction) { + try { + let currentTimeFrame + let currentTimeFrameLabel + + /* Context Variables */ + let contextVariables = { + lastFile: undefined, // Datetime of the last file files sucessfully produced by this process. + dateBeginOfMarket: undefined, // Datetime of the first trade file in the whole market history. + dateEndOfMarket: undefined // Datetime of the last file available to be used as an input of this process. + }; + + getContextVariables() + + if (bot.FIRST_EXECUTION === true && bot.RESUME === false) { + /* + Here is where the Trading Engine and Trading Systems received are moved to the simulation state. + */ + bot.simulationState.tradingEngine = bot.TRADING_ENGINE + bot.simulationState.tradingSystem = bot.TRADING_SYSTEM + } + + /* We set up the Trading Engine Module. */ + tradingEngineModule.initialize() + + /* Initializing the Trading Process Date */ + if (bot.FIRST_EXECUTION === true && bot.RESUME === false) { + /* + This funcion is going to be called many times by the Trading Bot Loop. + Only during the first execution and when the User is not resuming the execution + of a stopped session / task; we are going to initialize the Process Date Time. + This variable tell us which day we are standing at, specially while working + with Daily Files. From this Date is that we are going to load the Daily Files. + */ + bot.simulationState.tradingEngine.current.episode.processDate.value = global.REMOVE_TIME(bot.SESSION.parameters.timeRange.config.initialDatetime).valueOf() + } + + /* + This is the Date that is going to be used across the execution of this Trading Process. + We need this because it has a different life cycle than the processData stored at the + Trading Engine data structure. This date has to remain the same during the whole execution + of the Trading Process until the end, inclusind the writting of Data Ranges and Status Reports. + The processDate of the Trading Engine data structure on the other hand can be changed during + the simulation loop, once we discover that all candles from a certain date have benn processed. + Here is the point where we sync one and the other. + */ + let tradingProcessDate = global.REMOVE_TIME(bot.simulationState.tradingEngine.current.episode.processDate.value) + await processSingleFiles() + + if (await processMarketFiles() === false) { + bot.sessionHeartBeat(undefined, undefined, 'Waiting for Data Mining to be run') + callBackFunction(global.DEFAULT_RETRY_RESPONSE) + return + } + /* + This is the Data Structure used at the Simulation with all indicator data. + We start creating it right here. + */ + let chart = {} + /* + Here we check if we need to get Daily Files or not. As an optimization, when + we are running on a Time Frame of 1hs or above, we are not going to load + dependencies on Daily Files. The way we recognize that is by checking if + we alreaady set a value to currentTimeFrame. We are also not going to loop + through days if we are processing market files. + */ + if (currentTimeFrame) { + /* We are processing Market Files */ + /* + With all the indicators data files loaded, we will build the chart object + data structure that will be used in user-defied conditions and formulas. + */ + bot.sessionHeartBeat(undefined, undefined, 'Waking up') + buildCharts(chart) + + if (checkThereAreCandles(chart) === true) { + bot.sessionHeartBeat(undefined, undefined, 'Running') + await generateOutput(chart) + bot.sessionHeartBeat(undefined, undefined, 'Saving') + await writeProcessFiles() + bot.sessionHeartBeat(undefined, undefined, 'Sleeping') + } else { + bot.sessionHeartBeat(undefined, undefined, 'Waiting for Data Mining to be up to date') + callBackFunction(global.DEFAULT_RETRY_RESPONSE) + return + } + + } else { + /* We are processing Daily Files */ + do { + global.EMIT_SESSION_STATUS(bot.SESSION_STATUS, bot.sessionKey) + /* + We update the Trading Process Date with the date calculated at the simulation. + We will use this date to load indicator and output files. After that we will + use it to save Output Files and later the Data Ranges. This is the point where + the date calculated by the Simulation is applied at the Trading Process Level. + */ + tradingProcessDate = global.REMOVE_TIME(bot.simulationState.tradingEngine.current.episode.processDate.value) + + if (checkStopTaskGracefully() === false) { break } + if (checkStopProcessing() === false) { break } + + bot.sessionHeartBeat(undefined, undefined, 'Waking up') + if (await processDailyFiles() === false) { + bot.sessionHeartBeat(undefined, undefined, 'Waiting for Data Mining to be run') + callBackFunction(global.DEFAULT_RETRY_RESPONSE) + return + } + /* + With all the indicators data files loaded, we will build the chart object + data structure that will be used in user-defied conditions and formulas. + */ + buildCharts(chart) + /* + The process of generating the output includes the trading simulation. + */ + if (checkThereAreCandles(chart) === true) { + bot.sessionHeartBeat(undefined, undefined, 'Running') + await generateOutput(chart) + bot.sessionHeartBeat(undefined, undefined, 'Saving') + await writeProcessFiles() + bot.sessionHeartBeat(undefined, undefined, 'Sleeping') + } else { + bot.sessionHeartBeat(undefined, undefined, 'Waiting for Data Mining to be up to date') + callBackFunction(global.DEFAULT_RETRY_RESPONSE) + return + } + /* + If for any reason the session was stopped, we will break this loop and exit the process. + */ + if (bot.STOP_SESSION === true) { break } + /* + When we get to the end of the market, we need to break this process loop in order + to let time pass, new information be collected from the exchange, new data built + into indicators, and eventually a new execution of this process. + */ + if (checkStopHeadOfTheMarket() === false) { break } + + } + while (true) + } + + checkIfSessionMustStop() + /* + Everything worked as expected. We return an OK code and wait for + the Bot Loop to call us again later. + */ + callBackFunction(global.DEFAULT_OK_RESPONSE) + + function checkThereAreCandles(chart) { + let sessionParameters = bot.SESSION.parameters + let propertyName = 'at' + sessionParameters.timeFrame.config.label.replace('-', '') + let candles = chart[propertyName].candles + + if (candles.length === 0) { + return false + } else { + return true + } + } + + function getContextVariables() { + try { + let thisReport; + let statusReport; + + /* We are going to use the start date as beging of market date. */ + contextVariables.dateBeginOfMarket = global.REMOVE_TIME(bot.SESSION.parameters.timeRange.config.initialDatetime) + /* + Here we get the status report from the bot who knows which is the end of the market. + */ + statusReport = statusDependencies.reportsByMainUtility.get("Market Ending Point") + + if (statusReport === undefined) { // This means the status report does not exist, that could happen for instance at the begining of a month. + logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> Status Report does not exist. Retrying Later. "); + callBackFunction(global.DEFAULT_RETRY_RESPONSE); + return + } + + if (statusReport.status === "Status Report is corrupt.") { + logger.write(MODULE_NAME, "[ERROR] start -> getContextVariables -> Can not continue because dependecy Status Report is corrupt. "); + callBackFunction(global.DEFAULT_RETRY_RESPONSE); + return + } + + thisReport = statusReport.file; + + if (thisReport.lastFile === undefined) { + logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> Undefined Last File. -> thisReport = " + JSON.stringify(thisReport)); + + let customOK = { + result: global.CUSTOM_OK_RESPONSE.result, + message: "Dependency not ready." + } + logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> customOK = " + customOK.message); + callBackFunction(customOK); + return + } + + contextVariables.dateEndOfMarket = new Date(thisReport.lastFile.valueOf()); + + /* Finally we get our own Status Report. */ + statusReport = statusDependencies.reportsByMainUtility.get("Self Reference") + + if (statusReport === undefined) { // This means the status report does not exist, that could happen for instance at the begining of a month. + logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> Status Report does not exist. Retrying Later. "); + callBackFunction(global.DEFAULT_RETRY_RESPONSE); + return + } + + if (statusReport.status === "Status Report is corrupt.") { + logger.write(MODULE_NAME, "[ERROR] start -> getContextVariables -> Can not continue because self dependecy Status Report is corrupt. Aborting Process."); + callBackFunction(global.DEFAULT_FAIL_RESPONSE); + return + } + + thisReport = statusReport.file; + bot.simulationState = thisReport.simulationState; + if (bot.simulationState === undefined) { bot.simulationState = {} } // This should happen only when there is no status report + + if (thisReport.lastFile !== undefined) { + if (bot.RESUME !== true) { + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> Starting from the begining because bot has just started and resume execution was true."); } + startFromBegining(); + return + } + contextVariables.lastFile = new Date(thisReport.lastFile); + return + + } else { + /* + We are here becuse either: + 1. There is no status report + 2. There is no Last File (this happens on Market Files) + */ + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> Starting from the begining of the market because own status report not found or lastFile was undefined."); } + startFromBegining(); + return + } + + function startFromBegining() { + contextVariables.lastFile = new Date(contextVariables.dateBeginOfMarket.getUTCFullYear() + "-" + (contextVariables.dateBeginOfMarket.getUTCMonth() + 1) + "-" + contextVariables.dateBeginOfMarket.getUTCDate() + " " + "00:00" + GMT_SECONDS); + + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> startFromBegining -> contextVariables.lastFile = " + contextVariables.lastFile); } + } + + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] start -> getContextVariables -> err = " + err.stack); + if (err.message === "Cannot read property 'file' of undefined") { + logger.write(MODULE_NAME, "[HINT] start -> getContextVariables -> Check the bot configuration to see if all of its statusDependencies declarations are correct. "); + logger.write(MODULE_NAME, "[HINT] start -> getContextVariables -> Dependencies loaded -> keys = " + JSON.stringify(statusDependencies.keys)); + } + callBackFunction(global.DEFAULT_FAIL_RESPONSE); + } + } + + async function processSingleFiles() { + dataFiles = new Map(); + + for (let dependencyIndex = 0; dependencyIndex < dataDependenciesModule.nodeArray.length; dependencyIndex++) { + let dependency = dataDependenciesModule.nodeArray[dependencyIndex]; + let datasetModule = dataDependenciesModule.dataSetsModulesArray[dependencyIndex]; + + if (datasetModule.node.config.codeName !== "Single-File") { + continue + } + + if (dataDependenciesModule.isItADepenency('atAnyTimeFrame', datasetModule.node.parentNode.config.singularVariableName) !== true) { + continue + } + + let fileName = "Data.json"; + let filePath = datasetModule.node.parentNode.config.codeName + '/' + datasetModule.node.config.codeName; + + /* We cut the async calls via callBacks at this point, so as to have a clearer code upstream */ + let response = await asyncGetDatasetFile(datasetModule, filePath, fileName) + + if (response.err.result !== global.DEFAULT_OK_RESPONSE.result) { + throw (response.err) + } + + let dataFile = JSON.parse(response.text); + dataFiles.set(dependency.id, dataFile); + } + + let mapKey = "Single Files" + multiPeriodDataFiles.set(mapKey, dataFiles) + } + + async function processMarketFiles() { + /* + We do market files first since if the simulation is run on daily files, there will + be a loop to get each of those files and we do not need that loop to reload market files. + + We will iterate through all posible timeFrames. + */ + for (let n = 0; n < global.marketFilesPeriods.length; n++) { + const timeFrame = global.marketFilesPeriods[n][0]; + const timeFrameLabel = global.marketFilesPeriods[n][1]; + + dataFiles = new Map(); + + if (bot.SESSION.parameters.timeFrame.config.label === timeFrameLabel) { + currentTimeFrame = global.marketFilesPeriods[n][0]; + currentTimeFrameLabel = global.marketFilesPeriods[n][1]; + } + for (let dependencyIndex = 0; dependencyIndex < dataDependenciesModule.nodeArray.length; dependencyIndex++) { + let dependency = dataDependenciesModule.nodeArray[dependencyIndex]; + let datasetModule = dataDependenciesModule.dataSetsModulesArray[dependencyIndex]; + + if (dependency.referenceParent.config.codeName !== "Multi-Period-Market") { + continue + } + + if (dataDependenciesModule.isItADepenency(timeFrameLabel, datasetModule.node.parentNode.config.singularVariableName) !== true) { + if (!(bot.SESSION.parameters.timeFrame.config.label === timeFrameLabel && datasetModule.node.parentNode.config.pluralVariableName === 'candles')) { + continue + } + } + + let fileName = "Data.json"; + let filePath = dependency.referenceParent.parentNode.config.codeName + '/' + dependency.referenceParent.config.codeName + "/" + timeFrameLabel; + + /* We cut the async calls via callBacks at this point, so as to have a clearer code upstream */ + let response = await asyncGetDatasetFile(datasetModule, filePath, fileName) + + if (response.err.message === 'File does not exist.') { + return false + } + + if (response.err.result !== global.DEFAULT_OK_RESPONSE.result) { + throw (response.err) + } + + let dataFile = JSON.parse(response.text); + let trimmedDataFile = trimDataFile(dataFile, datasetModule.node.parentNode.record) + dataFiles.set(dependency.id, trimmedDataFile); + + function trimDataFile(dataFile, recordDefinition) { + /* + Here we will discard all the records in a file that are outside of the current time range. + We will include the las element previous to the begining of the time range. This is needed + because during the simulation, the current period is not the open one, but the previous to + the open, and if we do not include the previous to the initial datetime there will be no + current objects at the begining of the simulation for many time frames. + */ + let beginIndex + let endIndex + let result = [] + for (let i = 0; i < recordDefinition.properties.length; i++) { + let property = recordDefinition.properties[i] + if (property.config.codeName === 'begin') { + beginIndex = i + } + if (property.config.codeName === 'end') { + endIndex = i + } + } + for (let i = 0; i < dataFile.length; i++) { + let dataRecord = dataFile[i] + let begin = dataRecord[beginIndex] + let end = dataRecord[endIndex] + if (end + timeFrame < bot.SESSION.parameters.timeRange.config.initialDatetime - 1) { continue } // /1 because we need the previous closed element + if (begin > bot.SESSION.parameters.timeRange.config.finalDatetime) { continue } + result.push(dataRecord) + } + return result + } + } + + let mapKey = global.marketFilesPeriods[n][1]; + multiPeriodDataFiles.set(mapKey, dataFiles) + } + return true + } + + async function processDailyFiles() { + /* Telling the world we are alive and doing well and which date we are processing right now. */ + let processingDateString = tradingProcessDate.getUTCFullYear() + '-' + utilities.pad(tradingProcessDate.getUTCMonth() + 1, 2) + '-' + utilities.pad(tradingProcessDate.getUTCDate(), 2); + bot.processHeartBeat(processingDateString, undefined, "Running...") + + /* + We will iterate through all posible timeFrames. + */ + for (let n = 0; n < global.dailyFilePeriods.length; n++) { + const timeFrame = global.dailyFilePeriods[n][0]; + const timeFrameLabel = global.dailyFilePeriods[n][1]; + + if (processConfig.framework.validtimeFrames !== undefined) { + let validPeriod = false; + for (let i = 0; i < processConfig.framework.validtimeFrames.length; i++) { + let period = processConfig.framework.validtimeFrames[i]; + if (period === timeFrameLabel) { validPeriod = true } + } + if (validPeriod === false) { + continue + } + } + + if (bot.SESSION.parameters.timeFrame.config.label === timeFrameLabel) { + currentTimeFrame = global.dailyFilePeriods[n][0]; + currentTimeFrameLabel = global.dailyFilePeriods[n][1]; + } + + dataFiles = new Map(); + + /* + We will iterate through all dependencies, in order to load the + files that later will end up at the chart data structure. + */ + for (let dependencyIndex = 0; dependencyIndex < dataDependenciesModule.nodeArray.length; dependencyIndex++) { + let dependency = dataDependenciesModule.nodeArray[dependencyIndex]; + let datasetModule = dataDependenciesModule.dataSetsModulesArray[dependencyIndex]; + + if (dependency.referenceParent.config.codeName !== "Multi-Period-Daily") { + continue + } + + if (dataDependenciesModule.isItADepenency(timeFrameLabel, datasetModule.node.parentNode.config.singularVariableName) !== true) { + if (!(bot.SESSION.parameters.timeFrame.config.label === timeFrameLabel && datasetModule.node.parentNode.config.pluralVariableName === 'candles')) { + continue + } + } + + let dateForPath = tradingProcessDate.getUTCFullYear() + '/' + utilities.pad(tradingProcessDate.getUTCMonth() + 1, 2) + '/' + utilities.pad(tradingProcessDate.getUTCDate(), 2); + let filePath + if (dependency.referenceParent.config.codeName === "Multi-Period-Daily") { + filePath = dependency.referenceParent.parentNode.config.codeName + '/' + dependency.referenceParent.config.codeName + "/" + timeFrameLabel + "/" + dateForPath; + } else { + filePath = dependency.referenceParent.parentNode.config.codeName + '/' + dependency.referenceParent.config.codeName + "/" + dateForPath; + } + let fileName = "Data.json"; + + /* We cut the async calls via callBacks at this point, so as to have a clearer code upstream */ + let response = await asyncGetDatasetFile(datasetModule, filePath, fileName) + + if (response.err.message === 'File does not exist.') { + return false + } + if (response.err.result !== global.DEFAULT_OK_RESPONSE.result) { + throw (response.err) + } + + let dataFile = JSON.parse(response.text); + dataFiles.set(dependency.id, dataFile); + } + + let mapKey = global.dailyFilePeriods[n][1]; + multiPeriodDataFiles.set(mapKey, dataFiles) + } + return true + } + + function checkStopHeadOfTheMarket() { + /* + We need to check if we have reached the head of the market in order to know + when to break the Daily Files Process loop and give time for a new candles / + indicators to be built and continue the processing once this process is called + again. + */ + if (bot.simulationState.tradingEngine.current.episode.headOfTheMarket.value === true) { + return false + } + } + + function checkStopTaskGracefully() { + /* Validation that we dont need to stop. */ + if (global.STOP_TASK_GRACEFULLY === true) { + return false + } + } + + function checkStopProcessing() { + /* Validation that we dont need to stop. */ + if (bot.STOP_SESSION === true) { + return false + } + } + + function buildCharts(chart) { + const COMMONS = require('../Commons.js') + let commons = COMMONS.newCommons(bot, logger, UTILITIES, FILE_STORAGE) + + let mainDependency = {} + + /* The first phase here is about checking that we have everything we need at the definition level. */ + let dataDependencies = global.NODE_BRANCH_TO_ARRAY(bot.processNode.referenceParent.processDependencies, 'Data Dependency') + /* + We will filter ourt declared dependencies that are not present in the workspace. + This will allow the user to have less Data Mines loaded at the workspace + that the ones that a Trading Mine depends on. + */ + dataDependencies = global.FILTER_OUT_NODES_WITHOUT_REFERENCE_PARENT_FROM_NODE_ARRAY(dataDependencies) + + if (commons.validateDataDependencies(dataDependencies, callBackFunction) !== true) { return } + + let outputDatasets = global.NODE_BRANCH_TO_ARRAY(bot.processNode.referenceParent.processOutput, 'Output Dataset') + if (commons.validateOutputDatasets(outputDatasets, callBackFunction) !== true) { return } + + /* The second phase is about transforming the inputs into a format that can be used to apply the user defined code. */ + for (let j = 0; j < global.marketFilesPeriods.length; j++) { + let timeFrameLabel = marketFilesPeriods[j][1] + let dataFiles = multiPeriodDataFiles.get(timeFrameLabel) + let products = {} + + if (dataFiles !== undefined) { + commons.inflateDatafiles(dataFiles, dataDependencies, products, mainDependency, currentTimeFrame) + + let propertyName = 'at' + timeFrameLabel.replace('-', '') + chart[propertyName] = products + } + } + + for (let j = 0; j < global.dailyFilePeriods.length; j++) { + let timeFrameLabel = global.dailyFilePeriods[j][1] + let dataFiles = multiPeriodDataFiles.get(timeFrameLabel) + let products = {} + + if (dataFiles !== undefined) { + commons.inflateDatafiles(dataFiles, dataDependencies, products, mainDependency, currentTimeFrame) + + let propertyName = 'at' + timeFrameLabel.replace('-', '') + chart[propertyName] = products + } + } + + /* Single Files */ + let dataFiles = multiPeriodDataFiles.get('Single Files') + let products = {} + + if (dataFiles !== undefined) { + commons.inflateDatafiles(dataFiles, dataDependencies, products, mainDependency, currentTimeFrame) + + let propertyName = 'atAnyTimeFrame' + chart[propertyName] = products + } + } + + async function generateOutput(chart) { + await tradingOutputModule.start( + chart, + currentTimeFrame, + currentTimeFrameLabel, + tradingProcessDate + ) + + /* + From here on, all other loops executions wont be the first execution and also + we will consider that it is not resuming a previous execution as well. + */ + bot.FIRST_EXECUTION = false + bot.RESUME = false + } + + async function writeProcessFiles() { + let outputDatasets = global.NODE_BRANCH_TO_ARRAY(bot.processNode.referenceParent.processOutput, 'Output Dataset') + + await writeTimeFramesFiles(currentTimeFrame, currentTimeFrameLabel) + await writeDataRanges() + + if (currentTimeFrame > global.dailyFilePeriods[0][0]) { + await writeMarketStatusReport(currentTimeFrameLabel) + } else { + await writeDailyStatusReport(currentTimeFrameLabel) + } + + async function writeDataRanges() { + for ( + let outputDatasetIndex = 0; + outputDatasetIndex < outputDatasets.length; + outputDatasetIndex++ + ) { + let productCodeName = outputDatasets[outputDatasetIndex].referenceParent.parentNode.config.codeName; + await writeDataRange(productCodeName); + } + + async function writeDataRange(productCodeName) { + let dataRange = { + begin: contextVariables.dateBeginOfMarket.valueOf(), + end: tradingProcessDate.valueOf() + global.ONE_DAY_IN_MILISECONDS + } + + let fileContent = JSON.stringify(dataRange); + let fileName = '/Data.Range.json'; + let filePath = bot.filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + productCodeName + "/" + 'Multi-Period-Daily' + fileName; + + let response = await fileStorage.asyncCreateTextFile(filePath, fileContent + '\n') + + if (response.err.result !== global.DEFAULT_OK_RESPONSE.result) { + throw (response.err) + } + + /* + Raise the event that the Data Range was Updated. + */ + let key = bot.dataMine + "-" + bot.codeName + "-" + productCodeName + "-" + bot.exchange + "-" + bot.market.baseAsset + '/' + bot.market.quotedAsset + let event = { + dateRange: dataRange + } + + global.EVENT_SERVER_CLIENT.raiseEvent(key, 'Data Range Updated', event) + } + } + + async function writeTimeFramesFiles(currentTimeFrame, currentTimeFrameLabel) { + + for ( + let outputDatasetIndex = 0; + outputDatasetIndex < outputDatasets.length; + outputDatasetIndex++ + ) { + let productCodeName = outputDatasets[outputDatasetIndex].referenceParent.parentNode.config.codeName; + await writeTimeFramesFile(currentTimeFrameLabel, productCodeName, 'Multi-Period-Daily') + await writeTimeFramesFile(currentTimeFrameLabel, productCodeName, 'Multi-Period-Market') + + async function writeTimeFramesFile(currentTimeFrameLabel, productCodeName, processType) { + + let timeFramesArray = [] + timeFramesArray.push(currentTimeFrameLabel) + + let fileContent = JSON.stringify(timeFramesArray) + let fileName = '/Time.Frames.json'; + + let filePath = bot.filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + productCodeName + "/" + processType + fileName; + + let response = await fileStorage.asyncCreateTextFile(filePath, fileContent + '\n') + if (response.err.result !== global.DEFAULT_OK_RESPONSE.result) { + throw (response.err) + } + } + } + } + + async function writeDailyStatusReport(currentTimeFrameLabel) { + let reportKey = bot.dataMine + "-" + bot.codeName + "-" + bot.processNode.referenceParent.config.codeName + let thisReport = statusDependencies.statusReports.get(reportKey) + + thisReport.file.lastExecution = bot.currentDaytime + thisReport.file.lastFile = tradingProcessDate + thisReport.file.simulationState = bot.simulationState + thisReport.file.timeFrames = currentTimeFrameLabel + await thisReport.asyncSave() + } + + async function writeMarketStatusReport(currentTimeFrameLabel) { + let reportKey = bot.dataMine + "-" + bot.codeName + "-" + bot.processNode.referenceParent.config.codeName + let thisReport = statusDependencies.statusReports.get(reportKey); + + thisReport.file.lastExecution = bot.processDatetime + thisReport.file.simulationState = bot.simulationState + thisReport.file.timeFrames = currentTimeFrameLabel + + logger.newInternalLoop(bot.codeName, bot.process, tradingProcessDate) + await thisReport.asyncSave() + } + } + + function checkIfSessionMustStop() { + + if (bot.SESSION.type === 'Backtesting Session') { + /* + Backtests needs only one execution of this process to complete. + */ + if (FULL_LOG === true) { logger.write(MODULE_NAME, '[IMPORTANT] checkIfSessionMustStop -> Backtesting Session Finished. Stopping the Session now. ') } + bot.SESSION.stop('Backtesting Session Finished.') + } + } + } + catch (err) { + /* An unhandled exception occured. in this case we return Fail and log the stack. */ + if (err.stack) { + logger.write(MODULE_NAME, "[ERROR] start -> Unhandled Exception. Will Abort this process. err = " + err.stack); + callBackFunction(global.DEFAULT_FAIL_RESPONSE); + return + } + + /* Some expected file was not found. We will return a RETRY code and move on. */ + if ((err.result === "Fail Because" && err.message === "File does not exist.") || err.code === 'The specified key does not exist.') { + logger.write(MODULE_NAME, "[ERROR] File not Found. Will Retry the Process Loop.") + callBackFunction(global.DEFAULT_RETRY_RESPONSE); + return + } + + /* Some other handled exception occured. We return Fail and move on. */ + if (err.result !== global.DEFAULT_OK_RESPONSE.result) { + logger.write(MODULE_NAME, "[ERROR] start -> Handled Exception. Will Abort this process. err = " + err.message); + callBackFunction(global.DEFAULT_FAIL_RESPONSE); + return + } + } + } + + function pad(str, max) { + str = str.toString(); + return str.length < max ? pad(" " + str, max) : str; + } + + async function asyncGetDatasetFile(datasetModule, filePath, fileName) { + + let promise = new Promise((resolve, reject) => { + + datasetModule.getTextFile(filePath, fileName, onFileReceived); + function onFileReceived(err, text) { + + let response = { + err: err, + text: text + } + resolve(response) + } + }); + + return promise + } +} diff --git a/TaskServer/LowFrequencyTrading/TradingRecords.js b/TaskServer/LowFrequencyTrading/TradingRecords.js new file mode 100644 index 000000000..f3de8553c --- /dev/null +++ b/TaskServer/LowFrequencyTrading/TradingRecords.js @@ -0,0 +1,393 @@ +exports.newTradingRecords = function newTradingRecords(bot, logger) { + /* + This module facilitates the appending of records to the output of the process. + */ + const MODULE_NAME = 'Trading Records' + + let thisObject = { + appendRecords: appendRecords, + initialize: initialize, + finalize: finalize + } + + let tradingEngine + let tradingSystem + let sessionParameters + let outputDatasetsMap + + return thisObject + + function initialize(pOutputDatasetsMap) { + tradingEngine = bot.simulationState.tradingEngine + tradingSystem = bot.simulationState.tradingSystem + sessionParameters = bot.SESSION.parameters + outputDatasetsMap = pOutputDatasetsMap // These are the files turned into arrays, stored in a Map by Product codeName. + } + + function finalize() { + tradingEngine = undefined + tradingSystem = undefined + sessionParameters = undefined + outputDatasetsMap = undefined + } + + function appendRecords() { + /* + Here we add records to the output files. At the product config property nodePath + we have a pointer to the node that have the information we need to extract. + Later, based on the product record definition we will extract each individual value. + */ + let outputDatasets = global.NODE_BRANCH_TO_ARRAY(bot.processNode.referenceParent.processOutput, 'Output Dataset') + + for (let i = 0; i < outputDatasets.length; i++) { + let outputDatasetNode = outputDatasets[i] + let dataset = outputDatasetNode.referenceParent + let product = dataset.parentNode + let outputDatasetArray = outputDatasetsMap.get(product.config.codeName) + + if (bot.processingDailyFiles === true && dataset.config.type === 'Daily Files') { + persistRecords() + } + + if (bot.processingDailyFiles === false && dataset.config.type === 'Market Files') { + persistRecords() + } + + function persistRecords() { + /* + There are a few products configured to be saved only at an specific cycle. + */ + if (product.config.saveAtCycle !== undefined) { + if (tradingEngine.current.episode.cycle.value !== product.config.saveAtCycle) { + return + } + } + + /* Clean the file from information of previous executions */ + //pruneOutputFile(product, outputDatasetArray, tradingEngine.current.episode.candle.end.value) + + /* Clean Open Records */ + if (product.config.saveAsObjects === true) { + for (let j = 0; j < product.record.properties.length; j++) { + let recordProperty = product.record.properties[j] + if (recordProperty.config.codeName === product.config.propertyNameThatDefinesObject) { + /* Remove Open Records */ + spliceOpenRecords(j, product, outputDatasetArray) + break + } + } + } + + /* + The product root can be a node or a node property of type array. + */ + let productRoot + try { + productRoot = eval(product.config.nodePath) + } catch (err) { + badDefinitionUnhandledException(err, 'Cannot get productRoot -> nodePath = ' + product.config.nodePath, product, undefined) + } + + if (product.config.nodePathType === 'array') { + /* + This means that the configured nodePath is not pointing to a node, but to a node property that is an array. + For that reason we will assume that each element of the array is a record to be outputed + */ + for (let index = 0; index < productRoot.length; index++) { + /* + The Product Root Node is the root of the node hiriarchy from where we are going to extract the record values. + */ + let productRootNode = productRoot[index] + let record = scanRecordDefinition(product, productRootNode, index) + if (record !== undefined) { + /* + We will add the index value to the record itself, so that the plotter can know to which + brach of the trading engine data structure it belongs. + */ + record.push(index) + persistIndividualRecord(record, product, outputDatasetArray) + } + } + } else { + /* + This means that the configured nodePath points to a single node, which is the one whose children constitutes + the record to be saved at the output file. + */ + /* + The Product Root Node is the root of the node hiriarchy from where we are going to extract the record values. + */ + let productRootNode = productRoot + let record = scanRecordDefinition(product, productRootNode) + if (record !== undefined) { + persistIndividualRecord(record, product, outputDatasetArray) + } + } + } + } + + function scanRecordDefinition(product, productRootNode, index) { + + let record = [] + for (let j = 0; j < product.record.properties.length; j++) { + let recordProperty = product.record.properties[j] + /* + The Property Root Node is the Root of the Hiriarchy branch we must find in order + to get the node where we are going to extract the value. Initially + we point it to the Product Root Node, because that is the default in case + a property does not have at its configuration a different nodePath configured + pointing to an specific Root for the property. + */ + let propertyRootNode = productRootNode + /* + If we find at the configuration a nodePath, then we take this path to find + the Root Node specifically for this property only. + */ + if (recordProperty.config.nodePath !== undefined) { + try { + propertyRootNode = eval(recordProperty.config.nodePath) + } catch (err) { + badDefinitionUnhandledException(err, 'Error Evaluation Record Property nodePath -> nodePath = ' + recordProperty.config.nodePath, product, recordProperty) + } + } + /* + The Target Node is the node from where we are going to exctract the value. + We will use the codeName of the Record Property to match it with + the any of the properties of the Root Node to get the Target Node. + */ + let targetNode + try { + targetNode = propertyRootNode[recordProperty.config.codeName] + } catch (err) { + badDefinitionUnhandledException(err, 'Error setting Target Node.', product, recordProperty) + } + /* + If the codeName of the Record Property can not match the name of the property at + the target node, the user can explicitly specify the property name at the configuration, + and in those cases we need to use that. This happens when there are many Record Properties + pointing to the same property at the Target Node. + */ + if (recordProperty.config.childProperty !== undefined) { + targetNode = propertyRootNode[recordProperty.config.childProperty] + } + /* + It can happen that intead of having a Node in targetNode what we have is an + array of nodes. We need to pick one of the elements of the array and for that + we use the Index value we find at the configuration of the Record Property. + */ + if (recordProperty.config.index !== undefined) { + try { + targetNode = targetNode[recordProperty.config.index] + } catch (err) { + badDefinitionUnhandledException(err, 'Error setting Target Node.', product, recordProperty) + } + } + /* + By Default the value is extracted from the value property of the Target Node. + But it might happen the the Target Node does not exist for example when there is an Array + of Nodes defined in the Record Properties but not all of them exist at the Root Node. + We filter out those cases by not extracting the value from the value property. + */ + let value = 0 // This is a default value, since we do not want null in files because it breakes JSON format. + if (targetNode !== undefined) { + if (targetNode.type !== undefined) { + /* + In this case the Target Node is really a node (since it has a type), so we extract the value + from its value property. + */ + value = targetNode.value + + if (recordProperty.config.decimals !== undefined) { + try { + value = Number(value.toFixed(recordProperty.config.decimals)) + } catch (err) { + badDefinitionUnhandledException(err, 'Error applying configured decimals.', product, recordProperty) + } + } + } else { + /* + In this case the Target Node is not really node, but the value itself. Se we return this as the + value of the Record Property. + */ + value = targetNode + } + } + + /* We are not going to add records where the begin or end are missing */ + if ( + recordProperty.config.codeName === 'begin' && value === 0 || + recordProperty.config.codeName === 'end' && value === 0 + ) { return } + + if (recordProperty.config.isString !== true && Array.isArray(value) !== true) { + value = safeNumericValue(value) + } + if (recordProperty.config.isString === true && Array.isArray(value) !== true) { + value = safeStringValue(value) + } + record.push(value) + } + return record + } + + function persistIndividualRecord(record, product, outputDatasetArray) { + + if (product.config.saveAsObjects === true) { + /* For saving objects we need to take care of a different set of rules. */ + for (let j = 0; j < product.record.properties.length; j++) { + let recordProperty = product.record.properties[j] + if (recordProperty.config.codeName === product.config.propertyNameThatDefinesObject) { + let propertyValue = record[j] + + if (bot.processingDailyFiles) { + if (product.config.doNotCutObjectInDays !== true) { + /* + By default we will cut objects in days. + */ + if (propertyValue !== product.config.propertyValueThatPreventsSavingObject) { + outputDatasetArray.push(record) + } + } else { + /* + When dealing with Daily Files, we need to avoid to write an open object at the last 'candle' of the day, + since the object will be duplicated on the next day. How do we know we are positioned at the last candle + of the day? Easy: the end of the candle must be 1 millisecod before the next day. That happens at any + time frame. + */ + let currentDay = new Date(tradingEngine.current.episode.candle.end.value) + let nextDay = new Date(tradingEngine.current.episode.candle.end.value + 1) + if (currentDay.getUTCDate() !== nextDay.getUTCDate()) { + /* + We will save the object only if it is closed, becasuse we are at the last candle of the day. + */ + if (propertyValue === product.config.propertyValueThatClosesObject) { + outputDatasetArray.push(record) + } + } else { + /* + When we are not at the end of the day, we will save the object normally, like in market files. + */ + if (propertyValue !== product.config.propertyValueThatPreventsSavingObject) { + outputDatasetArray.push(record) + } + } + } + } + else { + /* + For Market Files we will add a record everytime that proeprty value does not match this + */ + if (propertyValue !== product.config.propertyValueThatPreventsSavingObject) { + outputDatasetArray.push(record) + } + } + break + } + } + } else { + /* When we are not dealing with objects, we add every record to the existing file. */ + outputDatasetArray.push(record) + } + } + + function safeNumericValue(value) { + /* + The purpose of this function is to check that value variable does not have a value that + will later break the JSON format of files where this is going to be stored at. + */ + if (value === Infinity) { + value = Number.MAX_SAFE_INTEGER + } + if (value === undefined) { + value = 0 + } + if (value === null) { + value = 0 + } + if (isNaN(value)) { + value = 0 + } + return value + } + + function safeStringValue(value) { + /* + The purpose of this function is to check that value variable does not have a value that + will later break the JSON format of files where this is going to be stored at. + */ + if (value === undefined) { + value = '' + } + if (value === null) { + value = '' + } + return value + } + + function pruneOutputFile(product, outputFile, currentEnd) { + if (outputFile.isPrunned === true) { return } + /* + When a session is resumed, we will be potentially reading output files belonging to a previous session execution. + For that reason we need to prune all the records that are beyond the current candle. We do not delete everything + because we might be resuming a stopped session, which is fine. + */ + for (let i = 0; i < outputFile.length; i++) { + let record = outputFile[i] + + for (let j = 0; j < product.record.properties.length; j++) { + let recordProperty = product.record.properties[j] + if (recordProperty.config.codeName === 'end') { + let end = record[j] + if (end >= currentEnd) { + outputFile.splice(i, 1) + /* + This will execute the next prune call in the next iteration of the NodeJs event loop + allowing for other callbacks to be executed. It also prevents the error + 'Maximum call stack size exceeded', since the call is not placed at the call stack. + */ + setImmediate(pruneOutputFile, product, outputFile, currentEnd) + return + } + } + } + } + outputFile.isPrunned = true + } + + function spliceOpenRecords(j, product, outputDatasetArray) { + /* + Before adding records to the output file, we need to remove all open records, + because we will be adding the same records later with potentially + new or updated information. + */ + + for (let i = 0; i < outputDatasetArray.length; i++) { + let dataRecord = outputDatasetArray[i] + if (dataRecord !== undefined) { + let dataRecordValue = dataRecord[j] + if (dataRecordValue !== product.config.propertyValueThatClosesObject) { + outputDatasetArray.splice(i, 1) + spliceOpenRecords(j, product, outputDatasetArray) + return + } + } + } + } + } + + function badDefinitionUnhandledException(err, message, product, recordProperty) { + logger.write(MODULE_NAME, "[ERROR] appendRecords -> " + message); + logger.write(MODULE_NAME, "[ERROR] appendRecords -> product.name = " + product.name); + logger.write(MODULE_NAME, "[ERROR] appendRecords -> product.config = " + JSON.stringify(product.config)); + + if (recordProperty) { + logger.write(MODULE_NAME, "[ERROR] appendRecords -> recordProperty.name = " + recordProperty.name); + logger.write(MODULE_NAME, "[ERROR] appendRecords -> recordProperty.config.codeName = " + recordProperty.config.codeName); + logger.write(MODULE_NAME, "[ERROR] appendRecords -> recordProperty.config = " + JSON.stringify(recordProperty.config)); + } + + if (err) { + logger.write(MODULE_NAME, "[ERROR] appendRecords -> err.stack = " + err.stack); + } + throw 'Can not continue with a Definition Error like this.' + } +} \ No newline at end of file diff --git a/TaskServer/LowFrequencyTrading/TradingSimulation.js b/TaskServer/LowFrequencyTrading/TradingSimulation.js new file mode 100644 index 000000000..186f2872e --- /dev/null +++ b/TaskServer/LowFrequencyTrading/TradingSimulation.js @@ -0,0 +1,541 @@ +exports.newTradingSimulation = function newTradingSimulation(bot, logger, tradingEngineModule, UTILITIES) { + /* + This Module represents the trading simulacion. Escentially a loop through a set of candles and + the execution at each loop cycle of the Trading System Protocol. + */ + const FULL_LOG = true + const MODULE_NAME = 'Trading Simulation -> ' + bot.SESSION.name + + let thisObject = { + finalize: finalize, + runSimulation: runSimulation + } + + let utilities = UTILITIES.newCloudUtilities(bot, logger) + + return thisObject + + function finalize() { + thisObject = undefined + } + + async function runSimulation( + chart, + outputDatasetsMap, + writeFiles, + ) { + try { + + let tradingSystem = bot.simulationState.tradingSystem + let tradingEngine = bot.simulationState.tradingEngine + let sessionParameters = bot.SESSION.parameters + + if (FULL_LOG === true) { logger.write(MODULE_NAME, '[INFO] runSimulation -> initialDatetime = ' + sessionParameters.timeRange.config.initialDatetime) } + if (FULL_LOG === true) { logger.write(MODULE_NAME, '[INFO] runSimulation -> finalDatetime = ' + sessionParameters.timeRange.config.finalDatetime) } + + /* These are the Modules we will need to run the Simulation */ + const TRADING_RECORDS_MODULE = require('./TradingRecords.js') + let tradingRecordsModule = TRADING_RECORDS_MODULE.newTradingRecords(bot, logger) + tradingRecordsModule.initialize(outputDatasetsMap) + + const TRADING_SYSTEM_MODULE = require('./TradingSystem.js') + let tradingSystemModule = TRADING_SYSTEM_MODULE.newTradingSystem(bot, logger, tradingEngineModule) + tradingSystemModule.initialize() + + const TRADING_EPISODE_MODULE = require('./TradingEpisode.js') + let tradingEpisodeModule = TRADING_EPISODE_MODULE.newTradingEpisode(bot, logger, tradingEngineModule) + tradingEpisodeModule.initialize() + + /* Setting up the candles array: The whole simulation is based on the array of candles at the time-frame defined at the session parameters. */ + let propertyName = 'at' + sessionParameters.timeFrame.config.label.replace('-', '') + let candles = chart[propertyName].candles + + /* Variables needed for heartbeat functionality */ + let heartBeatDate + let previousHeartBeatDate + let firstLoopExecution = true + /* + Estimation of the Initial Candle to Process in this Run. + */ + let initialCandle + if (bot.FIRST_EXECUTION === true && bot.RESUME === false) { + /* Estimate Initial Candle based on the timeRage configured for the session. */ + let firstEnd = candles[0].end + let targetEnd = sessionParameters.timeRange.config.initialDatetime + let diff = targetEnd - firstEnd + let amount = diff / sessionParameters.timeFrame.config.value + + initialCandle = Math.trunc(amount) + if (initialCandle < 0) { initialCandle = 0 } + if (initialCandle > candles.length - 1) { + /* + This will happen when the sessionParameters.timeRange.config.initialDatetime is beyond the last candle available, + meaning that the dataSet needs to be updated with more up-to-date data. + */ + bot.SESSION.stop('Data is not up-to-date enough. Please start the Masters Data Mining Operation.') + if (FULL_LOG === true) { logger.write(MODULE_NAME, '[IMPORTANT] runSimulation -> Data is not up-to-date enough. Stopping the Session now. ' ) } + return + } + } else { + + /* + In this case we already have at the last candle index the next candle to be + processed. We will just continue with this candle. + */ + initialCandle = tradingEngine.current.episode.candle.index.value + } + /* + Main Simulation Loop + */ + /* We are going to use this to exit the loop if needed. */ + let breakLoop = false + + /* + We will assume that we are at the head of the market here. We do this + because the loop could be empty and no validation is going to run. If the + loop is not empty, then the lascCandle() check will override this value + depending on if we really are at the head of the market or not. + */ + tradingEngine.current.episode.headOfTheMarket.value = true + /* + This is the main simulation loop. It will go through the initial candle + until one less than the last candle available. We will never process the last + candle available since it is not considered a closed candle, but a candle + that still can change. So effectively will be processing all closed candles. + */ + for (let i = initialCandle; i < candles.length - 1; i++) { + tradingEngine.current.episode.candle.index.value = i + + /* This is the current candle the Simulation is working at. */ + let candle = candles[tradingEngine.current.episode.candle.index.value] + + if (FULL_LOG === true) { logger.write(MODULE_NAME, '[INFO] runSimulation -> loop -> Candle Begin @ ' + (new Date(candle.begin)).toLocaleString()) } + if (FULL_LOG === true) { logger.write(MODULE_NAME, '[INFO] runSimulation -> loop -> Candle End @ ' + (new Date(candle.end)).toLocaleString()) } + + tradingEngineModule.setCurrentCandle(candle) // We move the current candle we are standing at, to the trading engine data structure to make it available to anyone, including conditions and formulas. + + /* We emit a heart beat so that the UI can now where we are at the overal process.*/ + heartBeat() + + if (firstLoopExecution === true) { + tradingEpisodeModule.openEpisode() + firstLoopExecution = false + } + + if (checkInitialDatetime() === false) { + if (FULL_LOG === true) { logger.write(MODULE_NAME, '[INFO] runSimulation -> loop -> Candle Before the Initia Date Time @ ' + (new Date(candle.begin)).toLocaleString()) } + continue + } + + positionChartAtCurrentCandle() + + /* The chart was recalculated based on the current candle. */ + tradingSystemModule.updateChart(chart) + + /* + Do the stuff needed previous to the run like + Episode Counters and Statistics update. Mantaince is done + once per simulation candle. + */ + tradingSystemModule.mantain() + tradingEpisodeModule.mantain() + tradingEngineModule.mantain() + + /* + Run the first cycle of the Trading System. In this first cycle we + give some room so that orders can be canceled or filled and we can + write those records into the output memory. During this cycle new + orders can not be created, since otherwise the could be cancelled at + the second cycle without spending real time at the order book. + */ + tradingEngineModule.setCurrentCycle('First') + await runCycle() + + /* + We check if we need to stop before appending the records so that the stop + reason is also propery recorded. Note also that we check this after the first + cycle, where orders have not been submitted to the exchange yet, but we + had the chance to check for the status of placed orders or even cancel + the ones that needed cancellation. + */ + checkIfWeNeedToStopBetweenCycles() + + /* Add new records to the process output */ + tradingRecordsModule.appendRecords() + + if (breakLoop === true) { break } + /* + Run the second cycle of the Trading System. During this second run + some new orders might be created at slots freed up during the first + run. This allows for example for a Limit Order to be cancelled during the + first run, and the same Limit Order definition to spawn a new order + without the need to wait until the next candle. Orders can not be cancelled + during the second cycle. + */ + tradingEngineModule.setCurrentCycle('Second') + await runCycle() + + checkIfWeNeedToStopAfterBothCycles() + + /* Add new records to the process output */ + tradingRecordsModule.appendRecords() + + if (breakLoop === true) { break } + + async function runCycle() { + /* Reset Data Structures */ + tradingSystemModule.reset() + tradingEpisodeModule.reset() + tradingEngineModule.reset() + + let infoMessage = 'Processing candle # ' + tradingEngine.current.episode.candle.index.value + ' @ the ' + tradingEngine.current.episode.cycle.value + ' cycle.' + if (FULL_LOG === true) { logger.write(MODULE_NAME, '[INFO] runSimulation -> loop -> ' + infoMessage) } + tradingSystem.infos.push([tradingSystem.id, infoMessage]) + + await tradingSystemModule.run() + } + + function checkIfWeNeedToStopBetweenCycles() { + if (bot.STOP_SESSION === true) { + if (FULL_LOG === true) { logger.write(MODULE_NAME, '[INFO] runSimulation -> controlLoop -> We are going to stop here bacause we were requested to stop processing this session.') } + updateEpisode('Session Stopped') + breakLoop = true + return + } + + if (global.STOP_TASK_GRACEFULLY === true) { + if (FULL_LOG === true) { logger.write(MODULE_NAME, '[INFO] runSimulation -> controlLoop -> We are going to stop here bacause we were requested to stop processing this task.') } + updateEpisode('Task Stopped') + breakLoop = true + return + } + + if (checkFinalDatetime() === false) { + closeEpisode('Final Datetime Reached') + breakLoop = true + bot.SESSION.stop('Final Datetime Reached') + if (FULL_LOG === true) { logger.write(MODULE_NAME, '[IMPORTANT] runSimulation -> Final Datetime Reached. Stopping the Session now. ' ) } + return + } + + if (checkMinimunAndMaximunBalance() === false) { + closeEpisode('Min or Max Balance Reached') + breakLoop = true + bot.SESSION.stop('Min or Max Balance Reached') + if (FULL_LOG === true) { logger.write(MODULE_NAME, '[IMPORTANT] runSimulation -> Min or Max Balance Reached. Stopping the Session now. ' ) } + return + } + } + + function checkIfWeNeedToStopAfterBothCycles() { + if (checkNextCandle() === false) { + updateEpisode('All Candles Processed') + breakLoop = true + return + } + } + } + + tradingSystemModule.finalize() + tradingRecordsModule.finalize() + tradingEpisodeModule.finalize() + + tradingSystemModule = undefined + tradingRecordsModule = undefined + tradingEpisodeModule = undefined + + await writeFiles() + + function closeEpisode(exitType) { + tradingEpisodeModule.updateExitType(exitType) + tradingEpisodeModule.closeEpisode() + } + + function updateEpisode(exitType) { + tradingEpisodeModule.updateExitType(exitType) + } + + function heartBeat() { + let hartbeatText = '' + if (sessionParameters.heartbeats !== undefined) { + if (sessionParameters.heartbeats.config.date === true || sessionParameters.heartbeats.config.candleIndex === true) { + /* We will produce a simulation level heartbeat in order to inform the user this is running. */ + + heartBeatDate = new Date(Math.trunc(tradingEngine.current.episode.candle.begin.value / global.ONE_DAY_IN_MILISECONDS) * global.ONE_DAY_IN_MILISECONDS) + + let fromDate = new Date(sessionParameters.timeRange.config.initialDatetime) + let lastDate = new Date(sessionParameters.timeRange.config.finalDatetime) + + let currentDateString = heartBeatDate.getUTCFullYear() + '-' + utilities.pad(heartBeatDate.getUTCMonth() + 1, 2) + '-' + utilities.pad(heartBeatDate.getUTCDate(), 2) + let currentDate = new Date(heartBeatDate) + let percentage = global.getPercentage(fromDate, currentDate, lastDate) + + /* + Theere are a few tasks that we need to do only when the date changes, + otherwise it would be suboptimal. + */ + if (heartBeatDate.valueOf() !== previousHeartBeatDate) { + previousHeartBeatDate = heartBeatDate.valueOf() + + let processingDate = heartBeatDate.getUTCFullYear() + '-' + utilities.pad(heartBeatDate.getUTCMonth() + 1, 2) + '-' + utilities.pad(heartBeatDate.getUTCDate(), 2) + + if (FULL_LOG === true) { logger.write(MODULE_NAME, '[INFO] runSimulation -> loop -> Simulation ' + bot.sessionKey + ' Loop # ' + tradingEngine.current.episode.candle.index.value + ' @ ' + processingDate) } + + /* Logging to console and disk */ + if (global.areEqualDates(currentDate, new Date()) === false) { + logger.newInternalLoop(bot.codeName, bot.process, currentDate, percentage) + } + + /* Date only hearbeat */ + if (sessionParameters.heartbeats.config.date === true && sessionParameters.heartbeats.config.candleIndex === false) { + hartbeatText = hartbeatText + currentDateString + bot.processHeartBeat(hartbeatText, percentage) + return + } + } + + /* + When the Candle Index nees to be shown, then we can not send the hearbet + only when the dates changes, we have to send it for every candle. + It might also contain the date information. + */ + if (sessionParameters.heartbeats.config.candleIndex === true ) { + if (sessionParameters.heartbeats.config.date === true ) { + hartbeatText = hartbeatText + currentDateString + } + hartbeatText = hartbeatText + ' Candle # ' + tradingEngine.current.episode.candle.index.value + bot.processHeartBeat(hartbeatText, percentage) + } + } + } + } + + function positionChartAtCurrentCandle() { + /* + In conditions and Formulas, we want users to have an easy sintax to refer to indicators. In order to achieve that, we need the user to have + easy access to the current candle for instance, or the current bollinger band, meaning the one the Simulation is currently standing at. + For that reason we do the following processing, to have at the chart data structure the current objects of each indicator / time frame. + */ + let dataDependencies = global.NODE_BRANCH_TO_ARRAY(bot.processNode.referenceParent.processDependencies, 'Data Dependency') + dataDependencies = global.FILTER_OUT_NODES_WITHOUT_REFERENCE_PARENT_FROM_NODE_ARRAY(dataDependencies) + + /* Finding the Current Element on Market Files */ + if (bot.processingDailyFiles) { + for (let j = 0; j < global.dailyFilePeriods.length; j++) { + let mapKey = dailyFilePeriods[j][1] + let propertyName = 'at' + mapKey.replace('-', '') + let thisChart = chart[propertyName] + + for (let k = 0; k < dataDependencies.length; k++) { + let dataDependencyNode = dataDependencies[k] + if (dataDependencyNode.referenceParent.config.codeName !== 'Multi-Period-Daily') { continue } + let singularVariableName = dataDependencyNode.referenceParent.parentNode.config.singularVariableName + let pluralVariableName = dataDependencyNode.referenceParent.parentNode.config.pluralVariableName + if (thisChart[pluralVariableName] !== undefined) { + let currentElement = getElement(thisChart[pluralVariableName], 'Daily' + '-' + mapKey + '-' + pluralVariableName) + if (currentElement !== undefined) { + thisChart[singularVariableName] = currentElement + } + } + } + } + } + + /* Finding the Current Element on Market Files */ + for (let j = 0; j < global.marketFilesPeriods.length; j++) { + let mapKey = marketFilesPeriods[j][1] + let propertyName = 'at' + mapKey.replace('-', '') + let thisChart = chart[propertyName] + + for (let k = 0; k < dataDependencies.length; k++) { + let dataDependencyNode = dataDependencies[k] + if (dataDependencyNode.referenceParent.config.codeName !== 'Multi-Period-Market') { continue } + let singularVariableName = dataDependencyNode.referenceParent.parentNode.config.singularVariableName + let pluralVariableName = dataDependencyNode.referenceParent.parentNode.config.pluralVariableName + if (thisChart[pluralVariableName] !== undefined) { + let currentElement = getElement(thisChart[pluralVariableName], 'Market' + '-' + mapKey + '-' + pluralVariableName) + if (currentElement !== undefined) { + thisChart[singularVariableName] = currentElement + } + } + } + } + + /* Finding the Current Element At Single Files*/ + let propertyName = 'atAnyTimeFrame' + let thisChart = chart[propertyName] + + for (let k = 0; k < dataDependencies.length; k++) { + let dataDependencyNode = dataDependencies[k] + if (dataDependencyNode.referenceParent.config.codeName !== 'Single-File') { continue } + let singularVariableName = dataDependencyNode.referenceParent.parentNode.config.singularVariableName + let pluralVariableName = dataDependencyNode.referenceParent.parentNode.config.pluralVariableName + let elementArray = thisChart[pluralVariableName] + let currentElement + if (elementArray !== undefined) { + currentElement = elementArray[elementArray.length - 1] + } + thisChart[singularVariableName] = currentElement + } + } + + function getElement(pArray, datasetName) { + if (pArray === undefined) { return } + try { + let element + for (let i = 0; i < pArray.length; i++) { + element = pArray[i] + + if (tradingEngine.current.episode.candle.end.value === element.end) { // when there is an exact match at the end we take that element + return element + } else { + if ( + i > 0 && + element.end > tradingEngine.current.episode.candle.end.value + ) { + let previousElement = pArray[i - 1] + if (previousElement.end < tradingEngine.current.episode.candle.end.value) { + return previousElement // If one elements goes into the future of currentCandle, then we stop and take the previous element. + } else { + return + } + } + } + } + return + } catch (err) { + logger.write(MODULE_NAME, '[ERROR] runSimulation -> getElement -> datasetName = ' + datasetName) + logger.write(MODULE_NAME, '[ERROR] runSimulation -> getElement -> err = ' + err.stack) + throw (global.DEFAULT_FAIL_RESPONSE) + } + } + + function checkNextCandle() { + /* + We need to check that the candle we have just processed it is not the last candle. + The candle at the head of the market is already skipped from the loop because it has not closed yet. + Note: for Daily Files, this means that the last candle of each day will never be processed. + + The first +1 is because array indexes are based on 0. + The second +1 is because we need to compare the next candle (remember that the loops allways avoid the + last candle of the dataset available.) + */ + if (tradingEngine.current.episode.candle.index.value + 1 + 1 === candles.length ) { + /* + When processing daily files, we need a mechanism to turn from one day to the next one. + That mechanism is the one implemented here. If we detect that the next candle is the last candle of + the day, we will advance current process day one day. By doing so, during the next execution, the + simulation will receive the candles and indicators files of the next day. + */ + let candlesPerDay = global.ONE_DAY_IN_MILISECONDS / sessionParameters.timeFrame.config.value + if ( + bot.processingDailyFiles && + tradingEngine.current.episode.candle.index.value + 1 + 1 === candlesPerDay + ) { + /* + Here we found that the next candle of the dataset is the last candle of the day. + It is time to move to the next day so as to receive at the next execution, the indicator files from + the next day. At the same time we will reset the index to be pointing to + the first candle of the new dataset we shall receive. The first candle of the next day starts + at index 0, so we will position the index now at zero. + */ + tradingEngine.current.episode.candle.index.value = 0 + tradingEngine.current.episode.processDate.value = + tradingEngine.current.episode.processDate.value + global.ONE_DAY_IN_MILISECONDS + return false + } + + /* + We reached the head of the market but we are not at the last candle of a day during + Daily Files processing. We will advance to the next candle index anyways because in the + next execution it will likely have more candles at the dataset. And if it does not, + it will just wait there until it does. + */ + tradingEngine.current.episode.headOfTheMarket.value = true + tradingEngine.current.episode.candle.index.value++ + return false + } else { + + /* Wd did not reach the head of the market */ + tradingEngine.current.episode.headOfTheMarket.value = false + tradingEngine.current.episode.candle.index.value++ + return true + } + } + + function checkInitialDatetime() { + /* Here we check that the current candle is not before the initial datetime defined at the session parameters.*/ + if (tradingEngine.current.episode.candle.end.value < sessionParameters.timeRange.config.initialDatetime) { + if (FULL_LOG === true) { logger.write(MODULE_NAME, '[INFO] runSimulation -> checkInitialAndFinalDatetime -> Skipping Candle before the sessionParameters.timeRange.config.initialDatetime.') } + return false + } + return true + } + + function checkFinalDatetime() { + /* Here we check that the next candle is not after of the user-defined final datetime at the session parameters.*/ + if (tradingEngine.current.episode.candle.begin.value + sessionParameters.timeFrame.config.value > sessionParameters.timeRange.config.finalDatetime) { + if (FULL_LOG === true) { logger.write(MODULE_NAME, '[INFO] runSimulation -> checkInitialAndFinalDatetime -> Skipping Candle after the sessionParameters.timeRange.config.finalDatetime.') } + return false + } + return true + } + + function checkMinimunAndMaximunBalance() { + /* Checks for Minimun and Maximun Balance. We do the check while not inside any strategy only. */ + if ( + tradingEngine.current.strategy.index.value === tradingEngine.current.strategy.index.config.initialValue + ) { + /* + We will perform this check only when we are not inside a position, + because there the balances have shifted from their resting position. + */ + + let stopRunningDate = (new Date(tradingEngine.current.episode.candle.begin.value)).toLocaleString() + + if (sessionParameters.sessionBaseAsset.config.minimumBalance !== undefined) { + if (tradingEngine.current.episode.episodeBaseAsset.balance.value <= sessionParameters.sessionBaseAsset.config.minimumBalance) { + const errorMessage = 'Min Balance reached @ ' + stopRunningDate + tradingSystem.errors.push([tradingSystem.id, errorMessage]) + if (FULL_LOG === true) { logger.write(MODULE_NAME, '[WARN] runSimulation -> checkMinimunAndMaximunBalance -> ' + errorMessage) } + return false + } + } + + if (sessionParameters.sessionBaseAsset.config.maximumBalance !== undefined) { + if (tradingEngine.current.episode.episodeBaseAsset.balance.value >= sessionParameters.sessionBaseAsset.config.maximumBalance) { + const errorMessage = 'Max Balance reached @ ' + stopRunningDate + tradingSystem.errors.push([tradingSystem.id, errorMessage]) + if (FULL_LOG === true) { logger.write(MODULE_NAME, '[WARN] runSimulation -> checkMinimunAndMaximunBalance -> ' + errorMessage) } + return false + } + } + + if (sessionParameters.sessionQuotedAsset.config.minimumBalance !== undefined) { + if (tradingEngine.current.episode.episodeQuotedAsset.balance.value <= sessionParameters.sessionQuotedAsset.config.minimumBalance) { + const errorMessage = 'Min Balance reached @ ' + stopRunningDate + tradingSystem.errors.push([tradingSystem.id, errorMessage]) + if (FULL_LOG === true) { logger.write(MODULE_NAME, '[WARN] runSimulation -> checkMinimunAndMaximunBalance -> ' + errorMessage) } + return false + } + } + + if (sessionParameters.sessionQuotedAsset.config.maximumBalance !== undefined) { + if (tradingEngine.current.episode.episodeQuotedAsset.balance.value >= sessionParameters.sessionQuotedAsset.config.maximumBalance) { + const errorMessage = 'Max Balance reached @ ' + stopRunningDate + tradingSystem.errors.push([tradingSystem.id, errorMessage]) + if (FULL_LOG === true) { logger.write(MODULE_NAME, '[WARN] runSimulation -> checkMinimunAndMaximunBalance -> ' + errorMessage) } + return false + } + } + + } + return true + } + } catch (err) { + logger.write(MODULE_NAME, '[ERROR] runSimulation -> err = ' + err.stack) + throw (global.DEFAULT_FAIL_RESPONSE) + } + } +} + diff --git a/TaskServer/LowFrequencyTrading/TradingStages.js b/TaskServer/LowFrequencyTrading/TradingStages.js new file mode 100644 index 000000000..b3465bf18 --- /dev/null +++ b/TaskServer/LowFrequencyTrading/TradingStages.js @@ -0,0 +1,1055 @@ +exports.newTradingStages = function newTradingStages(bot, logger, tradingEngineModule) { + /* + This module packages all functions related to Stages. + */ + const MODULE_NAME = 'Trading Stages' + let thisObject = { + updateChart: updateChart, + mantain: mantain, + reset: reset, + cycleBasedStatistics: cycleBasedStatistics, + runTriggerStage: runTriggerStage, + runOpenStage: runOpenStage, + runManageStage: runManageStage, + runCloseStage: runCloseStage, + updateEnds: updateEnds, + resetTradingEngineDataStructure: resetTradingEngineDataStructure, + updateCounters: updateCounters, + updateStatistics: updateStatistics, + initialize: initialize, + finalize: finalize + } + + const TRADING_STRATEGY_MODULE = require('./TradingStrategy.js') + let tradingStrategyModule = TRADING_STRATEGY_MODULE.newTradingStrategy(bot, logger, tradingEngineModule) + + const TRADING_POSITION_MODULE = require('./TradingPosition.js') + let tradingPositionModule = TRADING_POSITION_MODULE.newTradingPosition(bot, logger, tradingEngineModule) + + const TRADING_ENGINE_EXECUTION = require('./TradingExecution.js') + let tradingExecutionModule = TRADING_ENGINE_EXECUTION.newTradingExecution(bot, logger, tradingEngineModule) + + const ANNOUNCEMENTS_MODULE = require('./Announcements.js') + let announcementsModule = ANNOUNCEMENTS_MODULE.newAnnouncements(bot, logger) + + const SNAPSHOTS_MODULE = require('./Snapshots.js') + let snapshotsModule = SNAPSHOTS_MODULE.newSnapshots(bot, logger) + + const TRADING_EPISODE_MODULE = require('./TradingEpisode.js') + let tradingEpisodeModule = TRADING_EPISODE_MODULE.newTradingEpisode(bot, logger) + + let tradingEngine + let tradingSystem + let sessionParameters + + return thisObject + + function initialize() { + tradingSystem = bot.simulationState.tradingSystem + tradingEngine = bot.simulationState.tradingEngine + sessionParameters = bot.SESSION.parameters + + tradingStrategyModule.initialize() + tradingPositionModule.initialize() + announcementsModule.initialize() + snapshotsModule.initialize() + tradingExecutionModule.initialize() + tradingEpisodeModule.initialize() + } + + function finalize() { + tradingEngine = undefined + tradingSystem = undefined + sessionParameters = undefined + + tradingStrategyModule.finalize() + tradingStrategyModule = undefined + + tradingPositionModule.finalize() + tradingPositionModule = undefined + + announcementsModule.finalize() + announcementsModule = undefined + + snapshotsModule.finalize() + snapshotsModule = undefined + + tradingExecutionModule.finalize() + tradingExecutionModule = undefined + + tradingEpisodeModule.finalize() + tradingEpisodeModule = undefined + } + + function updateChart(pChart) { + snapshotsModule.updateChart(pChart) + } + + function mantain() { + tradingPositionModule.mantain() + tradingStrategyModule.mantain() + tradingExecutionModule.mantain() + + updateCounters() + updateEnds() + } + + function reset() { + tradingPositionModule.reset() + tradingStrategyModule.reset() + tradingExecutionModule.reset() + + resetTradingEngineDataStructure() + } + + function cycleBasedStatistics() { + tradingEpisodeModule.cycleBasedStatistics() + tradingPositionModule.cycleBasedStatistics() + } + + function runTriggerStage() { + /* + We check if we will be triggering on, off or taking position. + */ + checkTriggerOn() + checkTriggerOff() + checkTakePosition() + + function checkTriggerOn() { + if ( + tradingEngine.current.strategy.index.value === tradingEngine.current.strategy.index.config.initialValue + ) { + /* + To pick a new strategy we will check that any of the situations of the trigger on is true. + Once we enter into one strategy, we will ignore market conditions for others. However there is also + a strategy trigger off which can be hit before taking a position. If hit, we would + be outside a strategy again and looking for the conditions to enter all over again. + */ + tradingSystem.evalConditions(tradingSystem, 'Trigger On Event') + + for (let j = 0; j < tradingSystem.tradingStrategies.length; j++) { + if ( // If a strategy was already picked during the loop, we exit the loop + tradingEngine.current.strategy.index.value !== tradingEngine.current.strategy.index.config.initialValue + ) { continue } + + let strategy = tradingSystem.tradingStrategies[j] + let triggerStage = strategy.triggerStage + + if (triggerStage !== undefined) { + if (triggerStage.triggerOn !== undefined) { + for (let k = 0; k < triggerStage.triggerOn.situations.length; k++) { + let situation = triggerStage.triggerOn.situations[k] + let passed + if (situation.conditions.length > 0) { + passed = true + } + + passed = tradingSystem.checkConditions(situation, passed) + + tradingSystem.values.push([situation.id, passed]) + if (passed) { + tradingSystem.highlights.push(situation.id) + tradingSystem.highlights.push(triggerStage.triggerOn.id) + tradingSystem.highlights.push(triggerStage.id) + + tradingStrategyModule.openStrategy(j, situation.name, strategy.name) + + /* Initialize this */ + tradingEngine.current.episode.distanceToEvent.triggerOn.value = 1 + + announcementsModule.makeAnnoucements(triggerStage.triggerOn) + announcementsModule.makeAnnoucements(triggerStage) + + if (bot.SESSION.type === 'Backtesting Session') { + if (sessionParameters.snapshots !== undefined) { + if (sessionParameters.snapshots.config.strategy === true) { + snapshotsModule.strategyEntry() + } + } + } + + changeStageStatus('Trigger Stage', 'Open') + } + } + } + } + } + } + } + + function checkTriggerOff() { + if (tradingEngine.current.strategyTriggerStage.status.value === 'Open') { + + let strategy = tradingSystem.tradingStrategies[tradingEngine.current.strategy.index.value] + let triggerStage = strategy.triggerStage + + tradingSystem.evalConditions(strategy, 'Trigger Off Event') + + if (triggerStage !== undefined) { + if (triggerStage.triggerOff !== undefined) { + for (let k = 0; k < triggerStage.triggerOff.situations.length; k++) { + let situation = triggerStage.triggerOff.situations[k] + let passed + if (situation.conditions.length > 0) { + passed = true + } + + passed = tradingSystem.checkConditions(situation, passed) + + tradingSystem.values.push([situation.id, passed]) + if (passed) { + tradingSystem.highlights.push(situation.id) + tradingSystem.highlights.push(triggerStage.triggerOff.id) + tradingSystem.highlights.push(triggerStage.id) + + tradingEngine.current.episode.distanceToEvent.triggerOff.value = 1 + announcementsModule.makeAnnoucements(triggerStage.triggerOff) + changeStageStatus('Trigger Stage', 'Closed') + tradingStrategyModule.closeStrategy('Trigger Off') + } + } + } + } + } + } + + function checkTakePosition() { + if ( + tradingEngine.current.strategyTriggerStage.status.value === 'Open' + ) { + let strategy = tradingSystem.tradingStrategies[tradingEngine.current.strategy.index.value] + let triggerStage = strategy.triggerStage + + tradingSystem.evalConditions(strategy, 'Take Position Event') + tradingSystem.evalFormulas(strategy, 'Take Position Event') + + if (triggerStage !== undefined) { + if (triggerStage.takePosition !== undefined) { + for (let k = 0; k < triggerStage.takePosition.situations.length; k++) { + let situation = triggerStage.takePosition.situations[k] + let passed + if (situation.conditions.length > 0) { + passed = true + } + + passed = tradingSystem.checkConditions(situation, passed) + + tradingSystem.values.push([situation.id, passed]) + if (passed) { + tradingSystem.highlights.push(situation.id) + tradingSystem.highlights.push(triggerStage.takePosition.id) + tradingSystem.highlights.push(triggerStage.id) + + tradingPositionModule.openPosition(situation.name) + + announcementsModule.makeAnnoucements(triggerStage.takePosition) + announcementsModule.makeAnnoucements(strategy.openStage) + + if (bot.SESSION.type === 'Backtesting Session') { + if (sessionParameters.snapshots !== undefined) { + if (sessionParameters.snapshots.config.position === true) { + snapshotsModule.positionEntry() + } + } + } + + changeStageStatus('Trigger Stage', 'Closed') + changeStageStatus('Open Stage', 'Opening') + changeStageStatus('Manage Stage', 'Opening') + } + } + } + } + } + } + } + + async function runOpenStage() { + + checkIfWeNeedToAbortTheStage() + runWhenStatusIsOpening() + await runWhenStatusIsOpen() + await runWhenStatusIsClosing() + + function checkIfWeNeedToAbortTheStage() { + /* Abort Open Stage Check */ + if (tradingEngine.current.strategyOpenStage.status.value === 'Open' && tradingEngine.current.strategyCloseStage.status.value === 'Open') { + /* + if the Close stage is opened while the open stage is still open that means that + we need to stop placing orders, check what happened to the orders already placed, + and cancel all unfilled limit orders. We call this the Closing status of the Open Stage. + */ + changeStageStatus('Open Stage', 'Closing') + } + } + + function runWhenStatusIsOpening() { + /* Opening Status Procedure */ + if (tradingEngine.current.strategyOpenStage.status.value === 'Opening') { + + /* This procedure is intended to run only once */ + let tradingSystemStage = tradingSystem.tradingStrategies[tradingEngine.current.strategy.index.value].openStage + let tradingEngineStage = tradingEngine.current.strategyOpenStage + + /* Reset the Exchange Orders data structure to its initial value */ + tradingEngineModule.initializeNode(tradingEngine.exchangeOrders) + + /* Entry Position size and rate */ + tradingSystem.evalFormulas(tradingSystemStage, 'Initial Targets') + tradingPositionModule.initialTargets(tradingSystemStage, tradingEngineStage) + initializeStageTargetSize() + + /* From here on, the stage is officialy Open */ + changeStageStatus('Open Stage', 'Open') + } + } + + async function runWhenStatusIsOpen() { + /* Open Status Procedure */ + if (tradingEngine.current.strategyOpenStage.status.value === 'Open') { + /* + While the Open Stage is Open, we do our regular stuff: place orders and check + what happened to the orders already placed. + */ + let tradingSystemStage = tradingSystem.tradingStrategies[tradingEngine.current.strategy.index.value].openStage + let tradingEngineStage = tradingEngine.current.strategyOpenStage + let executionNode = tradingSystemStage.openExecution + + /* Evaluate conditions and formulas so they are ready during the execution run */ + tradingSystem.evalConditions(executionNode, 'Open Execution') + tradingSystem.evalFormulas(executionNode, 'Open Execution') + + await tradingExecutionModule.runExecution( + executionNode, + tradingEngineStage + ) + checkIfStageNeedsToBeClosed(tradingEngineStage, tradingSystemStage, 'Open Stage') + } + } + + async function runWhenStatusIsClosing() { + /* Closing Status Procedure */ + if (tradingEngine.current.strategyOpenStage.status.value === 'Closing') { + /* + During the closing stage status, we do not place new orders, just check + if the ones placed were filled, and cancel the ones not filled. + */ + let tradingSystemStage = tradingSystem.tradingStrategies[tradingEngine.current.strategy.index.value].openStage + let executionNode = tradingSystemStage.openExecution + + /* + Check if there are unfilled orders, we will check if they were executed, + and cancel the ones that were not. + */ + tradingSystem.evalConditions(tradingSystemStage, 'Open Execution') + tradingSystem.evalFormulas(tradingSystemStage, 'Open Execution') + + await tradingExecutionModule.runExecution( + executionNode, + tradingEngine.current.strategyOpenStage + ) + + /* + The Closing is finished when the sizeFilled + feesPaid reaches the sizePlaced. + This can happens either because we update the sizeFilled value when we see + at the exchange that orders were filled, or we reduce the sizePlaced when + we cancel not yet filled orders. Here it does not matter the targetSize since + this status represent a force closure of this stage. + */ + switch (tradingEngine.current.strategyOpenStage.stageDefinedIn.value) { + case 'Base Asset': { + if ( + tradingEngine.current.strategyOpenStage.stageBaseAsset.sizeFilled.value >= + tradingEngine.current.strategyOpenStage.stageBaseAsset.sizePlaced.value + ) { + changeStageStatus('Open Stage', 'Closed') + } + break + } + case 'Quoted Asset': { + if ( + tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value >= + tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizePlaced.value + ) { + changeStageStatus('Open Stage', 'Closed') + } + break + } + } + } + } + + function initializeStageTargetSize() { + /* + Here we will transform the position size into targets for each asset of the stage. + */ + tradingEngine.current.strategyOpenStage.stageBaseAsset.targetSize.value = tradingEngine.current.position.positionBaseAsset.entryTargetSize.value + tradingEngine.current.strategyOpenStage.stageQuotedAsset.targetSize.value = tradingEngine.current.position.positionQuotedAsset.entryTargetSize.value + + tradingEngine.current.strategyOpenStage.stageBaseAsset.targetSize.value = global.PRECISE(tradingEngine.current.strategyOpenStage.stageBaseAsset.targetSize.value, 10) + tradingEngine.current.strategyOpenStage.stageQuotedAsset.targetSize.value = global.PRECISE(tradingEngine.current.strategyOpenStage.stageQuotedAsset.targetSize.value, 10) + } + } + + function runManageStage() { + + runWhenStatusIsOpening() + runWhenStatusIsOpen() + + function runWhenStatusIsOpening() { + /* Opening Status Procedure */ + if (tradingEngine.current.strategyManageStage.status.value === 'Opening') { + + /* Now we switch to the Open status. */ + changeStageStatus('Manage Stage', 'Open') + } + } + + function runWhenStatusIsOpen() { + /* Open Status Procedure */ + if (tradingEngine.current.strategyManageStage.status.value === 'Open') { + let strategy = tradingSystem.tradingStrategies[tradingEngine.current.strategy.index.value] + let manageStage = strategy.manageStage + + /* Evaluate all the stage conditions and formulas to have them ready */ + tradingSystem.evalConditions(manageStage, 'Manage Stage') + tradingSystem.evalFormulas(manageStage, 'Manage Stage') + + /* Stop Loss Management */ + checkStopPhasesEvents() + calculateStopLoss() + calculateStopLossPosition() + + /* Take Profit Management */ + checkTakeProfitPhaseEvents() + calculateTakeProfit() + calculateTakeProfitPosition() + + /* Checking if Stop or Take Profit were hit */ + checkStopLossOrTakeProfitWasHit() + } + } + + function calculateStopLoss() { + let strategy = tradingSystem.tradingStrategies[tradingEngine.current.strategy.index.value] + let manageStage = strategy.manageStage + let phase + + if (manageStage !== undefined) { + if (manageStage.managedStopLoss !== undefined) { + phase = manageStage.managedStopLoss.phases[tradingEngine.current.position.stopLoss.stopLossPhase.value - 1] + } + } + + if (phase !== undefined) { + if (phase.formula !== undefined) { + let previousValue = tradingEngine.current.position.stopLoss.value + tradingPositionModule.applyStopLossFormula(tradingSystem.formulas, phase.formula.id) + + if (tradingEngine.current.position.stopLoss.value !== previousValue) { + announcementsModule.makeAnnoucements(phase) + } + } + } + } + + function calculateTakeProfit() { + let strategy = tradingSystem.tradingStrategies[tradingEngine.current.strategy.index.value] + let manageStage = strategy.manageStage + let phase + + if (manageStage !== undefined) { + if (manageStage.managedTakeProfit !== undefined) { + phase = manageStage.managedTakeProfit.phases[tradingEngine.current.position.takeProfit.takeProfitPhase.value - 1] + } + } + + if (phase !== undefined) { + if (phase.formula !== undefined) { + let previousValue = tradingEngine.current.position.takeProfit.value + tradingPositionModule.applyTakeProfitFormula(tradingSystem.formulas, phase.formula.id) + + if (tradingEngine.current.position.takeProfit.value !== previousValue) { + announcementsModule.makeAnnoucements(phase) + } + } + } + } + + function calculateStopLossPosition() { + /* + The position of the Stop Loss (above or below the price) is needed in order to know + later if the price hit the Stop Loss or not at every Simulation candle. When we get + the first values of the simulation of the Stop Loss we check if it is above or below + the Position Rate, and we assign the values Above or Below to it. + */ + if (tradingEngine.current.position.stopLoss.stopLossPosition.value === tradingEngine.current.position.stopLoss.stopLossPosition.config.initialValue) { + if (tradingEngine.current.position.stopLoss.value > tradingEngine.current.position.entryTargetRate.value) { + tradingEngine.current.position.stopLoss.stopLossPosition.value = 'Above' + } else { + tradingEngine.current.position.stopLoss.stopLossPosition.value = 'Below' + } + } + } + + function calculateTakeProfitPosition() { + /* + The position of the Take Profit (above or below the price) is needed in order to know + later if the price hit the Take Profit or not at every Simulation candle. When we get + the first values of the simulation of the Take Profits we check if it is above or below + the Position Rates, and we assign the values Above or Below to it. + */ + if (tradingEngine.current.position.takeProfit.takeProfitPosition.value === tradingEngine.current.position.takeProfit.takeProfitPosition.config.initialValue) { + if (tradingEngine.current.position.takeProfit.value > tradingEngine.current.position.entryTargetRate.value) { + tradingEngine.current.position.takeProfit.takeProfitPosition.value = 'Above' + } else { + tradingEngine.current.position.takeProfit.takeProfitPosition.value = 'Below' + } + } + } + + function checkStopPhasesEvents() { + let strategy = tradingSystem.tradingStrategies[tradingEngine.current.strategy.index.value] + let manageStage = strategy.manageStage + let parentNode + let phaseIndex + let phase + let stopLoss + + if (manageStage !== undefined) { + if (manageStage.managedStopLoss !== undefined) { + parentNode = manageStage + phaseIndex = tradingEngine.current.position.stopLoss.stopLossPhase.value - 1 + stopLoss = manageStage.managedStopLoss + phase = stopLoss.phases[phaseIndex] + } + } + + if (parentNode !== undefined) { + if (phase === undefined) { return } // trying to jump to a phase that does not exists. + + /* Check the next Phase Event. */ + let nextPhaseEvent = phase.nextPhaseEvent + if (nextPhaseEvent !== undefined) { + for (let k = 0; k < nextPhaseEvent.situations.length; k++) { + let situation = nextPhaseEvent.situations[k] + let passed + if (situation.conditions.length > 0) { + passed = true + } + + passed = tradingSystem.checkConditions(situation, passed) + + tradingSystem.values.push([situation.id, passed]) + if (passed) { + tradingSystem.highlights.push(situation.id) + tradingSystem.highlights.push(nextPhaseEvent.id) + tradingSystem.highlights.push(phase.id) + tradingSystem.highlights.push(stopLoss.id) + tradingSystem.highlights.push(parentNode.id) + tradingSystem.highlights.push(manageStage.id) + + tradingPositionModule.updateStopLoss(tradingEngine.current.position.stopLoss.stopLossPhase.value + 1) + + announcementsModule.makeAnnoucements(nextPhaseEvent) + + /* Reset this counter */ + tradingEngine.current.episode.distanceToEvent.nextPhase.value = 1 + return // only one event can pass at the time + } + } + } + + /* Check the Move to Phase Events. */ + for (let n = 0; n < phase.moveToPhaseEvents.length; n++) { + let moveToPhaseEvent = phase.moveToPhaseEvents[n] + if (moveToPhaseEvent !== undefined) { + for (let k = 0; k < moveToPhaseEvent.situations.length; k++) { + let situation = moveToPhaseEvent.situations[k] + let passed + if (situation.conditions.length > 0) { + passed = true + } + + passed = tradingSystem.checkConditions(situation, passed) + + tradingSystem.values.push([situation.id, passed]) + if (passed) { + tradingSystem.highlights.push(situation.id) + tradingSystem.highlights.push(moveToPhaseEvent.id) + tradingSystem.highlights.push(phase.id) + tradingSystem.highlights.push(stopLoss.id) + tradingSystem.highlights.push(parentNode.id) + tradingSystem.highlights.push(manageStage.id) + + let moveToPhase = moveToPhaseEvent.referenceParent + if (moveToPhase !== undefined) { + for (let q = 0; q < stopLoss.phases.length; q++) { + if (stopLoss.phases[q].id === moveToPhase.id) { + tradingPositionModule.updateStopLoss(q + 1) + } + } + } else { + tradingSystem.errors.push([moveToPhaseEvent.id, 'This Node needs to reference a Phase.']) + continue + } + + announcementsModule.makeAnnoucements(moveToPhaseEvent) + + /* Reset this counter */ + tradingEngine.current.episode.distanceToEvent.moveToPhase.value = 1 + return // only one event can pass at the time + } + } + } + } + } + } + + function checkTakeProfitPhaseEvents() { + let strategy = tradingSystem.tradingStrategies[tradingEngine.current.strategy.index.value] + let openStage = strategy.openStage + let manageStage = strategy.manageStage + let parentNode + let phaseIndex + let phase + let takeProfit + + if (manageStage !== undefined) { + if (manageStage.managedTakeProfit !== undefined) { + parentNode = manageStage + phaseIndex = tradingEngine.current.position.takeProfit.takeProfitPhase.value - 1 + takeProfit = manageStage.managedTakeProfit + phase = takeProfit.phases[phaseIndex] + } + } + + if (parentNode !== undefined) { + if (phase === undefined) { return } // trying to jump to a phase that does not exists. + + /* Check the next Phase Event. */ + let nextPhaseEvent = phase.nextPhaseEvent + if (nextPhaseEvent !== undefined) { + for (let k = 0; k < nextPhaseEvent.situations.length; k++) { + let situation = nextPhaseEvent.situations[k] + let passed + if (situation.conditions.length > 0) { + passed = true + } + + passed = tradingSystem.checkConditions(situation, passed) + + tradingSystem.values.push([situation.id, passed]) + if (passed) { + tradingSystem.highlights.push(situation.id) + tradingSystem.highlights.push(nextPhaseEvent.id) + tradingSystem.highlights.push(phase.id) + tradingSystem.highlights.push(takeProfit.id) + tradingSystem.highlights.push(parentNode.id) + tradingSystem.highlights.push(manageStage.id) + + tradingPositionModule.updateTakeProfit(tradingEngine.current.position.takeProfit.takeProfitPhase.value + 1) + + announcementsModule.makeAnnoucements(nextPhaseEvent) + + /* Reset this counter */ + tradingEngine.current.episode.distanceToEvent.nextPhase.value = 1 + return // only one event can pass at the time + } + } + } + + /* Check the Move to Phase Events. */ + for (let n = 0; n < phase.moveToPhaseEvents.length; n++) { + let moveToPhaseEvent = phase.moveToPhaseEvents[n] + if (moveToPhaseEvent !== undefined) { + for (let k = 0; k < moveToPhaseEvent.situations.length; k++) { + let situation = moveToPhaseEvent.situations[k] + let passed + if (situation.conditions.length > 0) { + passed = true + } + + passed = tradingSystem.checkConditions(situation, passed) + + tradingSystem.values.push([situation.id, passed]) + if (passed) { + tradingSystem.highlights.push(situation.id) + tradingSystem.highlights.push(moveToPhaseEvent.id) + tradingSystem.highlights.push(phase.id) + tradingSystem.highlights.push(takeProfit.id) + tradingSystem.highlights.push(parentNode.id) + tradingSystem.highlights.push(manageStage.id) + + let moveToPhase = moveToPhaseEvent.referenceParent + if (moveToPhase !== undefined) { + for (let q = 0; q < takeProfit.phases.length; q++) { + if (takeProfit.phases[q].id === moveToPhase.id) { + tradingPositionModule.updateTakeProfit(q + 1) + } + } + } else { + tradingSystem.errors.push([moveToPhaseEvent.id, 'This Node needs to reference a Phase.']) + continue + } + + announcementsModule.makeAnnoucements(moveToPhaseEvent) + + /* Reset this counter */ + tradingEngine.current.episode.distanceToEvent.moveToPhase.value = 1 + return // only one event can pass at the time + } + } + } + } + } + } + + function checkStopLossOrTakeProfitWasHit() { + { + let strategy = tradingSystem.tradingStrategies[tradingEngine.current.strategy.index.value] + /* + Checking what happened since the last execution. We need to know if the Stop Loss + or our Take Profit were hit. + */ + + /* Stop Loss condition: Here we verify if the Stop Loss was hitted or not. */ + if ( + ( + tradingEngine.current.position.stopLoss.stopLossPosition.value === 'Above' && + tradingEngine.current.episode.candle.max.value >= tradingEngine.current.position.stopLoss.value + ) || + ( + tradingEngine.current.position.stopLoss.stopLossPosition.value === 'Below' && + tradingEngine.current.episode.candle.min.value <= tradingEngine.current.position.stopLoss.value + ) + ) { + logger.write(MODULE_NAME, '[INFO] checkStopLossOrTakeProfitWasHit -> Stop Loss was hit.') + + tradingPositionModule.closingPosition('Stop Loss') + changeStageStatus('Close Stage', 'Opening') + changeStageStatus('Manage Stage', 'Closed') + announcementsModule.makeAnnoucements(strategy.closeStage) + return + } + + /* Take Profit condition: Here we verify if the Take Profit was hit or not. */ + if ( + ( + tradingEngine.current.position.takeProfit.takeProfitPosition.value === 'Below' && + tradingEngine.current.episode.candle.min.value <= tradingEngine.current.position.takeProfit.value + ) || + ( + tradingEngine.current.position.takeProfit.takeProfitPosition.value === 'Above' && + tradingEngine.current.episode.candle.max.value >= tradingEngine.current.position.takeProfit.value + ) + ) { + logger.write(MODULE_NAME, '[INFO] checkStopLossOrTakeProfitWasHit -> Take Profit was hit.') + + tradingPositionModule.closingPosition('Take Profit') + changeStageStatus('Close Stage', 'Opening') + changeStageStatus('Manage Stage', 'Closed') + announcementsModule.makeAnnoucements(strategy.closeStage) + return + } + return + } + } + } + + async function runCloseStage() { + + runWhenStatusIsOpening() + await runWhenStatusIsOpen() + + function runWhenStatusIsOpening() { + /* Opening Status Procedure */ + if (tradingEngine.current.strategyCloseStage.status.value === 'Opening') { + /* + This will happen only once, as soon as the Take Profit or Stop was hit. + */ + let tradingSystemStage = tradingSystem.tradingStrategies[tradingEngine.current.strategy.index.value].closeStage + + /* Exit Position size and rate */ + tradingSystem.evalFormulas(tradingSystemStage, 'Initial Targets') + tradingPositionModule.initialTargets(tradingSystemStage, tradingEngine.current.strategyCloseStage) + + initializeStageTargetSize() + changeStageStatus('Close Stage', 'Open') + } + } + + async function runWhenStatusIsOpen() { + /* + The following code will run only when the Open Stage is closed. + The reason for that is that we need the final filled size of the Open Stage + to be known before we start placing orders at the Close Stage. + */ + if ( + tradingEngine.current.strategyCloseStage.status.value === 'Open' && + ( + tradingEngine.current.strategyOpenStage.status.value === 'Closed' || + tradingEngine.current.strategyOpenStage.status.value == tradingEngine.current.strategyOpenStage.status.config.initialValue + ) + ) { + /* + This will happen as long as the Close Stage is Open. + */ + let tradingSystemStage = tradingSystem.tradingStrategies[tradingEngine.current.strategy.index.value].closeStage + let tradingEngineStage = tradingEngine.current.strategyCloseStage + let executionNode = tradingSystemStage.closeExecution + + tradingSystem.evalConditions(tradingSystemStage, 'Close Execution') + tradingSystem.evalFormulas(tradingSystemStage, 'Close Execution') + + await tradingExecutionModule.runExecution( + executionNode, + tradingEngine.current.strategyCloseStage + ) + + checkIfStageNeedsToBeClosed(tradingEngineStage, tradingSystemStage, 'Close Stage') + } + + /* + Exit Position Validation: we need al the previous stages to be either closed + or at their initial default value. The last is becasue after Closed objects are + initialized to their defualts. + */ + if ( + ( + tradingEngine.current.strategyTriggerStage.status.value === 'Closed' || + tradingEngine.current.strategyTriggerStage.status.value === tradingEngine.current.strategyTriggerStage.status.config.initialValue + ) + && + ( + tradingEngine.current.strategyOpenStage.status.value === 'Closed' || + tradingEngine.current.strategyOpenStage.status.value === tradingEngine.current.strategyOpenStage.status.config.initialValue + ) + && + ( + tradingEngine.current.strategyManageStage.status.value === 'Closed' || + tradingEngine.current.strategyManageStage.status.value === tradingEngine.current.strategyManageStage.status.config.initialValue + ) + && + ( + tradingEngine.current.strategyCloseStage.status.value === 'Closed' + ) + ) { + + /* Closing Everything now. */ + closePositionAndStrategy() + } + } + + function initializeStageTargetSize() { + /* + Here we will transform the position size into targets for each asset of the stage. + */ + tradingEngine.current.strategyCloseStage.stageBaseAsset.targetSize.value = tradingEngine.current.position.positionBaseAsset.exitTargetSize.value + tradingEngine.current.strategyCloseStage.stageQuotedAsset.targetSize.value = tradingEngine.current.position.positionQuotedAsset.exitTargetSize.value + + tradingEngine.current.strategyCloseStage.stageBaseAsset.targetSize.value = global.PRECISE(tradingEngine.current.strategyCloseStage.stageBaseAsset.targetSize.value, 10) + tradingEngine.current.strategyCloseStage.stageQuotedAsset.targetSize.value = global.PRECISE(tradingEngine.current.strategyCloseStage.stageQuotedAsset.targetSize.value, 10) + } + + function closePositionAndStrategy() { + /* Taking Position Snapshot */ + if (bot.SESSION.type === 'Backtesting Session') { + if (sessionParameters.snapshots !== undefined) { + if (sessionParameters.snapshots.config.position === true) { + snapshotsModule.positionExit() + } + } + } + + /* Taking Strategy Snapshot */ + if (bot.SESSION.type === 'Backtesting Session') { + if (sessionParameters.snapshots !== undefined) { + if (sessionParameters.snapshots.config.strategy === true) { + snapshotsModule.strategyExit() + } + } + } + + /* Close the Position */ + tradingPositionModule.closePosition() + + /* Close the Strategy */ + tradingStrategyModule.closeStrategy('Position Closed') + + /* Distance to Events Updates */ + tradingEngine.current.episode.distanceToEvent.closePosition.value = 1 + tradingEngine.current.episode.distanceToEvent.triggerOff.value = 1 + + } + } + + function checkIfStageNeedsToBeClosed(tradingEngineStage, tradingSystemStage, stageName) { + /* + The Stage is closed when the placedSize reaches the targetSize, and the fillSize + + feesPaid reaches the placedSize. This depends on how the user defined the stage: + either on Base Asset or Quoted Asset. + This can happens at any time when we update the sizeFilled and the feesPaid values + when we see at the exchange that orders were filled. + Note that the comparison is made with a Rounding Factor in order to avoid rounding problems. + */ + const ROUNDING_ERROR_CORRECTION_FACTOR = 1.001 + + 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 + } + } + function positionFilled() { + changeStageStatus(stageName, 'Closed', 'Position Size Filled') + } + function checkCloseStageEvent(tradingSystemStage) { + /* Check the Close Stage Event */ + tradingSystem.evalConditions(tradingSystemStage, 'Close Stage Event') + if (checkStopStageEvent(tradingSystemStage) === true) { + changeStageStatus(stageName, 'Closing', 'Close Stage Event') + } + } + } + + function checkStopStageEvent(stage) { + /* Check the Close Stage Event. */ + let stopStageEvent = stage.stopStageEvent + if (stopStageEvent !== undefined) { + for (let k = 0; k < stopStageEvent.situations.length; k++) { + let situation = stopStageEvent.situations[k] + let passed + if (situation.conditions.length > 0) { + passed = true + } + + passed = tradingSystem.checkConditions(situation, passed) + + tradingSystem.values.push([situation.id, passed]) + if (passed) { + tradingSystem.highlights.push(situation.id) + tradingSystem.highlights.push(stopStageEvent.id) + tradingSystem.highlights.push(stage.id) + + announcementsModule.makeAnnoucements(stopStageEvent) + return true + } + } + } + } + + function changeStageStatus(stageName, newStatus, exitType) { + let stage + switch (stageName) { + case 'Trigger Stage': { + stage = tradingEngine.current.strategyTriggerStage + break + } + case 'Open Stage': { + stage = tradingEngine.current.strategyOpenStage + break + } + case 'Manage Stage': { + stage = tradingEngine.current.strategyManageStage + break + } + case 'Close Stage': { + stage = tradingEngine.current.strategyCloseStage + break + } + } + stage.status.value = newStatus + if (exitType !== undefined) { + stage.exitType.value = exitType + } + if (stage.status.value === 'Open') { + openStage(stage) + } + if (stage.status.value === 'Closed') { + closeStage(stage) + } + + function openStage(stage) { + /* Recording the opening at the Trading Engine Data Structure */ + stage.begin.value = tradingEngine.current.episode.cycle.begin.value + stage.beginRate.value = tradingEngine.current.episode.candle.close.value + stage.end.value = tradingEngine.current.episode.cycle.end.value + } + + function closeStage(stage) { + /* Recording the closing at the Trading Engine Data Structure */ + stage.end.value = tradingEngine.current.episode.cycle.end.value + stage.endRate.value = tradingEngine.current.episode.candle.close.value + } + } + + function updateEnds() { + if (tradingEngine.current.strategyTriggerStage.status.value === 'Open') { + tradingEngine.current.strategyTriggerStage.end.value = tradingEngine.current.episode.cycle.end.value + tradingEngine.current.strategyTriggerStage.endRate.value = tradingEngine.current.episode.candle.close.value + } + if (tradingEngine.current.strategyOpenStage.status.value === 'Open') { + tradingEngine.current.strategyOpenStage.end.value = tradingEngine.current.episode.cycle.end.value + tradingEngine.current.strategyOpenStage.endRate.value = tradingEngine.current.episode.candle.close.value + } + if (tradingEngine.current.strategyManageStage.status.value === 'Open') { + tradingEngine.current.strategyManageStage.end.value = tradingEngine.current.episode.cycle.end.value + tradingEngine.current.strategyManageStage.endRate.value = tradingEngine.current.episode.candle.close.value + } + if (tradingEngine.current.strategyCloseStage.status.value === 'Open') { + tradingEngine.current.strategyCloseStage.end.value = tradingEngine.current.episode.cycle.end.value + tradingEngine.current.strategyCloseStage.endRate.value = tradingEngine.current.episode.candle.close.value + } + } + + function resetTradingEngineDataStructure() { + if (tradingEngine.current.strategyTriggerStage.status.value === 'Closed') { + resetStage(tradingEngine.current.strategyTriggerStage.status) + } + if (tradingEngine.current.strategyOpenStage.status.value === 'Closed') { + resetStage(tradingEngine.current.strategyOpenStage.status) + } + if (tradingEngine.current.strategyManageStage.status.value === 'Closed') { + resetStage(tradingEngine.current.strategyManageStage.status) + } + if (tradingEngine.current.strategyCloseStage.status.value === 'Closed') { + resetStage(tradingEngine.current.strategyTriggerStage) + resetStage(tradingEngine.current.strategyOpenStage) + resetStage(tradingEngine.current.strategyManageStage) + resetStage(tradingEngine.current.strategyCloseStage) + } + + function resetStage(stage) { + tradingEngineModule.initializeNode(stage) + } + } + + function updateCounters() { + + } + + function updateStatistics() { + + } +} \ No newline at end of file diff --git a/TaskServer/LowFrequencyTrading/TradingStrategy.js b/TaskServer/LowFrequencyTrading/TradingStrategy.js new file mode 100644 index 000000000..5225f705d --- /dev/null +++ b/TaskServer/LowFrequencyTrading/TradingStrategy.js @@ -0,0 +1,81 @@ +exports.newTradingStrategy = function newTradingStrategy(bot, logger, tradingEngineModule) { + /* + This module packages all functions related to Strategies. + */ + const MODULE_NAME = 'Trading Strategy' + let thisObject = { + mantain: mantain, + reset: reset, + openStrategy: openStrategy, + closeStrategy: closeStrategy, + initialize: initialize, + finalize: finalize + } + + let tradingEngine + + return thisObject + + function initialize() { + tradingEngine = bot.simulationState.tradingEngine + } + + function finalize() { + tradingEngine = undefined + } + + function mantain() { + updateCounters() + updateEnds() + } + + function reset() { + resetTradingEngineDataStructure() + } + + function openStrategy(index, situationName, strategyName) { + tradingEngine.current.strategy.status.value = 'Open' + tradingEngine.current.strategy.serialNumber.value = tradingEngine.current.episode.episodeCounters.strategies.value + tradingEngine.current.strategy.identifier.value = global.UNIQUE_ID() + tradingEngine.current.strategy.begin.value = tradingEngine.current.episode.candle.end.value + tradingEngine.current.strategy.end.value = tradingEngine.current.episode.candle.end.value + tradingEngine.current.strategy.beginRate.value = tradingEngine.current.episode.candle.min.value + + tradingEngine.current.strategy.index.value = index + tradingEngine.current.strategy.situationName.value = situationName + tradingEngine.current.strategy.strategyName.value = strategyName + + /* Updating Episode Counters */ + tradingEngine.current.episode.episodeCounters.strategies.value++ + } + + function closeStrategy(exitType) { + tradingEngine.current.strategy.status.value = 'Closed' + tradingEngine.current.strategy.exitType.value = exitType + tradingEngine.current.strategy.end.value = tradingEngine.current.episode.candle.end.value + tradingEngine.current.strategy.endRate.value = tradingEngine.current.episode.candle.min.value + /* + Now that the strategy is closed, it is the right time to move this strategy from current to last at the Trading Engine data structure. + */ + tradingEngineModule.cloneValues(tradingEngine.current.strategy, tradingEngine.last.strategy) + } + + function updateEnds() { + if (tradingEngine.current.strategy.status.value === 'Open') { + tradingEngine.current.strategy.end.value = tradingEngine.current.episode.candle.end.value + tradingEngine.current.strategy.endRate.value = tradingEngine.current.episode.candle.close.value + } + } + + function resetTradingEngineDataStructure() { + if (tradingEngine.current.strategy.status.value === 'Closed') { + tradingEngineModule.initializeNode(tradingEngine.current.strategy) + } + } + + function updateCounters() { + if (tradingEngine.current.strategy.status.value === 'Open') { + tradingEngine.current.strategy.strategyCounters.periods.value++ + } + } +} \ No newline at end of file diff --git a/TaskServer/LowFrequencyTrading/TradingSystem.js b/TaskServer/LowFrequencyTrading/TradingSystem.js new file mode 100644 index 000000000..d90c558ae --- /dev/null +++ b/TaskServer/LowFrequencyTrading/TradingSystem.js @@ -0,0 +1,329 @@ +exports.newTradingSystem = function newTradingSystem(bot, logger, tradingEngineModule) { + /* + The Trading System is the user defined set of rules compliant with the Trading Protocol that + defines the trading logic to be applied during each cycle of the Simulation. + */ + const MODULE_NAME = 'Trading System' + let thisObject = { + mantain: mantain, + reset: reset, + run: run, + updateChart: updateChart, + initialize: initialize, + finalize: finalize + } + + let chart + let tradingSystem + let tradingEngine + let sessionParameters + let dynamicIndicators + + const TRADING_STAGES_MODULE = require('./TradingStages.js') + let tradingStagesModule = TRADING_STAGES_MODULE.newTradingStages(bot, logger, tradingEngineModule) + + + return thisObject + + function initialize() { + tradingSystem = bot.simulationState.tradingSystem + tradingEngine = bot.simulationState.tradingEngine + sessionParameters = bot.SESSION.parameters + + tradingSystem.conditions = new Map() + tradingSystem.formulas = new Map() + + tradingStagesModule.initialize() + + /* Adding Functions used elsewhere to Trading System Definition */ + tradingSystem.checkConditions = function (situation, passed) { + /* Given a Situation, we check if all children conditions are true or not */ + for (let m = 0; m < situation.conditions.length; m++) { + + let condition = situation.conditions[m] + let value = false + if (tradingSystem.conditions.get(condition.id) !== undefined) { + value = tradingSystem.conditions.get(condition.id) + } + if (value === true) { + tradingSystem.highlights.push(condition.id) + } + else { + passed = false + } + tradingSystem.values.push([condition.id, value]) + } + return passed + } + + tradingSystem.evalConditions = function (startingNode, descendentOfNodeType) { + evalNode(startingNode, 'Conditions', descendentOfNodeType) + } + + tradingSystem.evalFormulas = function (startingNode, descendentOfNodeType) { + evalNode(startingNode, 'Formulas', descendentOfNodeType) + } + + function isItInside(elementWithTimestamp, elementWithBeginEnd) { + /* + The function is to allow in Conditions and Formulas to easily know when an element with timestamp (like the ones of single files) are inside the time range + of an element with a time range, like a candle. + */ + if (elementWithTimestamp.timestamp >= elementWithBeginEnd.begin && elementWithTimestamp.timestamp <= elementWithBeginEnd.end) { + return true + } else { + return false + } + } + } + + function finalize() { + tradingStagesModule.finalize() + tradingStagesModule = undefined + + chart = undefined + + tradingSystem.conditions = undefined + tradingSystem.formulas = undefined + + tradingSystem.highlights = undefined + tradingSystem.errors = undefined + tradingSystem.warnings = undefined + tradingSystem.infos = undefined + tradingSystem.values = undefined + tradingSystem.status = undefined + tradingSystem.progress = undefined + tradingSystem.running = undefined + + tradingSystem = undefined + tradingEngine = undefined + sessionParameters = undefined + } + + function mantain() { + tradingStagesModule.mantain() + } + + function reset() { + tradingStagesModule.reset() + + tradingSystem.highlights = [] + tradingSystem.errors = [] + tradingSystem.warnings = [] + tradingSystem.infos = [] + tradingSystem.values = [] + tradingSystem.status = [] + tradingSystem.progress = [] + tradingSystem.running = [] + tradingSystem.announcements = [] + } + + function updateChart(pChart) { + chart = pChart // We need chat to be a local object accessible from conditions and formulas. + tradingStagesModule.updateChart(pChart) + } + + function buildDynamicIndicators() { + if (tradingSystem.dynamicIndicators !== undefined) { + dynamicIndicators = {} + /* Eval Dynamic Indicators */ + tradingSystem.evalFormulas(tradingSystem.dynamicIndicators, 'Indicator Function') + + for (let i = 0; i < tradingSystem.dynamicIndicators.indicatorFunctions.length; i++) { + let indicatorFunction = tradingSystem.dynamicIndicators.indicatorFunctions[i] + if (indicatorFunction.formula === undefined) { return} + if (indicatorFunction.config.codeName === undefined) { return} + dynamicIndicators[indicatorFunction.config.codeName] = tradingSystem.formulas.get(indicatorFunction.formula.id) + } + } + } + + async function run() { + try { + /* Dynamic Indicators */ + buildDynamicIndicators() + + /* Run the Trigger Stage */ + tradingStagesModule.runTriggerStage() + + /* Run the Open Stage */ + await tradingStagesModule.runOpenStage() + + /* Run the Manage Stage */ + tradingStagesModule.runManageStage() + + /* Run the Close Stage */ + await tradingStagesModule.runCloseStage() + + tradingStagesModule.cycleBasedStatistics() + + } catch (err) { + /* + If an error ocurred during execution, it was alreeady logged and + included at the errors array. That means we need to do nothing here, + just prevent the execution to be halted for not handling exceptions. + */ + if (typeof err === 'string' || err instanceof String) { + logger.write(MODULE_NAME, '[ERROR] runExecution -> err = ' + err) + } + if (err.stack !== undefined) { + logger.write(MODULE_NAME, '[ERROR] runExecution -> err = ' + err.stack) + } + } + } + + function evalNode(node, evaluating, descendentOfNodeType, isDescendent) { + if (node === undefined) { return } + + /* Verify if this node is decendent of the specified node type */ + if (isDescendent !== true) { + if (node.type === descendentOfNodeType) { + isDescendent = true + } + } + + /* Here we check if there is a codition to be evaluated */ + if (node.type === 'Condition' && evaluating === 'Conditions') { + /* We will eval this condition */ + if (isDescendent === true) { + evalCondition(node) + } + } + + /* Here we check if there is a formula to be evaluated */ + if ((node.type === 'Formula' || node.type === 'Announcement Formula') && evaluating === 'Formulas') { + if (node.code !== undefined) { + /* We will eval this formula */ + if (isDescendent === true) { + evalFormula(node) + } + } + } + + /* Now we go down through all this node children */ + let nodeDefinition = global.APP_SCHEMA_MAP.get(node.type) + if (nodeDefinition === undefined) { return } + + if (nodeDefinition.properties !== undefined) { + let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. + for (let i = 0; i < nodeDefinition.properties.length; i++) { + let property = nodeDefinition.properties[i] + + switch (property.type) { + case 'node': { + if (property.name !== previousPropertyName) { + if (node[property.name] !== undefined) { + evalNode(node[property.name], evaluating, descendentOfNodeType, isDescendent) + } + previousPropertyName = property.name + } + break + } + case 'array': { + if (node[property.name] !== undefined) { + let nodePropertyArray = node[property.name] + for (let m = 0; m < nodePropertyArray.length; m++) { + evalNode(nodePropertyArray[m], evaluating, descendentOfNodeType, isDescendent) + } + } + break + } + } + } + } + } + + function evalCondition(node) { + let value + let error + /* + The code can be at the condition node if it was done with the Conditions Editor, or it can also be + at a Javascript Code node. If there is a Javascript object we will give it preference and take the code + from there. Otherwise we will take the code from the Condition node. + */ + let code = node.code + if (node.javascriptCode !== undefined) { + if (node.javascriptCode.code !== undefined) { + code = node.javascriptCode.code + } + } + + try { + logger.write(MODULE_NAME, '[INFO] evalCondition -> ' + node.name + ' -> code = ' + code) + value = eval(code) + } catch (err) { + /* + One possible error is that the conditions references a .previous that is undefined. This + will not be considered an error. + */ + value = false + + if (code.indexOf('previous') > -1 && err.message.indexOf('of undefined') > -1 + ) { + /* + We are not going to set an error for the casess we are using previous and the error is that the indicator is undefined. + */ + } else { + error = err.message + } + } + + tradingSystem.conditions.set(node.id, value) + + if (value === true) { + tradingSystem.highlights.push(node.id) + } + if (error !== undefined) { + tradingSystem.errors.push([node.id, error]) + } + if (value !== undefined) { + tradingSystem.values.push([node.id, value]) + } + + logger.write(MODULE_NAME, '[INFO] evalCondition -> value = ' + value) + logger.write(MODULE_NAME, '[INFO] evalCondition -> error = ' + error) + } + + function evalFormula(node) { + let value + let error + + try { + logger.write(MODULE_NAME, '[INFO] evalFormula -> ' + node.name + ' -> code = ' + node.code) + value = eval(node.code) + } catch (err) { + /* + One possible error is that the formula references a .previous that is undefined. This + will not be considered an error. + */ + value = 0 + + if (node.code.indexOf('previous') > -1 && err.message.indexOf('of undefined') > -1 + ) { + /* + We are not going to set an error for the casess we are using previous and the error is that the indicator is undefined. + */ + } else { + error = err.message + } + } + + if (error !== undefined) { + tradingSystem.errors.push([node.id, error]) + return + } + if (value !== undefined) { + if (node.type === 'Formula' && isNaN(value)) { + tradingSystem.errors.push([node.id, 'Formula needs to return a number.']) + return + } + + tradingSystem.values.push([node.id, value]) + tradingSystem.formulas.set(node.id, value) + } + + logger.write(MODULE_NAME, '[INFO] evalFormula -> value = ' + value) + logger.write(MODULE_NAME, '[INFO] evalFormula -> error = ' + error) + } +} + diff --git a/TaskServer/MultiPeriod.js b/TaskServer/MultiPeriod.js deleted file mode 100644 index 217e49077..000000000 --- a/TaskServer/MultiPeriod.js +++ /dev/null @@ -1,1182 +0,0 @@ -exports.newMultiPeriod = function newMultiPeriod(bot, logger, UTILITIES, USER_BOT_MODULE, USER_BOT_COMMONS) { - - const FULL_LOG = true; - const LOG_FILE_CONTENT = false; - const MODULE_NAME = "Multi Period"; - const GMT_SECONDS = ':00.000 GMT+0000'; - const ONE_DAY_IN_MILISECONDS = 24 * 60 * 60 * 1000; - - thisObject = { - initialize: initialize, - finalize: finalize, - start: start - }; - - let utilities = UTILITIES.newCloudUtilities(logger); - - let statusDependencies; - let dataDependenciesModule; - let dataFiles = new Map(); - let multiPeriodDataFiles = new Map(); - - let botInstance; - - const FILE_STORAGE = require('./FileStorage.js'); - let fileStorage = FILE_STORAGE.newFileStorage(logger); - - let processConfig; - - return thisObject; - - function initialize(pProcessConfig, pStatusDependencies, pDataDependencies, exchangeAPI, callBackFunction) { - - try { - - logger.fileName = MODULE_NAME; - logger.initialize(); - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Entering function."); } - - statusDependencies = pStatusDependencies; - dataDependenciesModule = pDataDependencies; - processConfig = pProcessConfig; - - let USER_BOT_MODULE = require("./TradingBot") - - botInstance = USER_BOT_MODULE.newTradingBot(bot, logger, UTILITIES, FILE_STORAGE); - botInstance.initialize(exchangeAPI, callBackFunction); - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function finalize() { - dataFiles = undefined - multiPeriodDataFiles = undefined - statusDependencies = undefined - dataDependenciesModule = undefined - botInstance.finalize() - botInstance = undefined - fileStorage = undefined - processConfig = undefined - thisObject = undefined - } - - function start(callBackFunction) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> Entering function."); } - - let currentTimeFrame - let currentTimeFrameLabel - - let market = bot.market; - let botNeverRan = true; - - /* Context Variables */ - - let contextVariables = { - lastFile: undefined, // Datetime of the last file files sucessfully produced by this process. - dateBeginOfMarket: undefined, // Datetime of the first trade file in the whole market history. - dateEndOfMarket: undefined // Datetime of the last file available to be used as an input of this process. - }; - - let previousDay; // Holds the date of the previous day relative to the processing date. - - let interExecutionMemoryArray = []; - - getContextVariables(); - - function getContextVariables() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> Entering function."); } - - let thisReport; - let reportKey; - let statusReport; - - /* We are going to use the start date as beging of market date. */ - contextVariables.dateBeginOfMarket = bot.VALUES_TO_USE.timeRange.initialDatetime - - /* - Here we get the status report from the bot who knows which is the end of the market. - */ - - statusReport = statusDependencies.reportsByMainUtility.get("Market Ending Point") - - if (statusReport === undefined) { // This means the status report does not exist, that could happen for instance at the begining of a month. - logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> Status Report does not exist. Retrying Later. "); - callBackFunction(global.DEFAULT_RETRY_RESPONSE); - return; - } - - if (statusReport.status === "Status Report is corrupt.") { - logger.write(MODULE_NAME, "[ERROR] start -> getContextVariables -> Can not continue because dependecy Status Report is corrupt. "); - callBackFunction(global.DEFAULT_RETRY_RESPONSE); - return; - } - - thisReport = statusReport.file; - - if (thisReport.lastFile === undefined) { - logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> Undefined Last File. -> thisReport = " + JSON.stringify(thisReport)); - - let customOK = { - result: global.CUSTOM_OK_RESPONSE.result, - message: "Dependency not ready." - } - logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> customOK = " + customOK.message); - callBackFunction(customOK); - return; - } - - contextVariables.dateEndOfMarket = new Date(thisReport.lastFile.valueOf()); - - /* Validation that the data is not up-to-date. */ - - if (bot.multiPeriodProcessDatetime.valueOf() - ONE_DAY_IN_MILISECONDS > contextVariables.dateEndOfMarket.valueOf() && bot.SESSION.type !== "Backtesting Session") { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> " + "Head of the market is @ " + contextVariables.dateEndOfMarket); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[ERROR] start -> getContextVariables -> You need to UPDATE your datasets in order to run a " + bot.SESSION.type) } - - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - - } - - /* Finally we get our own Status Report. */ - - statusReport = statusDependencies.reportsByMainUtility.get("Self Reference") - - if (statusReport === undefined) { // This means the status report does not exist, that could happen for instance at the begining of a month. - logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> Status Report does not exist. Retrying Later. "); - callBackFunction(global.DEFAULT_RETRY_RESPONSE); - return; - } - - if (statusReport.status === "Status Report is corrupt.") { - logger.write(MODULE_NAME, "[ERROR] start -> getContextVariables -> Can not continue because self dependecy Status Report is corrupt. Aborting Process."); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - - thisReport = statusReport.file; - - if (thisReport.lastFile !== undefined) { - - if (bot.hasTheBotJustStarted === true && bot.resumeExecution === false) { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> Starting from the begining because bot has just started and resume execution was true."); } - startFromBegining(); - return; - } - - contextVariables.lastFile = new Date(thisReport.lastFile); - interExecutionMemoryArray = thisReport.interExecutionMemoryArray; - - processSingleFiles(); - return; - - } else { - - /* - In the case when there is no status report, we assume like the last processed file is the one on the date of Begining of Market. - */ - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> Starting from the begining of the market because own status report not found or lastFile was undefined."); } - startFromBegining(); - return; - } - - function startFromBegining() { - - contextVariables.lastFile = new Date(contextVariables.dateBeginOfMarket.getUTCFullYear() + "-" + (contextVariables.dateBeginOfMarket.getUTCMonth() + 1) + "-" + contextVariables.dateBeginOfMarket.getUTCDate() + " " + "00:00" + GMT_SECONDS); - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> startFromBegining -> contextVariables.lastFile = " + contextVariables.lastFile); } - - /* - The first time the process is running is the right time to create the data structure that is going to be shared across different executions. - This data structure has one object per each timeFrame. - */ - - interExecutionMemoryArray = []; - - for (let i = 0; i < global.dailyFilePeriods.length; i++) { - let emptyObject = {}; - interExecutionMemoryArray.push(emptyObject); - } - - processSingleFiles(); - - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> getContextVariables -> err = " + err.stack); - if (err.message === "Cannot read property 'file' of undefined") { - logger.write(MODULE_NAME, "[HINT] start -> getContextVariables -> Check the bot configuration to see if all of its statusDependencies declarations are correct. "); - logger.write(MODULE_NAME, "[HINT] start -> getContextVariables -> Dependencies loaded -> keys = " + JSON.stringify(statusDependencies.keys)); - } - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function processSingleFiles() { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processSingleFiles -> Entering function."); } - - try { - let dependencyIndex = 0; - dataFiles = new Map(); - - dependencyLoopBody(); - - function dependencyLoopBody() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processSingleFiles -> dependencyLoopBody -> Entering function."); } - - let dependency = dataDependenciesModule.nodeArray[dependencyIndex]; - let datasetModule = dataDependenciesModule.dataSetsModulesArray[dependencyIndex]; - - getFile(); - - function getFile() { - try { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processSingleFiles -> dependencyLoopBody -> getFile -> Entering function."); } - - if (datasetModule.node.code.codeName !== "Single-File") { - dependencyControlLoop(); - return - } - - if (dataDependenciesModule.isItADepenency('atAnyTimeFrame', datasetModule.node.parentNode.code.singularVariableName) !== true) { - dependencyControlLoop(); - return - } - - let fileName = "Data.json"; - let filePath = datasetModule.node.parentNode.code.codeName + '/' + datasetModule.node.code.codeName; - datasetModule.getTextFile(filePath, fileName, onFileReceived); - - function onFileReceived(err, text) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processSingleFiles -> dependencyLoopBody -> getFile -> onFileReceived -> Entering function."); } - if (LOG_FILE_CONTENT === true) { logger.write(MODULE_NAME, "[INFO] start -> processSingleFiles -> dependencyLoopBody -> getFile -> onFileReceived -> text = " + text); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - if (err.message === 'File does not exist.') { - logger.write(MODULE_NAME, "[ERROR] The file " + filePath + '/' + fileName + ' does not exist and it is required to continue. This process will retry to read it in a while. In the meantime make yourself sure that the process that generates it has ran properly.'); - callBackFunction(global.DEFAULT_RETRY_RESPONSE); - } else { - logger.write(MODULE_NAME, "[ERROR] start -> processSingleFiles -> dependencyLoopBody -> getFile -> onFileReceived -> err = " + err.message); - callBackFunction(err); - } - return; - } - - let dataFile = JSON.parse(text); - dataFiles.set(dependency.id, dataFile); - - dependencyControlLoop(); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processSingleFiles -> dependencyLoopBody -> getFile -> onFileReceived -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processSingleFiles -> dependencyLoopBody -> getFile -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processSingleFiles -> timeFramesLoop -> dependencyLoopBody -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function dependencyControlLoop() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processSingleFiles -> dependencyControlLoop -> Entering function."); } - - dependencyIndex++; - - if (dependencyIndex < dataDependenciesModule.nodeArray.length) { - - dependencyLoopBody(); - - } else { - - let mapKey = "Single Files" - multiPeriodDataFiles.set(mapKey, dataFiles) - - processMarketFiles(); - - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processSingleFiles -> dependencyControlLoop -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processSingleFiles -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function processMarketFiles() { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processMarketFiles -> Entering function."); } - - try { - - let n; - - timeFramesLoop(); - - function timeFramesLoop() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processMarketFiles -> timeFramesLoop -> Entering function."); } - - /* - We will iterate through all posible timeFrames. - */ - - n = 0 // loop Variable representing each possible period as defined at the timeFrames array. - - timeFramesLoopBody(); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processMarketFiles -> timeFramesLoop -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function timeFramesLoopBody() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processMarketFiles -> timeFramesLoopBody -> Entering function."); } - - const timeFrame = global.marketFilesPeriods[n][0]; - const timeFrameLabel = global.marketFilesPeriods[n][1]; - - let dependencyIndex = 0; - dataFiles = new Map(); - - if (bot.VALUES_TO_USE.timeFrame === timeFrameLabel) { - currentTimeFrame = global.marketFilesPeriods[n][0]; - currentTimeFrameLabel = global.marketFilesPeriods[n][1]; - } - dependencyLoopBody(); - - function dependencyLoopBody() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processMarketFiles -> timeFramesLoopBody -> dependencyLoopBody -> Entering function."); } - - let dependency = dataDependenciesModule.nodeArray[dependencyIndex]; - let datasetModule = dataDependenciesModule.dataSetsModulesArray[dependencyIndex]; - - getFile(); - - function getFile() { - try { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processMarketFiles -> timeFramesLoopBody -> dependencyLoopBody -> getFile -> Entering function."); } - - if (dependency.referenceParent.code.codeName !== "Multi-Period-Market") { - dependencyControlLoop(); - return - } - - if (dataDependenciesModule.isItADepenency(timeFrameLabel, datasetModule.node.parentNode.code.singularVariableName) !== true) { - if (!(bot.VALUES_TO_USE.timeFrame === timeFrameLabel && datasetModule.node.parentNode.code.pluralVariableName === 'candles')) { - dependencyControlLoop(); - return - } - } - - let fileName = "Data.json"; - let filePath = dependency.referenceParent.parentNode.code.codeName + '/' + dependency.referenceParent.code.codeName + "/" + timeFrameLabel; - datasetModule.getTextFile(filePath, fileName, onFileReceived); - - function onFileReceived(err, text) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processMarketFiles -> timeFramesLoopBody -> dependencyLoopBody -> getFile -> onFileReceived -> Entering function."); } - if (LOG_FILE_CONTENT === true) { logger.write(MODULE_NAME, "[INFO] start -> processMarketFiles -> timeFramesLoopBody -> dependencyLoopBody -> getFile -> onFileReceived -> text = " + text); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - if (err.message === 'File does not exist.') { - logger.write(MODULE_NAME, "[ERROR] The file " + filePath + '/' + fileName + ' does not exist and it is required to continue. This process will retry to read it in a while. In the meantime make yourself sure that the process that generates it has ran properly.'); - callBackFunction(global.DEFAULT_RETRY_RESPONSE); - } else { - logger.write(MODULE_NAME, "[ERROR] start -> processMarketFiles -> timeFramesLoopBody -> dependencyLoopBody -> getFile -> onFileReceived -> err = " + err.message); - callBackFunction(err); - } - return; - } - - let dataFile = JSON.parse(text); - dataFiles.set(dependency.id, dataFile); - - dependencyControlLoop(); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processMarketFiles -> timeFramesLoopBody -> dependencyLoopBody -> getFile -> onFileReceived -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processMarketFiles -> timeFramesLoopBody -> dependencyLoopBody -> getFile -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processMarketFiles -> timeFramesLoop -> dependencyLoopBody -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function dependencyControlLoop() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processMarketFiles -> dependencyControlLoop -> Entering function."); } - - dependencyIndex++; - - if (dependencyIndex < dataDependenciesModule.nodeArray.length) { - - dependencyLoopBody(); - - } else { - - let mapKey = global.marketFilesPeriods[n][1]; - multiPeriodDataFiles.set(mapKey, dataFiles) - - timeFramesControlLoop(); - - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processMarketFiles -> dependencyControlLoop -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processMarketFiles -> timeFramesLoopBody -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function timeFramesControlLoop() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processMarketFiles -> timeFramesControlLoop -> Entering function."); } - - n++; - - if (n < global.marketFilesPeriods.length) { - - timeFramesLoopBody(); - - } else { - - processDailyFiles(); - - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processMarketFiles -> timeFramesControlLoop -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processMarketFiles -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function processDailyFiles() { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> Entering function."); } - - try { - - let n = 0; - - if (currentTimeFrame) { - callTheBot() - return - } - - bot.multiPeriodProcessDatetime = new Date(contextVariables.lastFile.valueOf() - ONE_DAY_IN_MILISECONDS); // Go back one day to start well when we advance time at the begining of the loop. - - advanceTime(); - - function advanceTime() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> advanceTime -> Entering function."); } - - bot.multiPeriodProcessDatetime = new Date(bot.multiPeriodProcessDatetime.valueOf() + ONE_DAY_IN_MILISECONDS); - previousDay = new Date(bot.multiPeriodProcessDatetime.valueOf() - ONE_DAY_IN_MILISECONDS); - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> advanceTime -> bot.multiPeriodProcessDatetime = " + bot.multiPeriodProcessDatetime); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> advanceTime -> previousDay = " + previousDay); } - - /* Validation that we are not going past the user defined end date. */ - - if (bot.multiPeriodProcessDatetime.valueOf() >= bot.VALUES_TO_USE.timeRange.finalDatetime.valueOf()) { - - const logText = "User Defined End Datetime reached @ " + previousDay.getUTCFullYear() + "/" + (previousDay.getUTCMonth() + 1) + "/" + previousDay.getUTCDate() + "."; - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> advanceTime -> " + logText); } - - bot.STOP_SESSION = true - callBackFunction(global.DEFAULT_OK_RESPONSE); - return; - - } - - /* Validation that we are not going past the head of the market. */ - - if (bot.multiPeriodProcessDatetime.valueOf() > contextVariables.dateEndOfMarket.valueOf() + ONE_DAY_IN_MILISECONDS - 1) { - - const logText = "Head of the market found @ " + previousDay.getUTCFullYear() + "/" + (previousDay.getUTCMonth() + 1) + "/" + previousDay.getUTCDate() + "."; - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> advanceTime -> " + logText); } - - callBackFunction(global.DEFAULT_OK_RESPONSE); - return; - - } - - checkStopTaskGracefully(); - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> advanceTime -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function checkStopTaskGracefully() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> checkStopTaskGracefully -> Entering function."); } - - /* Validation that we dont need to stop. */ - - if (global.STOP_TASK_GRACEFULLY === true) { - - callBackFunction(global.DEFAULT_OK_RESPONSE); - return; - - } - - checkStopProcessing(); - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> checkStopTaskGracefully -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function checkStopProcessing() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> checkStopProcessing -> Entering function."); } - - /* Validation that we dont need to stop. */ - - if (bot.STOP_SESSION === true) { - - callBackFunction(global.DEFAULT_OK_RESPONSE); - return; - - } - - timeFramesLoop(); - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> checkStopProcessing -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function timeFramesLoop() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> timeFramesLoop -> Entering function."); } - - /* Telling the world we are alive and doing well */ - let processingDate = bot.multiPeriodProcessDatetime.getUTCFullYear() + '-' + utilities.pad(bot.multiPeriodProcessDatetime.getUTCMonth() + 1, 2) + '-' + utilities.pad(bot.multiPeriodProcessDatetime.getUTCDate(), 2); - bot.processHeartBeat(processingDate) - - /* - - We will iterate through all posible timeFrames. - - */ - - n = 0 // loop Variable representing each possible period as defined at the timeFrames array. - - timeFramesLoopBody(); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> timeFramesLoop -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function timeFramesLoopBody() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> timeFramesLoopBody -> Entering function."); } - - const timeFrame = global.dailyFilePeriods[n][0]; - const timeFrameLabel = global.dailyFilePeriods[n][1]; - - if (processConfig.framework.validtimeFrames !== undefined) { - let validPeriod = false; - for (let i = 0; i < processConfig.framework.validtimeFrames.length; i++) { - let period = processConfig.framework.validtimeFrames[i]; - if (period === timeFrameLabel) { validPeriod = true } - } - if (validPeriod === false) { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> timeFramesLoopBody -> Discarding period for not being listed as a valid period. -> timeFrameLabel = " + timeFrameLabel); } - timeFramesControlLoop(); - return; - } - } - - if (bot.VALUES_TO_USE.timeFrame === timeFrameLabel) { - currentTimeFrame = global.dailyFilePeriods[n][0]; - currentTimeFrameLabel = global.dailyFilePeriods[n][1]; - } - - let dependencyIndex = 0; - dataFiles = new Map(); - dependencyLoopBody(); - - function dependencyLoopBody() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> timeFramesLoopBody -> dependencyLoopBody -> Entering function."); } - - let dependency = dataDependenciesModule.nodeArray[dependencyIndex]; - let datasetModule = dataDependenciesModule.dataSetsModulesArray[dependencyIndex]; - - let previousFile; - let currentFile; - - if (bot.multiPeriodProcessDatetime.valueOf() > contextVariables.dateBeginOfMarket.valueOf()) { - getPreviousFile(); - } else { - previousFile = []; - getCurrentFile() - } - - function getPreviousFile() { - try { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> timeFramesLoopBody -> dependencyLoopBody -> getPreviousFile -> Entering function."); } - - if (dependency.referenceParent.code.codeName !== "Multi-Period-Daily") { - dependencyControlLoop(); - return - } - - if (dataDependenciesModule.isItADepenency(timeFrameLabel, datasetModule.node.parentNode.code.singularVariableName) !== true) { - if (!(bot.VALUES_TO_USE.timeFrame === timeFrameLabel && datasetModule.node.parentNode.code.pluralVariableName === 'candles')) { - dependencyControlLoop(); - return - } - } - - let dateForPath = previousDay.getUTCFullYear() + '/' + utilities.pad(previousDay.getUTCMonth() + 1, 2) + '/' + utilities.pad(previousDay.getUTCDate(), 2); - let filePath - - if (dependency.referenceParent.code.codeName === "Multi-Period-Daily") { - filePath = dependency.referenceParent.parentNode.code.codeName + '/' + dependency.referenceParent.code.codeName + "/" + timeFrameLabel + "/" + dateForPath; - } else { - filePath = dependency.referenceParent.parentNode.code.codeName + '/' + dependency.referenceParent.code.codeName + "/" + dateForPath; - } - let fileName = "Data.json"; - - datasetModule.getTextFile(filePath, fileName, onFileReceived); - - function onFileReceived(err, text) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> timeFramesLoopBody -> dependencyLoopBody -> getPreviousFile -> onFileReceived -> Entering function."); } - if (LOG_FILE_CONTENT === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> timeFramesLoopBody -> dependencyLoopBody -> getPreviousFile -> onFileReceived -> text = " + text); } - - if ((err.message === "File does not exist." && botNeverRan === true) || err.code === 'The specified key does not exist.') { - - /* - Sometimes one of the dependencies of an indicator for some reasons are not calculated from the begining of the market. - When that happens we can not find those files. What we do in this situation is to move the time fordward until we can find - all the dependencies and the first run of the bot is successful. - - After that, we will not accept more missing files on any of the dependencies, and if any is missing we will abort the processing. - */ - logger.write(MODULE_NAME, "[WARN] start -> processDailyFiles -> timeFramesLoopBody -> dependencyLoopBody -> getPreviousFile -> onFileReceived -> Skipping day because file " + filePath + "/" + fileName + " was not found."); - - advanceTime(); - return; - } - - if ((err.result === "Fail Because" && err.message === "File does not exist.") || err.code === 'The specified key does not exist.') { - - logger.write(MODULE_NAME, "[ERROR] The file " + filePath + '/' + fileName + ' does not exist and it is required to continue. This process will retry to read it in a while. In the meantime make yourself sure that the process that generates it has ran properly.'); - callBackFunction(global.DEFAULT_RETRY_RESPONSE); - return; - } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> timeFramesLoopBody -> dependencyLoopBody -> getPreviousFile -> onFileReceived -> err = " + err.stack); - callBackFunction(err); - return; - } - - previousFile = JSON.parse(text); - - getCurrentFile(); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> timeFramesLoopBody -> dependencyLoopBody -> getPreviousFile -> onFileReceived -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> timeFramesLoopBody -> dependencyLoopBody -> getPreviousFile -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function getCurrentFile() { - try { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> timeFramesLoopBody -> dependencyLoopBody -> getCurrentFile -> Entering function."); } - - if (dependency.referenceParent.code.codeName !== "Multi-Period-Daily") { - dependencyControlLoop(); - return - } - - if (dataDependenciesModule.isItADepenency(timeFrameLabel, datasetModule.node.parentNode.code.singularVariableName) !== true) { - if (!(bot.VALUES_TO_USE.timeFrame === timeFrameLabel && datasetModule.node.parentNode.code.pluralVariableName === 'candles')) { - dependencyControlLoop(); - return - } - } - - let dateForPath = bot.multiPeriodProcessDatetime.getUTCFullYear() + '/' + utilities.pad(bot.multiPeriodProcessDatetime.getUTCMonth() + 1, 2) + '/' + utilities.pad(bot.multiPeriodProcessDatetime.getUTCDate(), 2); - let filePath - if (dependency.referenceParent.code.codeName === "Multi-Period-Daily") { - filePath = dependency.referenceParent.parentNode.code.codeName + '/' + dependency.referenceParent.code.codeName + "/" + timeFrameLabel + "/" + dateForPath; - } else { - filePath = dependency.referenceParent.parentNode.code.codeName + '/' + dependency.referenceParent.code.codeName + "/" + dateForPath; - } - let fileName = "Data.json"; - - datasetModule.getTextFile(filePath, fileName, onFileReceived); - - function onFileReceived(err, text) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> timeFramesLoopBody -> dependencyLoopBody -> getCurrentFile -> onFileReceived -> Entering function."); } - if (LOG_FILE_CONTENT === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> timeFramesLoopBody -> dependencyLoopBody -> getCurrentFile -> onFileReceived -> text = " + text); } - - if ((err.result === "Fail Because" && err.message === "File does not exist.") || err.code === 'The specified key does not exist.') { - - logger.write(MODULE_NAME, "[ERROR] The file " + filePath + '/' + fileName + ' does not exist and it is required to continue. This process will retry to read it in a while. In the meantime make yourself sure that the process that generates it has ran properly.'); - callBackFunction(global.DEFAULT_RETRY_RESPONSE); - return; - } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> timeFramesLoopBody -> dependencyLoopBody -> getCurrentFile -> onFileReceived -> Not Ok -> err = " + err.code); - callBackFunction(err); - return; - } - - currentFile = JSON.parse(text); - - let dataFile = previousFile.concat(currentFile); - - dataFiles.set(dependency.id, dataFile); - - dependencyControlLoop(); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> timeFramesLoopBody -> dependencyLoopBody -> getCurrentFile -> onFileReceived -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> timeFramesLoopBody -> dependencyLoopBody -> getCurrentFile -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> timeFramesLoop -> dependencyLoopBody -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function dependencyControlLoop() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> dependencyControlLoop -> Entering function."); } - - dependencyIndex++; - - if (dependencyIndex < dataDependenciesModule.nodeArray.length) { - - dependencyLoopBody(); - - } else { - - let mapKey = global.dailyFilePeriods[n][1]; - multiPeriodDataFiles.set(mapKey, dataFiles) - - timeFramesControlLoop(); - - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> dependencyControlLoop -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> timeFramesLoopBody -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function timeFramesControlLoop() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> timeFramesControlLoop -> Entering function."); } - - n++; - - if (n < global.dailyFilePeriods.length) { - - timeFramesLoopBody(); - - } else { - - n = 0; - - if (currentTimeFrame !== undefined) { - callTheBot(); - } else { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> timeFramesControlLoop -> Time Frame not Recognized. Can not continue." ); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> timeFramesControlLoop -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function callTheBot() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> callTheBot -> Entering function."); } - - botInstance.start( - multiPeriodDataFiles, - currentTimeFrame, - currentTimeFrameLabel, - bot.multiPeriodProcessDatetime, - interExecutionMemoryArray[n], - onBotFinished); - - function onBotFinished(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> callTheBot -> onBotFinished -> Entering function."); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - callBackFunction(err); - return; - } - - botNeverRan = false; - - if (currentTimeFrame > global.dailyFilePeriods[0][0]) { - writeMarketStatusReport(onMarketStatusReport) - - } else { - writeDataRanges(currentTimeFrameLabel, onWritten); - } - - function onWritten(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> callTheBot -> onBotFinished -> onWritten -> Entering function."); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> callTheBot -> onBotFinished -> onWritten -> err = " + err.stack); - callBackFunction(err); - return; - } - - writeDailyStatusReport(bot.multiPeriodProcessDatetime, onDailyStatusReport); - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> callTheBot -> onBotFinished -> onWritten -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - - function onDailyStatusReport() { - try { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> callTheBot -> onBotFinished -> onDailyStatusReport -> Entering function."); } - - /* The next run we need the process to continue at the date it finished. */ - processConfig.framework.startDate.resumeExecution = true; - - advanceTime(); - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> callTheBot -> onBotFinished -> onDailyStatusReport -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function onMarketStatusReport() { - try { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> callTheBot -> onBotFinished -> onMarketStatusReport -> Entering function."); } - - /* This is where we check if we need reached the user defined end datetime. */ - - const now = new Date() - if (now.valueOf() >= bot.VALUES_TO_USE.timeRange.finalDatetime.valueOf()) { - - const logText = "User Defined End Datetime reached @ " + now.getUTCFullYear() + "/" + (now.getUTCMonth() + 1) + "/" + now.getUTCDate() + "."; - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processDailyFiles -> callTheBot -> onBotFinished -> onMarketStatusReport -> " + logText); } - - bot.STOP_SESSION = true - callBackFunction(global.DEFAULT_OK_RESPONSE); - return; - - } - - callBackFunction(global.DEFAULT_OK_RESPONSE); - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> callTheBot -> onBotFinished -> onMarketStatusReport -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> callTheBot -> onBotFinished -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> callTheBot -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processDailyFiles -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function writeDataRanges(currentTimeFrameLabel, callBack) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDataRanges -> Entering function."); } - - let outputDatasetIndex = -1; - controlLoop(); - - function productLoopBody() { - let productCodeName = bot.processNode.referenceParent.processOutput.outputDatasets[outputDatasetIndex].referenceParent.parentNode.code.codeName; - writeDataRange(contextVariables.dateBeginOfMarket, bot.multiPeriodProcessDatetime, productCodeName, currentTimeFrameLabel, controlLoop); - } - - function controlLoop() { - - outputDatasetIndex++; - - if (outputDatasetIndex < bot.processNode.referenceParent.processOutput.outputDatasets.length) { - productLoopBody(); - } else { - callBack(global.DEFAULT_OK_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeDataRanges -> err = " + err.stack); - callBack(global.DEFAULT_FAIL_RESPONSE); - } - - } - - function writeDataRange(pBegin, pEnd, productCodeName, currentTimeFrameLabel, callBack) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDataRange -> Entering function."); } - - let dataRange = { - begin: pBegin.valueOf(), - end: pEnd.valueOf() + ONE_DAY_IN_MILISECONDS - }; - - let fileContent = JSON.stringify(dataRange); - - let fileName = '/Data.Range.json'; - let filePath = bot.filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + productCodeName + "/" + 'Multi-Period-Daily' + fileName; - - fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); - - function onFileCreated(err) { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDataRange -> onFileCreated -> Entering function."); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[ERROR] start -> writeDataRange -> onFileCreated -> err = " + err.stack); - callBack(err); - return; - } - - if (LOG_FILE_CONTENT === true) { - logger.write(MODULE_NAME, "[INFO] start -> writeDataRange -> onFileCreated -> Content written = " + fileContent); - } - - let key = bot.dataMine + "-" + bot.codeName + "-" + productCodeName + "-" + bot.exchange + "-" + bot.market.baseAsset + '/' + bot.market.quotedAsset - let event = { - dateRange: dataRange - } - - global.EVENT_SERVER_CLIENT.raiseEvent(key, 'Data Range Updated', event) - - callBack(global.DEFAULT_OK_RESPONSE); - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeDataRange -> err = " + err.stack); - callBack(global.DEFAULT_FAIL_RESPONSE); - } - } - - function writeDailyStatusReport(lastFileDate, callBack) { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDailyStatusReport -> Entering function."); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDailyStatusReport -> lastFileDate = " + lastFileDate); } - - try { - - let reportKey = bot.dataMine + "-" + bot.codeName + "-" + "Multi-Period" + "-" + "dataSet.V1"; - let thisReport = statusDependencies.statusReports.get(reportKey); - - thisReport.file.lastExecution = bot.currentDaytime; - thisReport.file.lastFile = lastFileDate; - thisReport.file.interExecutionMemoryArray = interExecutionMemoryArray; - thisReport.save(callBack); - - bot.hasTheBotJustStarted = false; - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyStatusReport -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function writeMarketStatusReport(callBack) { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeMarketStatusReport -> Entering function."); } - - try { - - let reportKey = bot.dataMine + "-" + bot.codeName + "-" + "Multi-Period" + "-" + "dataSet.V1"; - let thisReport = statusDependencies.statusReports.get(reportKey); - - thisReport.file.lastExecution = bot.processDatetime; - thisReport.save(callBack); - - logger.newInternalLoop(bot.codeName, bot.process, bot.multiPeriodProcessDatetime); - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketStatusReport -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - } - - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function pad(str, max) { - str = str.toString(); - return str.length < max ? pad(" " + str, max) : str; - } -}; diff --git a/TaskServer/MultiPeriodDaily.js b/TaskServer/MultiPeriodDaily.js index 4e384081d..cdc4a892b 100644 --- a/TaskServer/MultiPeriodDaily.js +++ b/TaskServer/MultiPeriodDaily.js @@ -1,10 +1,7 @@ exports.newMultiPeriodDaily = function newMultiPeriodDaily(bot, logger, UTILITIES, FILE_STORAGE) { - const FULL_LOG = true; - const LOG_FILE_CONTENT = false; const MODULE_NAME = "Multi Period Daily"; const GMT_SECONDS = ':00.000 GMT+0000'; - const ONE_DAY_IN_MILISECONDS = 24 * 60 * 60 * 1000; thisObject = { initialize: initialize, @@ -12,17 +9,15 @@ start: start }; - let utilities = UTILITIES.newCloudUtilities(logger); + let utilities = UTILITIES.newCloudUtilities(logger) + let fileStorage = FILE_STORAGE.newFileStorage(logger) let statusDependencies; let dataDependenciesModule; let dataFiles = new Map; + let indicatorOutputModule; - let botInstance; - - let fileStorage = FILE_STORAGE.newFileStorage(logger); - - let bootstrappingTheProcess = false + let bootstrappingTheProcess = false let processConfig; let beginingOfMarket @@ -30,49 +25,34 @@ return thisObject; function initialize(pProcessConfig, pStatusDependencies, pDataDependencies, callBackFunction) { + logger.fileName = MODULE_NAME; + logger.initialize() - try { + statusDependencies = pStatusDependencies; + dataDependenciesModule = pDataDependencies; + processConfig = pProcessConfig; - logger.fileName = MODULE_NAME; - logger.initialize(); + let INDICATOR_OUTPUT_MODULE = require("./IndicatorOutput") - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Entering function."); } - - statusDependencies = pStatusDependencies; - dataDependenciesModule = pDataDependencies; - processConfig = pProcessConfig; - - let USER_BOT_MODULE = require("./IndicatorBot") - - botInstance = USER_BOT_MODULE.newIndicatorBot(bot, logger, UTILITIES, FILE_STORAGE); - botInstance.initialize(callBackFunction); - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } + indicatorOutputModule = INDICATOR_OUTPUT_MODULE.newIndicatorOutput(bot, logger, UTILITIES, FILE_STORAGE) + indicatorOutputModule.initialize(callBackFunction) } function finalize() { dataFiles = undefined statusDependencies = undefined dataDependenciesModule = undefined - botInstance = undefined + indicatorOutputModule = undefined fileStorage = undefined processConfig = undefined thisObject = undefined } function start(callBackFunction) { - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> Entering function."); } - let market = bot.market; /* Context Variables */ - let contextVariables = { lastFile: undefined, // Datetime of the last file files sucessfully produced by this process. dateBeginOfMarket: undefined, // Datetime of the first trade file in the whole market history. @@ -80,726 +60,512 @@ }; let previousDay; // Holds the date of the previous day relative to the processing date. - let interExecutionMemoryArray; - getContextVariables(); + getContextVariables() function getContextVariables() { - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> Entering function."); } - let thisReport; let reportKey; let statusReport; - /* - We look first for the bot who knows the begining of the market in order to get when the market starts. + We look first for the bot who knows the begining of the market in order to get when the market starts. */ - statusReport = statusDependencies.reportsByMainUtility.get("Market Starting Point") if (statusReport === undefined) { // This means the status report does not exist, that could happen for instance at the begining of a month. - logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> Market Starting Point -> Status Report does not exist or Market Starting Point not defined. Retrying Later. "); - callBackFunction(global.DEFAULT_RETRY_RESPONSE); - return; + logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> Market Starting Point -> Status Report does not exist or Market Starting Point not defined. Retrying Later. ") + callBackFunction(global.DEFAULT_RETRY_RESPONSE) + return } if (statusReport.status === "Status Report is corrupt.") { - logger.write(MODULE_NAME, "[ERROR] start -> getContextVariables -> Can not continue because dependecy Status Report is corrupt. "); - callBackFunction(global.DEFAULT_RETRY_RESPONSE); - return; + logger.write(MODULE_NAME, "[ERROR] start -> getContextVariables -> Can not continue because dependecy Status Report is corrupt. ") + callBackFunction(global.DEFAULT_RETRY_RESPONSE) + return } thisReport = statusReport.file; if (thisReport.beginingOfMarket === undefined) { - logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> Undefined Last File. -> reportKey = " + reportKey); - logger.write(MODULE_NAME, "[HINT] start -> getContextVariables -> It is too early too run this process since the trade history of the market is not there yet."); + logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> Undefined Last File. -> reportKey = " + reportKey) + logger.write(MODULE_NAME, "[HINT] start -> getContextVariables -> It is too early too run this process since the trade history of the market is not there yet.") let customOK = { result: global.CUSTOM_OK_RESPONSE.result, message: "Dependency does not exist." } - logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> customOK = " + customOK.message); - callBackFunction(customOK); - return; + logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> customOK = " + customOK.message) + callBackFunction(customOK) + return } - contextVariables.dateBeginOfMarket = new Date(thisReport.beginingOfMarket.year + "-" + thisReport.beginingOfMarket.month + "-" + thisReport.beginingOfMarket.days + " " + thisReport.beginingOfMarket.hours + ":" + thisReport.beginingOfMarket.minutes + GMT_SECONDS); - + contextVariables.dateBeginOfMarket = new Date(thisReport.beginingOfMarket.year + "-" + thisReport.beginingOfMarket.month + "-" + thisReport.beginingOfMarket.days + " " + thisReport.beginingOfMarket.hours + ":" + thisReport.beginingOfMarket.minutes + GMT_SECONDS) /* - Here we get the status report from the bot who knows which is the end of the market. + Here we get the status report from the bot who knows which is the end of the market. */ - statusReport = statusDependencies.reportsByMainUtility.get("Market Ending Point") if (statusReport === undefined) { // This means the status report does not exist, that could happen for instance at the begining of a month. - logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> Market Ending Point -> Status Report does not exist or Market Ending Point not defined. Retrying Later. "); - callBackFunction(global.DEFAULT_RETRY_RESPONSE); - return; + logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> Market Ending Point -> Status Report does not exist or Market Ending Point not defined. Retrying Later. ") + callBackFunction(global.DEFAULT_RETRY_RESPONSE) + return } if (statusReport.status === "Status Report is corrupt.") { - logger.write(MODULE_NAME, "[ERROR] start -> getContextVariables -> Can not continue because dependecy Status Report is corrupt. "); - callBackFunction(global.DEFAULT_RETRY_RESPONSE); - return; + logger.write(MODULE_NAME, "[ERROR] start -> getContextVariables -> Can not continue because dependecy Status Report is corrupt. ") + callBackFunction(global.DEFAULT_RETRY_RESPONSE) + return } thisReport = statusReport.file; if (thisReport.lastFile === undefined) { - logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> Undefined Last File. -> reportKey = " + reportKey); + logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> Undefined Last File. -> reportKey = " + reportKey) let customOK = { result: global.CUSTOM_OK_RESPONSE.result, message: "Dependency not ready." } - logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> customOK = " + customOK.message); - callBackFunction(customOK); - return; + logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> customOK = " + customOK.message) + callBackFunction(customOK) + return } - contextVariables.dateEndOfMarket = new Date(thisReport.lastFile.valueOf()); + contextVariables.dateEndOfMarket = new Date(thisReport.lastFile.valueOf()) /* Finally we get our own Status Report. */ - statusReport = statusDependencies.reportsByMainUtility.get("Self Reference") if (statusReport === undefined) { // This means the status report does not exist, that could happen for instance at the begining of a month. - logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> Self Reference -> Status Report does not exist or Self Reference not defined. Retrying Later. "); - callBackFunction(global.DEFAULT_RETRY_RESPONSE); - return; + logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> Self Reference -> Status Report does not exist or Self Reference not defined. Retrying Later. ") + callBackFunction(global.DEFAULT_RETRY_RESPONSE) + return } if (statusReport.status === "Status Report is corrupt.") { - logger.write(MODULE_NAME, "[ERROR] start -> getContextVariables -> Can not continue because self dependecy Status Report is corrupt. Aborting Process."); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; + logger.write(MODULE_NAME, "[ERROR] start -> getContextVariables -> Can not continue because self dependecy Status Report is corrupt. Aborting Process.") + callBackFunction(global.DEFAULT_FAIL_RESPONSE) + return } thisReport = statusReport.file; if (thisReport.lastFile !== undefined) { - beginingOfMarket = new Date(thisReport.beginingOfMarket); + beginingOfMarket = new Date(thisReport.beginingOfMarket) if (beginingOfMarket.valueOf() !== contextVariables.dateBeginOfMarket.valueOf()) { // Reset Mechanism for Begining of the Market - logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> Reset Mechanism for Begining of the Market Activated. -> reportKey = " + reportKey); + logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> Reset Mechanism for Begining of the Market Activated. -> reportKey = " + reportKey) - beginingOfMarket = new Date(contextVariables.dateBeginOfMarket.valueOf()); - startFromBegining(); - return; + beginingOfMarket = new Date(contextVariables.dateBeginOfMarket.valueOf()) + startFromBegining() + return } if (bot.hasTheBotJustStarted === true && processConfig.framework.startDate !== undefined && processConfig.framework.startDate.resumeExecution === false) { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> Starting from the begining because bot has just started and resume execution was true."); } - startFromBegining(); - return; + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> Starting from the begining because bot has just started and resume execution was true.") } + startFromBegining() + return } - contextVariables.lastFile = new Date(thisReport.lastFile); + contextVariables.lastFile = new Date(thisReport.lastFile) interExecutionMemoryArray = thisReport.interExecutionMemoryArray; - processTimeFrames(); - return; - + processTimeFrames() } else { /* In the case when there is no status report, we assume like the last processed file is the one on the date of Begining of Market. */ - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> Starting from the begining of the market because own status report not found or lastFile was undefined."); } - beginingOfMarket = new Date(contextVariables.dateBeginOfMarket.valueOf()); - startFromBegining(); - return; + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> Starting from the begining of the market because own status report not found or lastFile was undefined.") } + beginingOfMarket = new Date(contextVariables.dateBeginOfMarket.valueOf()) + startFromBegining() } function startFromBegining() { + contextVariables.lastFile = new Date(contextVariables.dateBeginOfMarket.getUTCFullYear() + "-" + (contextVariables.dateBeginOfMarket.getUTCMonth() + 1) + "-" + contextVariables.dateBeginOfMarket.getUTCDate() + " " + "00:00" + GMT_SECONDS) - contextVariables.lastFile = new Date(contextVariables.dateBeginOfMarket.getUTCFullYear() + "-" + (contextVariables.dateBeginOfMarket.getUTCMonth() + 1) + "-" + contextVariables.dateBeginOfMarket.getUTCDate() + " " + "00:00" + GMT_SECONDS); - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> startFromBegining -> contextVariables.lastFile = " + contextVariables.lastFile); } - + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> startFromBegining -> contextVariables.lastFile = " + contextVariables.lastFile) } /* The first time the process is running is the right time to create the data structure that is going to be shared across different executions. This data structure has one object per each timeFrame. */ - - interExecutionMemoryArray = []; + interExecutionMemoryArray = [] /* Also, we will remember that we are bootstrapping the process, this will allow us, to advanceTime if necesary. It can happen that a process depends on data from another process that does not produce a file during the first day, or even more days, in that situation we want the process not to just wait for that data that will never arrive, but to advance time until it finds valid data. */ - bootstrappingTheProcess = true for (let i = 0; i < global.dailyFilePeriods.length; i++) { let emptyObject = {}; - interExecutionMemoryArray.push(emptyObject); + interExecutionMemoryArray.push(emptyObject) } - processTimeFrames(); - + processTimeFrames() } } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> getContextVariables -> err = "+ err.stack); + logger.write(MODULE_NAME, "[ERROR] start -> getContextVariables -> err = " + err.stack) if (err.message === "Cannot read property 'file' of undefined") { - logger.write(MODULE_NAME, "[HINT] start -> getContextVariables -> Check the bot configuration to see if all of its statusDependencies declarations are correct. "); - logger.write(MODULE_NAME, "[HINT] start -> getContextVariables -> Dependencies loaded -> keys = " + JSON.stringify(statusDependencies.keys)); + logger.write(MODULE_NAME, "[HINT] start -> getContextVariables -> Check the bot configuration to see if all of its statusDependencies declarations are correct. ") + logger.write(MODULE_NAME, "[HINT] start -> getContextVariables -> Dependencies loaded -> keys = " + JSON.stringify(statusDependencies.keys)) } - callBackFunction(global.DEFAULT_FAIL_RESPONSE); + callBackFunction(global.DEFAULT_FAIL_RESPONSE) } } function processTimeFrames() { + let n; + let botNeverRan = true; - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> Entering function."); } + bot.multiPeriodDailyProcessDatetime = new Date(contextVariables.lastFile.valueOf() - ONE_DAY_IN_MILISECONDS) // Go back one day to start well when we advance time at the begining of the loop. + let fromDate = new Date(bot.multiPeriodDailyProcessDatetime.valueOf()) + let lastDate = new Date() - try { + advanceTime() - let n; - let botNeverRan = true; + function advanceTime() { + bot.multiPeriodDailyProcessDatetime = new Date(bot.multiPeriodDailyProcessDatetime.valueOf() + ONE_DAY_IN_MILISECONDS) + previousDay = new Date(bot.multiPeriodDailyProcessDatetime.valueOf() - ONE_DAY_IN_MILISECONDS) - bot.multiPeriodDailyProcessDatetime = new Date(contextVariables.lastFile.valueOf() - ONE_DAY_IN_MILISECONDS); // Go back one day to start well when we advance time at the begining of the loop. - let fromDate = new Date(bot.multiPeriodDailyProcessDatetime.valueOf()) - let lastDate = new Date() + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> advanceTime -> bot.multiPeriodDailyProcessDatetime = " + bot.multiPeriodDailyProcessDatetime) } + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> advanceTime -> previousDay = " + previousDay) } - advanceTime(); + /* Validation that we are not going past the head of the market. */ + if (bot.multiPeriodDailyProcessDatetime.valueOf() > contextVariables.dateEndOfMarket.valueOf()) { - function advanceTime() { + const logText = "Head of the market found @ " + previousDay.getUTCFullYear() + "/" + (previousDay.getUTCMonth() + 1) + "/" + previousDay.getUTCDate() + "."; + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> advanceTime -> " + logText) } - try { + callBackFunction(global.DEFAULT_OK_RESPONSE) + return - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> advanceTime -> Entering function."); } - - bot.multiPeriodDailyProcessDatetime = new Date(bot.multiPeriodDailyProcessDatetime.valueOf() + ONE_DAY_IN_MILISECONDS); - previousDay = new Date(bot.multiPeriodDailyProcessDatetime.valueOf() - ONE_DAY_IN_MILISECONDS); - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> advanceTime -> bot.multiPeriodDailyProcessDatetime = " + bot.multiPeriodDailyProcessDatetime); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> advanceTime -> previousDay = " + previousDay); } - - /* Validation that we are not going past the head of the market. */ - - if (bot.multiPeriodDailyProcessDatetime.valueOf() > contextVariables.dateEndOfMarket.valueOf()) { - - const logText = "Head of the market found @ " + previousDay.getUTCFullYear() + "/" + (previousDay.getUTCMonth() + 1) + "/" + previousDay.getUTCDate() + "."; - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> advanceTime -> " + logText); } - - callBackFunction(global.DEFAULT_OK_RESPONSE); - return; - - } - - /* Telling the world we are alive and doing well */ - let currentDateString = bot.multiPeriodDailyProcessDatetime.getUTCFullYear() + '-' + utilities.pad(bot.multiPeriodDailyProcessDatetime.getUTCMonth() + 1, 2) + '-' + utilities.pad(bot.multiPeriodDailyProcessDatetime.getUTCDate(), 2); - let currentDate = new Date(bot.multiPeriodDailyProcessDatetime) - let percentage = global.getPercentage(fromDate, currentDate, lastDate) - bot.processHeartBeat(currentDateString, percentage) - - if (global.areEqualDates(currentDate, new Date()) === false) { - logger.newInternalLoop(bot.codeName, bot.process, currentDate, percentage); - } - - checkStopTaskGracefully(); - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> advanceTime -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } } - function checkStopTaskGracefully() { + /* Telling the world we are alive and doing well */ + let currentDateString = bot.multiPeriodDailyProcessDatetime.getUTCFullYear() + '-' + utilities.pad(bot.multiPeriodDailyProcessDatetime.getUTCMonth() + 1, 2) + '-' + utilities.pad(bot.multiPeriodDailyProcessDatetime.getUTCDate(), 2) + let currentDate = new Date(bot.multiPeriodDailyProcessDatetime) + let percentage = global.getPercentage(fromDate, currentDate, lastDate) + bot.processHeartBeat(currentDateString, percentage) - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFramesDailyFiles -> checkStopTaskGracefully -> Entering function."); } - - /* Validation that we dont need to stop. */ - - if (global.STOP_TASK_GRACEFULLY === true) { - - callBackFunction(global.DEFAULT_OK_RESPONSE); - return; - - } - - periodsLoop(); - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFramesDailyFiles -> checkStopTaskGracefully -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } + if (global.areEqualDates(currentDate, new Date()) === false) { + logger.newInternalLoop(bot.codeName, bot.process, currentDate, percentage) } - - function periodsLoop() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoop -> Entering function."); } - - /* - - We will iterate through all posible periods. - - */ - - n = 0 // loop Variable representing each possible period as defined at the periods array. - - periodsLoopBody(); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoop -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function periodsLoopBody() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoopBody -> Entering function."); } - - const timeFrame = global.dailyFilePeriods[n][0]; - const timeFrameLabel = global.dailyFilePeriods[n][1]; - - if (processConfig.framework.validPeriods !== undefined) { - let validPeriod = false; - for (let i = 0; i < processConfig.framework.validPeriods.length; i++) { - let period = processConfig.framework.validPeriods[i]; - if (period === timeFrameLabel) { validPeriod = true } - } - if (validPeriod === false) { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoopBody -> Discarding period for not being listed as a valid period. -> timeFrameLabel = " + timeFrameLabel); } - periodsControlLoop(); - return; - } - } - - let dependencyIndex = 0; - dataFiles = new Map(); - - dependencyLoopBody(); - - function dependencyLoopBody() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> Entering function."); } - - let dependency = dataDependenciesModule.nodeArray[dependencyIndex]; - - if (dependency === undefined ) { - - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> You need to add at least one Data Dependency to the process Multi Period Daily. Aborting process." ); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - - let datasetModule = dataDependenciesModule.dataSetsModulesArray[dependencyIndex]; - - let previousFile; - let currentFile; - - if (bot.multiPeriodDailyProcessDatetime.valueOf() > contextVariables.dateBeginOfMarket.valueOf()) { - getPreviousFile(); - } else { - previousFile = []; - getCurrentFile() - } - - function getPreviousFile() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getPreviousFile -> Entering function."); } - - let dateForPath = previousDay.getUTCFullYear() + '/' + utilities.pad(previousDay.getUTCMonth() + 1, 2) + '/' + utilities.pad(previousDay.getUTCDate(), 2); - let filePath - if (dependency.referenceParent.code.codeName === "Multi-Period-Daily") { - filePath = dependency.referenceParent.parentNode.code.codeName + '/' + dependency.referenceParent.code.codeName + "/" + timeFrameLabel + "/" + dateForPath; - } else { - filePath = dependency.referenceParent.parentNode.code.codeName + '/' + dependency.referenceParent.code.codeName + "/" + dateForPath; - } - let fileName = "Data.json"; - - datasetModule.getTextFile(filePath, fileName, onFileReceived); - - function onFileReceived(err, text) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getPreviousFile -> onFileReceived -> Entering function."); } - if (LOG_FILE_CONTENT === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getPreviousFile -> onFileReceived -> text = " + text); } - - if ((err.message === "File does not exist." && botNeverRan === true) || err.code === 'The specified key does not exist.') { - - /* - Sometimes one of the dependencies of an indicator for some reasons are not calculated from the begining of the market. - When that happens we can not find those files. What we do in this situation is to move the time fordward until we can find - all the dependencies and the first run of the bot is successful. - - After that, we will not accept more missing files on any of the dependencies, and if any is missing we will abort the processing. - */ - logger.write(MODULE_NAME, "[WARN] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getPreviousFile -> onFileReceived -> Skipping day because file " + filePath + "/" + fileName + " was not found."); - - advanceTime(); - return; - } - - if ((err.result === "Fail Because" && err.message === "File does not exist.") || err.code === 'The specified key does not exist.') { - - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getPreviousFile -> onFileReceived -> err = "+ err.stack); - callBackFunction(global.DEFAULT_RETRY_RESPONSE); - return; - } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getPreviousFile -> onFileReceived -> err = "+ err.stack); - callBackFunction(err); - return; - } - - previousFile = JSON.parse(text); - - getCurrentFile(); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getPreviousFile -> onFileReceived -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getPreviousFile -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function getCurrentFile() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getCurrentFile -> Entering function."); } - - let dateForPath = bot.multiPeriodDailyProcessDatetime.getUTCFullYear() + '/' + utilities.pad(bot.multiPeriodDailyProcessDatetime.getUTCMonth() + 1, 2) + '/' + utilities.pad(bot.multiPeriodDailyProcessDatetime.getUTCDate(), 2); - let filePath - if (dependency.referenceParent.code.codeName === "Multi-Period-Daily") { - filePath = dependency.referenceParent.parentNode.code.codeName + '/' + dependency.referenceParent.code.codeName + "/" + timeFrameLabel + "/" + dateForPath; - } else { - filePath = dependency.referenceParent.parentNode.code.codeName + '/' + dependency.referenceParent.code.codeName + "/" + dateForPath; - } - let fileName = "Data.json"; - - datasetModule.getTextFile(filePath, fileName, onFileReceived); - - function onFileReceived(err, text) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getCurrentFile -> onFileReceived -> Entering function."); } - if (LOG_FILE_CONTENT === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getCurrentFile -> onFileReceived -> text = " + text); } - - if ((err.result === "Fail Because" && err.message === "File does not exist.") || err.code === 'The specified key does not exist.') { - - if (bootstrappingTheProcess === true) { - /* - In the special situation where we are running this process for the first time (no status report found), - we will consider the possibility that a depanant process does not produce a file during the first day of the market, - or even more than one day. That is why we are going to advance time here. - */ - advanceTime() - return - } - - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getCurrentFile -> onFileReceived -> err = " + err.code); - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getCurrentFile -> onFileReceived -> filePath = " + filePath); - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getCurrentFile -> onFileReceived -> fileName = " + fileName); - callBackFunction(global.DEFAULT_RETRY_RESPONSE); - return; - } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getCurrentFile -> Not OK -> onFileReceived -> err = " + err.code); - callBackFunction(err); - return; - } - - currentFile = JSON.parse(text); - - let dataFile = previousFile.concat(currentFile); - - dataFiles.set(dependency.id, dataFile); - dependencyControlLoop(); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getCurrentFile -> Catch Error -> onFileReceived -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getCurrentFile -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoop -> dependencyLoopBody -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function dependencyControlLoop() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> dependencyControlLoop -> Entering function."); } - - dependencyIndex++; - - if (dependencyIndex < dataDependenciesModule.nodeArray.length) { - - dependencyLoopBody(); - - } else { - - callTheBot(); - - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> dependencyControlLoop -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function callTheBot() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoopBody -> callTheBot -> Entering function."); } - - const timeFrame = global.dailyFilePeriods[n][0]; - const timeFrameLabel = global.dailyFilePeriods[n][1]; - - botInstance.start( - dataFiles, - timeFrame, - timeFrameLabel, - bot.multiPeriodDailyProcessDatetime, - interExecutionMemoryArray[n], - onBotFinished); - - function onBotFinished(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoopBody -> callTheBot -> onBotFinished -> Entering function."); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - callBackFunction(err); - return; - } - - botNeverRan = false; - periodsControlLoop(); - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> callTheBot -> onBotFinished -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> callTheBot -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function periodsControlLoop() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsControlLoop -> Entering function."); } - - n++; - - if (n < global.dailyFilePeriods.length) { - - periodsLoopBody(); - - } else { - - n = 0; - - writeDataRanges(onWritten); - - function onWritten(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> controlLoop -> onWritten -> Entering function."); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> controlLoop -> onWritten -> err = "+ err.stack); - callBackFunction(err); - return; - } - - writeStatusReport(bot.multiPeriodDailyProcessDatetime, advanceTime); - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> controlLoop -> onWritten -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsControlLoop -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - + checkStopTaskGracefully() } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); + function checkStopTaskGracefully() { + /* Validation that we dont need to stop. */ + if (global.STOP_TASK_GRACEFULLY === true) { + callBackFunction(global.DEFAULT_OK_RESPONSE) + return + } + timeFramesLoop() + } + + function timeFramesLoop() { + /* + We will iterate through all posible timeFrames. + */ + n = 0 // loop Variable representing each possible period as defined at the timeFrames array. + timeFramesLoopBody() + } + + function timeFramesLoopBody() { + + const timeFrame = global.dailyFilePeriods[n][0] + const timeFrameLabel = global.dailyFilePeriods[n][1] + + /* Check Time Frames Filter */ + if (bot.dailyTimeFrames !== undefined) { + if (bot.dailyTimeFrames.includes(timeFrameLabel) === false) { + /* We are not going to process this Time Frame */ + timeFramesControlLoop() + return + } + } + + if (processConfig.framework.validPeriods !== undefined) { + let validPeriod = false; + for (let i = 0; i < processConfig.framework.validPeriods.length; i++) { + let period = processConfig.framework.validPeriods[i] + if (period === timeFrameLabel) { validPeriod = true } + } + if (validPeriod === false) { + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> timeFramesLoopBody -> Discarding period for not being listed as a valid period. -> timeFrameLabel = " + timeFrameLabel) } + timeFramesControlLoop() + return + } + } + let dependencyIndex = 0 + dataFiles = new Map() + + dependencyLoopBody() + + function dependencyLoopBody() { + let dependency = dataDependenciesModule.nodeArray[dependencyIndex] + if (dependency === undefined) { + + logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> timeFramesLoopBody -> dependencyLoopBody -> You need to add at least one Data Dependency to the process Multi Period Daily. Aborting process.") + callBackFunction(global.DEFAULT_FAIL_RESPONSE) + return + } + + let datasetModule = dataDependenciesModule.dataSetsModulesArray[dependencyIndex] + let previousFile + let currentFile + + if (bot.multiPeriodDailyProcessDatetime.valueOf() > contextVariables.dateBeginOfMarket.valueOf()) { + getPreviousFile() + } else { + previousFile = [] + getCurrentFile() + } + + function getPreviousFile() { + let dateForPath = previousDay.getUTCFullYear() + '/' + utilities.pad(previousDay.getUTCMonth() + 1, 2) + '/' + utilities.pad(previousDay.getUTCDate(), 2) + let filePath + if (dependency.referenceParent.config.codeName === "Multi-Period-Daily") { + filePath = dependency.referenceParent.parentNode.config.codeName + '/' + dependency.referenceParent.config.codeName + "/" + timeFrameLabel + "/" + dateForPath; + } else { + filePath = dependency.referenceParent.parentNode.config.codeName + '/' + dependency.referenceParent.config.codeName + "/" + dateForPath; + } + let fileName = "Data.json" + + datasetModule.getTextFile(filePath, fileName, onFileReceived) + + function onFileReceived(err, text) { + if ((err.message === "File does not exist." && botNeverRan === true) || err.code === 'The specified key does not exist.') { + /* + Sometimes one of the dependencies of an indicator for some reasons are not calculated from the begining of the market. + When that happens we can not find those files. What we do in this situation is to move the time fordward until we can find + all the dependencies and the first run of the bot is successful. + + After that, we will not accept more missing files on any of the dependencies, and if any is missing we will abort the processing. + */ + logger.write(MODULE_NAME, "[WARN] start -> processTimeFrames -> timeFramesLoopBody -> dependencyLoopBody -> getPreviousFile -> onFileReceived -> Skipping day because file " + filePath + "/" + fileName + " was not found.") + + advanceTime() + return + } + + if ((err.result === "Fail Because" && err.message === "File does not exist.") || err.code === 'The specified key does not exist.') { + + logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> timeFramesLoopBody -> dependencyLoopBody -> getPreviousFile -> onFileReceived -> err = " + err.stack) + callBackFunction(global.DEFAULT_RETRY_RESPONSE) + return + } + + if (err.result !== global.DEFAULT_OK_RESPONSE.result) { + + logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> timeFramesLoopBody -> dependencyLoopBody -> getPreviousFile -> onFileReceived -> err = " + err.stack) + callBackFunction(err) + return + } + + previousFile = JSON.parse(text) + getCurrentFile() + } + + } + + function getCurrentFile() { + let dateForPath = bot.multiPeriodDailyProcessDatetime.getUTCFullYear() + '/' + utilities.pad(bot.multiPeriodDailyProcessDatetime.getUTCMonth() + 1, 2) + '/' + utilities.pad(bot.multiPeriodDailyProcessDatetime.getUTCDate(), 2) + let filePath + if (dependency.referenceParent.config.codeName === "Multi-Period-Daily") { + filePath = dependency.referenceParent.parentNode.config.codeName + '/' + dependency.referenceParent.config.codeName + "/" + timeFrameLabel + "/" + dateForPath; + } else { + filePath = dependency.referenceParent.parentNode.config.codeName + '/' + dependency.referenceParent.config.codeName + "/" + dateForPath; + } + let fileName = "Data.json"; + + datasetModule.getTextFile(filePath, fileName, onFileReceived) + + function onFileReceived(err, text) { + if ((err.result === "Fail Because" && err.message === "File does not exist.") || err.code === 'The specified key does not exist.') { + if (bootstrappingTheProcess === true) { + /* + In the special situation where we are running this process for the first time (no status report found), + we will consider the possibility that a depanant process does not produce a file during the first day of the market, + or even more than one day. That is why we are going to advance time here. + */ + advanceTime() + return + } + + logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> timeFramesLoopBody -> dependencyLoopBody -> getCurrentFile -> onFileReceived -> err = " + err.code) + logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> timeFramesLoopBody -> dependencyLoopBody -> getCurrentFile -> onFileReceived -> filePath = " + filePath) + logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> timeFramesLoopBody -> dependencyLoopBody -> getCurrentFile -> onFileReceived -> fileName = " + fileName) + callBackFunction(global.DEFAULT_RETRY_RESPONSE) + return + } + + if (err.result !== global.DEFAULT_OK_RESPONSE.result) { + logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> timeFramesLoopBody -> dependencyLoopBody -> getCurrentFile -> Not OK -> onFileReceived -> err = " + err.code) + callBackFunction(err) + return + } + + currentFile = JSON.parse(text) + let dataFile = previousFile.concat(currentFile) + dataFiles.set(dependency.id, dataFile) + dependencyControlLoop() + } + } + } + + function dependencyControlLoop() { + dependencyIndex++; + if (dependencyIndex < dataDependenciesModule.nodeArray.length) { + dependencyLoopBody() + } else { + generateOutput() + } + + function generateOutput() { + + indicatorOutputModule.start( + dataFiles, + timeFrame, + timeFrameLabel, + bot.multiPeriodDailyProcessDatetime, + interExecutionMemoryArray[n], + onOutputGenerated) + + function onOutputGenerated(err) { + if (err.result !== global.DEFAULT_OK_RESPONSE.result) { + callBackFunction(err) + return + } + botNeverRan = false; + timeFramesControlLoop() + } + } + } + } + + function timeFramesControlLoop() { + n++ + if (n < global.dailyFilePeriods.length) { + timeFramesLoopBody() + } else { + n = 0; + writeDataRanges(onWritten) + + function onWritten(err) { + if (err.result !== global.DEFAULT_OK_RESPONSE.result) { + logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> controlLoop -> onWritten -> err = " + err.stack) + callBackFunction(err) + return + } + writeStatusReport(bot.multiPeriodDailyProcessDatetime, advanceTime) + } + } } } function writeDataRanges(callBack) { + let outputDatasets = global.NODE_BRANCH_TO_ARRAY (bot.processNode.referenceParent.processOutput, 'Output Dataset') + let outputDatasetIndex = -1; + controlLoop() - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDataRanges -> Entering function."); } - - let outputDatasetIndex = -1; - controlLoop(); - - function productLoopBody() { - let productCodeName = bot.processNode.referenceParent.processOutput.outputDatasets[outputDatasetIndex].referenceParent.parentNode.code.codeName; - writeDataRange(contextVariables.dateBeginOfMarket, bot.multiPeriodDailyProcessDatetime, productCodeName, controlLoop); - } - - function controlLoop() { - - outputDatasetIndex++; - - if (outputDatasetIndex < bot.processNode.referenceParent.processOutput.outputDatasets.length) { - productLoopBody(); - } else { - callBack(global.DEFAULT_OK_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeDataRanges -> err = "+ err.stack); - callBack(global.DEFAULT_FAIL_RESPONSE); + function productLoopBody() { + let productCodeName = outputDatasets[outputDatasetIndex].referenceParent.parentNode.config.codeName; + writeDataRange(contextVariables.dateBeginOfMarket, bot.multiPeriodDailyProcessDatetime, productCodeName, controlLoop) } + function controlLoop() { + outputDatasetIndex++ + if (outputDatasetIndex < outputDatasets.length) { + productLoopBody() + } else { + callBack(global.DEFAULT_OK_RESPONSE) + } + } } function writeDataRange(pBegin, pEnd, productCodeName, callBack) { + let dataRange = { + begin: pBegin.valueOf(), + end: pEnd.valueOf() + ONE_DAY_IN_MILISECONDS + }; + let fileContent = JSON.stringify(dataRange) + let fileName = '/Data.Range.json'; + let filePath = bot.filePathRoot + "/Output/" + productCodeName + "/" + bot.process + fileName; - try { + fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated) - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDataRange -> Entering function."); } + function onFileCreated(err) { + if (err.result !== global.DEFAULT_OK_RESPONSE.result) { + logger.write(MODULE_NAME, "[ERROR] start -> writeDataRange -> onFileCreated -> err = " + err.stack) + callBack(err) + return + } + let key = bot.dataMine + "-" + bot.codeName + "-" + productCodeName + "-" + bot.exchange + "-" + bot.market.baseAsset + '/' + bot.market.quotedAsset + let event = { + dateRange: dataRange + } - let dataRange = { - begin: pBegin.valueOf(), - end: pEnd.valueOf() - }; + global.EVENT_SERVER_CLIENT.raiseEvent(key, 'Data Range Updated', event) + writeTimeFramesFile(productCodeName, callBack) + } + } - let fileContent = JSON.stringify(dataRange); + function writeTimeFramesFile(productCodeName, callBack) { - let fileName = '/Data.Range.json'; - let filePath = bot.filePathRoot + "/Output/" + productCodeName + "/" + bot.process + fileName; + let timeFramesArray = [] + for (let n = 0; n < global.dailyFilePeriods.length; n++) { + let timeFrameLabel = global.dailyFilePeriods[n][1] - fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); - - function onFileCreated(err) { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDataRange -> onFileCreated -> Entering function."); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[ERROR] start -> writeDataRange -> onFileCreated -> err = "+ err.stack); - callBack(err); - return; + /* Check Time Frames Filter */ + if (bot.dailyTimeFrames !== undefined) { + if (bot.dailyTimeFrames.includes(timeFrameLabel) === true) { + timeFramesArray.push(timeFrameLabel) } - - if (LOG_FILE_CONTENT === true) { - logger.write(MODULE_NAME, "[INFO] start -> writeDataRange -> onFileCreated -> Content written = " + fileContent); - } - - let key = bot.dataMine + "-" + bot.codeName + "-" + productCodeName + "-" + bot.exchange + "-" + bot.market.baseAsset + '/' + bot.market.quotedAsset - let event = { - dateRange: dataRange - } - - global.EVENT_SERVER_CLIENT.raiseEvent(key, 'Data Range Updated', event) - - callBack(global.DEFAULT_OK_RESPONSE); + } else { + timeFramesArray.push(timeFrameLabel) } } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeDataRange -> err = "+ err.stack); - callBack(global.DEFAULT_FAIL_RESPONSE); + + let fileContent = JSON.stringify(timeFramesArray) + let fileName = '/Time.Frames.json'; + let filePath = bot.filePathRoot + "/Output/" + productCodeName + "/" + bot.process + fileName; + + fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated) + + function onFileCreated(err) { + if (err.result !== global.DEFAULT_OK_RESPONSE.result) { + logger.write(MODULE_NAME, "[ERROR] start -> writeTimeFramesFiles -> onFileCreated -> err = " + err.stack) + callBack(err) + return + } + callBack(global.DEFAULT_OK_RESPONSE) } } function writeStatusReport(lastFileDate, callBack) { + let reportKey = bot.dataMine + "-" + bot.codeName + "-" + "Multi-Period-Daily" + let thisReport = statusDependencies.statusReports.get(reportKey) - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeStatusReport -> Entering function."); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeStatusReport -> lastFileDate = " + lastFileDate); } - - try { - - let reportKey = bot.dataMine + "-" + bot.codeName + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; - let thisReport = statusDependencies.statusReports.get(reportKey); - - thisReport.file.lastExecution = bot.currentDaytime; - thisReport.file.lastFile = lastFileDate; - thisReport.file.interExecutionMemoryArray = interExecutionMemoryArray; - thisReport.file.beginingOfMarket = beginingOfMarket.toUTCString() - thisReport.save(callBack); - - bot.hasTheBotJustStarted = false; - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeStatusReport -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); + thisReport.file.lastExecution = bot.currentDaytime; + thisReport.file.lastFile = lastFileDate; + thisReport.file.interExecutionMemoryArray = interExecutionMemoryArray; + thisReport.file.beginingOfMarket = beginingOfMarket.toUTCString() + if (bot.dailyTimeFrames !== undefined) { + thisReport.file.timeFrames = bot.dailyTimeFrames } + thisReport.save(callBack) + + bot.hasTheBotJustStarted = false; } } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); + logger.write(MODULE_NAME, "[ERROR] start -> err = " + err.stack) + callBackFunction(global.DEFAULT_FAIL_RESPONSE) } } - - function pad(str, max) { - str = str.toString(); - return str.length < max ? pad(" " + str, max) : str; - } }; diff --git a/TaskServer/MultiPeriodMarket.js b/TaskServer/MultiPeriodMarket.js index 3c8b10f07..76ba55b28 100644 --- a/TaskServer/MultiPeriodMarket.js +++ b/TaskServer/MultiPeriodMarket.js @@ -1,327 +1,221 @@ exports.newMultiPeriodMarket = function newMultiPeriodMarket(bot, logger, UTILITIES, FILE_STORAGE) { - - const FULL_LOG = true; - const LOG_FILE_CONTENT = false; const MODULE_NAME = "Multi Period Market"; - thisObject = { initialize: initialize, finalize: finalize, start: start }; - let utilities = UTILITIES.newCloudUtilities(logger); + let utilities = UTILITIES.newCloudUtilities(logger) + let fileStorage = FILE_STORAGE.newFileStorage(logger) let statusDependencies; let dataDependenciesModule; - let dataFiles = new Map(); - - let botInstance; - + let dataFiles = new Map() + let indicatorOutputModule; let processConfig; return thisObject; function initialize(pProcessConfig, pStatusDependencies, pDataDependencies, callBackFunction) { + logger.fileName = MODULE_NAME; + logger.initialize() - try { + statusDependencies = pStatusDependencies; + dataDependenciesModule = pDataDependencies; + processConfig = pProcessConfig; - logger.fileName = MODULE_NAME; - logger.initialize(); + let INDICATOR_OUTPUT_MODULE = require("./IndicatorOutput") - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Entering function."); } - - statusDependencies = pStatusDependencies; - dataDependenciesModule = pDataDependencies; - processConfig = pProcessConfig; - - let USER_BOT_MODULE = require("./IndicatorBot") - - botInstance = USER_BOT_MODULE.newIndicatorBot(bot, logger, UTILITIES, FILE_STORAGE); - botInstance.initialize(callBackFunction); - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } + indicatorOutputModule = INDICATOR_OUTPUT_MODULE.newIndicatorOutput(bot, logger, UTILITIES, FILE_STORAGE) + indicatorOutputModule.initialize(callBackFunction) } function finalize() { + fileStorage = undefined dataFiles = undefined statusDependencies = undefined dataDependenciesModule = undefined - botInstance = undefined + indicatorOutputModule = undefined processConfig = undefined thisObject = undefined } function start(callBackFunction) { - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> Entering function."); } - - let market = bot.market; - - /* Context Variables */ - - let contextVariables = { - dateBeginOfMarket: undefined, // Datetime of the first trade file in the whole market history. - dateEndOfMarket: undefined // Datetime of the last file available to be used as an input of this process. - }; - - processTimeFrames(); + processTimeFrames() function processTimeFrames() { + let n; + timeFramesLoop() - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> Entering function."); } - - try { - - let n; - - periodsLoop(); - - function periodsLoop() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoop -> Entering function."); } - - /* - - We will iterate through all posible periods. - - */ - - n = 0 // loop Variable representing each possible period as defined at the periods array. - - periodsLoopBody(); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoop -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function periodsLoopBody() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoopBody -> Entering function."); } - - const timeFrame = global.marketFilesPeriods[n][0]; - const timeFrameLabel = global.marketFilesPeriods[n][1]; - - let dependencyIndex = 0; - dataFiles = new Map; - - dependencyLoopBody(); - - function dependencyLoopBody() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> Entering function."); } - - let dependency = dataDependenciesModule.nodeArray[dependencyIndex]; - let datasetModule = dataDependenciesModule.dataSetsModulesArray[dependencyIndex]; - - getFile(); - - function getFile() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getFile -> Entering function."); } - - let dateForPath = bot.processDatetime.getUTCFullYear() + '/' + utilities.pad(bot.processDatetime.getUTCMonth() + 1, 2) + '/' + utilities.pad(bot.processDatetime.getUTCDate(), 2); - let fileName = "Data.json"; - - let filePath - if (dependency.referenceParent.code.codeName === "Multi-Period-Market") { - filePath = dependency.referenceParent.parentNode.code.codeName + '/' + dependency.referenceParent.code.codeName + "/" + timeFrameLabel; - } else { - filePath = dependency.referenceParent.parentNode.code.codeName + '/' + dependency.referenceParent.code.codeName + "/" + dateForPath; - } - datasetModule.getTextFile(filePath, fileName, onFileReceived); - - function onFileReceived(err, text) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getFile -> onFileReceived -> Entering function."); } - if (LOG_FILE_CONTENT === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getFile -> onFileReceived -> text = " + text); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getFile -> onFileReceived -> err = "+ err.stack); - callBackFunction(err); - return; - } - - let dataFile = JSON.parse(text); - dataFiles.set(dependency.id, dataFile); - - dependencyControlLoop(); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getFile -> onFileReceived -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> dependencyLoopBody -> getFile -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoop -> dependencyLoopBody -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function dependencyControlLoop() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> dependencyControlLoop -> Entering function."); } - - dependencyIndex++; - - if (dependencyIndex < dataDependenciesModule.nodeArray.length) { - - dependencyLoopBody(); - - } else { - - callTheBot(); - - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> dependencyControlLoop -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function callTheBot() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoopBody -> callTheBot -> Entering function."); } - - const timeFrame = global.marketFilesPeriods[n][0]; - const timeFrameLabel = global.marketFilesPeriods[n][1]; - - botInstance.start( - dataFiles, - timeFrame, - timeFrameLabel, - undefined, - undefined, - onBotFinished); - - function onBotFinished(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoopBody -> callTheBot -> onBotFinished -> Entering function."); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - callBackFunction(err); - return; - } - - periodsControlLoop(); - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> callTheBot -> onBotFinished -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch(err){ - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> callTheBot -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsLoopBody -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function periodsControlLoop() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsControlLoop -> Entering function."); } - - n++; - - if (n < global.marketFilesPeriods.length) { - - periodsLoopBody(); - - } else { - - writeStatusReport(callBackFunction); - - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> periodsControlLoop -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - + function timeFramesLoop() { + /* We will iterate through all posible timeFrames.*/ + n = 0 // loop Variable representing each possible period as defined at the timeFrames array. + timeFramesLoopBody() } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); + + function timeFramesLoopBody() { + const timeFrame = global.marketFilesPeriods[n][0] + const timeFrameLabel = global.marketFilesPeriods[n][1] + + /* Check Time Frames Filter */ + if (bot.marketTimeFrames !== undefined) { + if (bot.marketTimeFrames.includes(timeFrameLabel) === false) { + /* We are not going to process this Time Frame */ + timeFramesControlLoop() + return + } + } + + let dependencyIndex = 0; + dataFiles = new Map; + + dependencyLoopBody() + + function dependencyLoopBody() { + let dependency = dataDependenciesModule.nodeArray[dependencyIndex] + let datasetModule = dataDependenciesModule.dataSetsModulesArray[dependencyIndex] + + getFile() + + function getFile() { + let fileName = "Data.json"; + let filePath = dependency.referenceParent.parentNode.config.codeName + '/' + dependency.referenceParent.config.codeName + "/" + timeFrameLabel; + datasetModule.getTextFile(filePath, fileName, onFileReceived) + + function onFileReceived(err, text) { + if (err.result !== global.DEFAULT_OK_RESPONSE.result) { + logger.write(MODULE_NAME, "[ERROR] start -> processTimeFrames -> timeFramesLoopBody -> dependencyLoopBody -> getFile -> onFileReceived -> err = " + err.stack) + callBackFunction(err) + return; + } + + let dataFile = JSON.parse(text) + dataFiles.set(dependency.id, dataFile) + + dependencyControlLoop() + } + } + } + + function dependencyControlLoop() { + dependencyIndex++; + if (dependencyIndex < dataDependenciesModule.nodeArray.length) { + dependencyLoopBody() + } else { + generateOutput() + } + + function generateOutput() { + indicatorOutputModule.start( + dataFiles, + timeFrame, + timeFrameLabel, + undefined, + undefined, + onOutputGenerated) + + function onOutputGenerated(err) { + if (err.result !== global.DEFAULT_OK_RESPONSE.result) { + callBackFunction(err) + return; + } + timeFramesControlLoop() + } + } + } + } + + function timeFramesControlLoop() { + n++; + if (n < global.marketFilesPeriods.length) { + timeFramesLoopBody() + } else { + writeTimeFramesFiles(onTimeFrameFilesWritten) + function onTimeFrameFilesWritten() { + writeStatusReport(callBackFunction) + } + } + } + } + + function writeTimeFramesFiles(callBack) { + let outputDatasets = global.NODE_BRANCH_TO_ARRAY (bot.processNode.referenceParent.processOutput, 'Output Dataset') + let outputDatasetIndex = -1; + controlLoop() + + function productLoopBody() { + let productCodeName = outputDatasets[outputDatasetIndex].referenceParent.parentNode.config.codeName; + writeTimeFramesFile(productCodeName, controlLoop) + } + + function controlLoop() { + outputDatasetIndex++ + if (outputDatasetIndex < outputDatasets.length) { + productLoopBody() + } else { + callBack() + } + } + } + + function writeTimeFramesFile(productCodeName, callBack) { + + let timeFramesArray = [] + for (let n = 0; n < global.marketFilesPeriods.length; n++) { + let timeFrameLabel = global.marketFilesPeriods[n][1] + + /* Check Time Frames Filter */ + if (bot.marketTimeFrames !== undefined) { + if (bot.marketTimeFrames.includes(timeFrameLabel) === true) { + timeFramesArray.push(timeFrameLabel) + } + } else { + timeFramesArray.push(timeFrameLabel) + } + } + + let fileContent = JSON.stringify(timeFramesArray) + let fileName = '/Time.Frames.json'; + let filePath = bot.filePathRoot + "/Output/" + productCodeName + "/" + bot.process + fileName; + + fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated) + + function onFileCreated(err) { + if (err.result !== global.DEFAULT_OK_RESPONSE.result) { + logger.write(MODULE_NAME, "[ERROR] start -> writeTimeFramesFile -> onFileCreated -> err = " + err.stack) + callBack(err) + return + } + callBack() } } function writeStatusReport(callBack) { + let reportKey = bot.dataMine + "-" + bot.codeName + "-" + "Multi-Period-Market" + let thisReport = statusDependencies.statusReports.get(reportKey) - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeStatusReport -> Entering function."); } - - try { - - let reportKey = bot.dataMine + "-" + bot.codeName + "-" + "Multi-Period-Market" + "-" + "dataSet.V1"; - let thisReport = statusDependencies.statusReports.get(reportKey); - - thisReport.file.lastExecution = bot.processDatetime; - thisReport.save(callBack); - - if (global.areEqualDates(bot.processDatetime, new Date()) === false) { - logger.newInternalLoop(bot.codeName, bot.process, bot.processDatetime); - } - - /* Telling the world we are alive and doing well */ - let currentDateString = bot.processDatetime.getUTCFullYear() + '-' + utilities.pad(bot.processDatetime.getUTCMonth() + 1, 2) + '-' + utilities.pad(bot.processDatetime.getUTCDate(), 2); - let currentDate = new Date(bot.processDatetime) - let lastDate = new Date() - bot.processHeartBeat(currentDateString, global.getPercentage(currentDate, currentDate, lastDate)) + thisReport.file.lastExecution = bot.processDatetime; + if (bot.marketTimeFrames !== undefined) { + thisReport.file.timeFrames = bot.marketTimeFrames } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeStatusReport -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); + thisReport.save(callBack) + + if (global.areEqualDates(bot.processDatetime, new Date()) === false) { + logger.newInternalLoop(bot.codeName, bot.process, bot.processDatetime) } + + /* Telling the world we are alive and doing well */ + let currentDateString = bot.processDatetime.getUTCFullYear() + '-' + utilities.pad(bot.processDatetime.getUTCMonth() + 1, 2) + '-' + utilities.pad(bot.processDatetime.getUTCDate(), 2) + let currentDate = new Date(bot.processDatetime) + let lastDate = new Date() + bot.processHeartBeat(currentDateString, global.getPercentage(currentDate, currentDate, lastDate)) } } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); + logger.write(MODULE_NAME, "[ERROR] start -> err = " + err.stack) + callBackFunction(global.DEFAULT_FAIL_RESPONSE) } } -}; +} diff --git a/TaskServer/ProcessExecutionEvents.js b/TaskServer/ProcessExecutionEvents.js index 8731bf55a..9b94c0365 100644 --- a/TaskServer/ProcessExecutionEvents.js +++ b/TaskServer/ProcessExecutionEvents.js @@ -1,14 +1,11 @@ exports.newProcessExecutionEvents = function newProcessExecutionEvents(BOT, logger) { - /* - - Here we manage the process execution events. This allow us to emit events when the process starts and finishes. Also to wait for a dependent event + Here we manage the process execution events. This allow us to emit events + when the process starts and finishes. Also to wait for a dependent event of another process. - */ - const MODULE_NAME = "Process Execution Events"; - logger.fileName = MODULE_NAME + logger.fileName = MODULE_NAME let bot = BOT; @@ -28,12 +25,8 @@ return thisObject; - function initialize(callBackFunction) { - + function initialize(processConfig, callBackFunction) { try { - - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Entering function."); } - let name = 'Not Depends on any Process' logger.fileName = MODULE_NAME + "." + name; @@ -43,66 +36,111 @@ return } - let market = bot.market.baseAsset + '/' + bot.market.quotedAsset + let market = bot.market.baseAsset + '/' + bot.market.quotedAsset currentProcessKey = bot.processNode.referenceParent.name + "-" + bot.processNode.referenceParent.type + "-" + bot.processNode.referenceParent.id + "-" + bot.exchange + "-" + market + /* + A process can depend for its own execution on another process to finish, and + this can be achieved in two different ways. The first one is by referencing + the Execution Started Event node from a Process Definition node to a Execution + Ended Event node of another Process Definition. The second way is when there is + a Execution Started Event node at a Process Instance. This allows the user to + override the definition created by the Data Mine for an specific task. + */ + + /* + Here we check if we can find this relationship at the Data Mine level. + */ if (bot.processNode.referenceParent.executionStartedEvent !== undefined) { if (bot.processNode.referenceParent.executionStartedEvent.referenceParent !== undefined) { if (bot.processNode.referenceParent.executionStartedEvent.referenceParent.parentNode !== undefined) { processThisDependsOn = bot.processNode.referenceParent.executionStartedEvent.referenceParent.parentNode name = processThisDependsOn.name - if (processThisDependsOn.code.monthlyInstances === true) { - logger.fileName = MODULE_NAME + "." + name; - } - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> " + currentProcessKey + " depends on " + name); } + if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> " + currentProcessKey + " based on the Data Mine depends on " + name); } + } + } + } + + /* + Here we check if at the task level if there is an overriding configuration. + */ + if (bot.processNode.executionStartedEvent !== undefined) { + if (bot.processNode.executionStartedEvent.referenceParent !== undefined) { + if (bot.processNode.executionStartedEvent.referenceParent.parentNode !== undefined) { + processThisDependsOn = bot.processNode.executionStartedEvent.referenceParent.parentNode + + name = processThisDependsOn.name + if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> " + currentProcessKey + " based on the User's Task depends on " + name); } } } } if (processThisDependsOn !== undefined) { + /* We need to remember that this process waits for another process in order to start. */ + processConfig.waitsForExecutionFinishedEvent = true + /* We need to find at which network node is running the process that we need to hear from when it finished. */ let network = global.TASK_NETWORK + /* + Notice that the first task that matches the dependency is going to be considered. + This means that if the same task, with the same process, pointing to the same + process definition in the same data mine, with the same exchange and market + configured, is at two different network nodes at the same time, the current task + is going to depend on the first one found, not necesarily the one running at the + same network node. If you need to control witch task specifically to depend on + and need to exactly the same task to exist, you should split the network in two + different networks, each one with unique tasks so as to avoid confussion. + */ for (let i = 0; i < network.networkNodes.length; i++) { let networkNode = network.networkNodes[i] if (networkNode.dataMining !== undefined) { - for (let j = 0; j < networkNode.dataMining.exchangeTasks.length; j++) { - let exchangeTasks = networkNode.dataMining.exchangeTasks[j] - for (let k = 0; k < exchangeTasks.taskManagers.length; k++) { - let taskManager = exchangeTasks.taskManagers[k] - for (let m = 0; m < taskManager.tasks.length; m++) { - let task = taskManager.tasks[m] - if (task.bot !== undefined) { - for (let n = 0; n < task.bot.processes.length; n++) { - let process = task.bot.processes[n] - if (process.marketReference !== undefined) { - if (process.marketReference.referenceParent !== undefined) { - let market = process.marketReference.referenceParent - let currentProcessMarket = bot.processNode.marketReference.referenceParent + for (let j = 0; j < networkNode.dataMining.exchangeDataTasks.length; j++) { + let exchangeTasks = networkNode.dataMining.exchangeDataTasks[j] + for (let p = 0; p < exchangeTasks.marketDataTasks.length; p++) { + let marketTasks = exchangeTasks.marketDataTasks[p] + if (marketTasks.referenceParent === undefined) { continue } + if (marketTasks.referenceParent.id !== global.MARKET_NODE.id) { continue } + for (let q = 0; q < marketTasks.dataMineTasks.length; q++) { + let mineTasks = marketTasks.dataMineTasks[q] + for (let k = 0; k < mineTasks.taskManagers.length; k++) { + let taskManager = mineTasks.taskManagers[k] + for (let m = 0; m < taskManager.tasks.length; m++) { + let task = taskManager.tasks[m] + if (task.bot !== undefined) { + for (let n = 0; n < task.bot.processes.length; n++) { + let process = task.bot.processes[n] + if (process.referenceParent !== undefined) { + let processDefinition = process.referenceParent + if (processThisDependsOn.id === processDefinition.id) { + /* + We found where the task that runs the process definition + we are waiting for is located on the network. + */ + thisObject.networkNode = networkNode + if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { + logger.write(MODULE_NAME, + "[INFO] initialize -> Connecting to Websockets Server " + networkNode.name + + " -> host = " + networkNode.config.host + + ' -> port = ' + networkNode.config.webSocketsPort + '.'); + } - if (currentProcessMarket.id === market.id) { - if (process.referenceParent !== undefined) { - let processDefinition = process.referenceParent - if (processThisDependsOn.id === processDefinition.id) { + eventServerClient = EVENT_SERVER_CLIENT.newEventsServerClient(networkNode.config.host, networkNode.config.webSocketsPort) + eventServerClient.initialize(onConnected) - /* We found where the task that runs the process definition we are waiting for is located on the network. */ - - thisObject.networkNode = networkNode - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Connecting to Websockets Server " + networkNode.name + " -> host = " + networkNode.code.host + ' -> port = ' + networkNode.code.webSocketsPort + '.'); } - - eventServerClient = EVENT_SERVER_CLIENT.newEventsServerClient(networkNode.code.host, networkNode.code.webSocketsPort) - eventServerClient.initialize(onConnected) - - function onConnected() { - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Connected to Websockets Server " + networkNode.name + " -> host = " + networkNode.code.host + ' -> port = ' + networkNode.code.webSocketsPort + '.'); } - - callBackFunction(global.DEFAULT_OK_RESPONSE); - return + function onConnected() { + if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { + logger.write(MODULE_NAME, "[INFO] initialize -> Connected to Websockets Server " + networkNode.name + + " -> host = " + networkNode.config.host + + ' -> port = ' + networkNode.config.webSocketsPort + '.'); } + + callBackFunction(global.DEFAULT_OK_RESPONSE); return } + return } } } @@ -119,7 +157,7 @@ return } callBackFunction(global.DEFAULT_OK_RESPONSE); - + } catch (err) { logger.write(MODULE_NAME, "[ERROR] initialize -> err = " + err.stack); callBackFunction(global.DEFAULT_FAIL_RESPONSE); @@ -151,7 +189,7 @@ let extraCallerId = '-' + Math.trunc(Math.random() * 10000) + '-' - let market = bot.market.baseAsset + '/' + bot.market.quotedAsset + let market = bot.market.baseAsset + '/' + bot.market.quotedAsset let key = processThisDependsOn.name + "-" + processThisDependsOn.type + "-" + processThisDependsOn.id + "-" + bot.exchange + "-" + market let callerId = bot.dataMine + "-" + bot.codeName + "-" + bot.process + extraCallerId @@ -163,7 +201,7 @@ eventServerClient.listenToEvent(key, 'Process Execution Finished', undefined, callerId, responseCallBack, eventsCallBack) - bot.processHeartBeat(undefined, undefined, "Waiting for " + thisObject.networkNode.name + "->" + processThisDependsOn.parentNode.parentNode.name + "->" + processThisDependsOn.parentNode.code.codeName + "->" + processThisDependsOn.code.codeName) + bot.processHeartBeat(undefined, undefined, "Waiting for " + thisObject.networkNode.name + "->" + processThisDependsOn.parentNode.parentNode.name + "->" + processThisDependsOn.parentNode.config.codeName + "->" + processThisDependsOn.config.codeName) function responseCallBack(message) { if (message.result !== global.DEFAULT_OK_RESPONSE.result) { @@ -192,9 +230,9 @@ global.EVENT_SERVER_CLIENT.createEventHandler(currentProcessKey, 'Process Execution Started') global.EVENT_SERVER_CLIENT.raiseEvent(currentProcessKey, 'Process Execution Started', event) - bot.processHeartBeat(undefined, undefined,"Running...") + bot.processHeartBeat(undefined, undefined, "Running...") - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] start -> eventsCallBack -> " + currentProcessKey + " Process Execution Started because " + key + " Finished."); } + if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] start -> eventsCallBack -> " + currentProcessKey + " Process Execution Started because " + key + " Finished."); } } callBackFunction(message.event.err); @@ -208,7 +246,7 @@ global.EVENT_SERVER_CLIENT.createEventHandler(currentProcessKey, 'Process Execution Started') global.EVENT_SERVER_CLIENT.raiseEvent(currentProcessKey, 'Process Execution Started', event) - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] start -> " + currentProcessKey + " Process Execution Started " ); } + if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] start -> " + currentProcessKey + " Process Execution Started "); } callBackFunction(global.DEFAULT_OK_RESPONSE); } @@ -232,7 +270,7 @@ global.EVENT_SERVER_CLIENT.createEventHandler(currentProcessKey, 'Process Execution Finished') global.EVENT_SERVER_CLIENT.raiseEvent(currentProcessKey, 'Process Execution Finished', event) - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] finish -> " + currentProcessKey + " Process Execution Finished " ); } + if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] finish -> " + currentProcessKey + " Process Execution Finished "); } callBackFunction(global.DEFAULT_OK_RESPONSE); diff --git a/TaskServer/ProcessOutput.js b/TaskServer/ProcessOutput.js index 7bbdfff10..9f6f0ee71 100644 --- a/TaskServer/ProcessOutput.js +++ b/TaskServer/ProcessOutput.js @@ -9,86 +9,90 @@ let bot = BOT; let thisObject = { - raiseEvents, raiseEvents + raiseEvents: raiseEvents, + asyncRaiseEvents: asyncRaiseEvents }; return thisObject; - function raiseEvents(lastFile, callBackFunction) { - + function raiseEvents(lastFile, timeFrames, callBackFunction) { try { - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] raiseEvents -> Entering function."); } - /* We will reaise the events for the datasets impacted by the process that just finished. */ if (bot.processNode.referenceParent.processOutput !== undefined) { - if (bot.processNode.referenceParent.processOutput.outputDatasets !== undefined) { - let outputDatasets = bot.processNode.referenceParent.processOutput.outputDatasets + let outputDatasets = global.NODE_BRANCH_TO_ARRAY(bot.processNode.referenceParent.processOutput, 'Output Dataset') - for (let j = 0; j < outputDatasets.length; j++) { - let outputDataset = outputDatasets[j] + for (let j = 0; j < outputDatasets.length; j++) { + let outputDataset = outputDatasets[j] - /* Some validations to verify that everything is in place. */ - if (outputDataset.referenceParent !== undefined) { - if (outputDataset.referenceParent.code.codeName === undefined) { - logger.write(MODULE_NAME, "[ERROR] raiseEvents -> codeName at Dataset Definition not defined. Dataset Definition = " + JSON.stringify(outputDataset.referenceParent)); + let botNode = global.FIND_NODE_IN_NODE_MESH(outputDataset, 'Indicator Bot') + if (botNode === undefined) { + botNode = global.FIND_NODE_IN_NODE_MESH(outputDataset, 'Trading Bot') + } + if (botNode === undefined) { + botNode = global.FIND_NODE_IN_NODE_MESH(outputDataset, 'Sensor Bot') + } + + /* Some validations to verify that everything is in place. */ + if (outputDataset.referenceParent !== undefined) { + if (outputDataset.referenceParent.config.codeName === undefined) { + logger.write(MODULE_NAME, "[ERROR] raiseEvents -> codeName at Dataset Definition not defined. Dataset Definition = " + JSON.stringify(outputDataset.referenceParent)); + callBackFunction(global.DEFAULT_FAIL_RESPONSE); + return + } + if (outputDataset.referenceParent.parentNode !== undefined) { + if (outputDataset.referenceParent.parentNode.config.codeName === undefined) { + logger.write(MODULE_NAME, "[ERROR] raiseEvents -> codeName at Product not defined. Product = " + JSON.stringify(outputDataset.referenceParent.parentNode)); callBackFunction(global.DEFAULT_FAIL_RESPONSE); return - } - if (outputDataset.referenceParent.parentNode !== undefined) { - if (outputDataset.referenceParent.parentNode.code.codeName === undefined) { - logger.write(MODULE_NAME, "[ERROR] raiseEvents -> codeName at Product not defined. Product = " + JSON.stringify(outputDataset.referenceParent.parentNode)); + } + if (botNode !== undefined) { + if (botNode.config.codeName === undefined) { + logger.write(MODULE_NAME, "[ERROR] raiseEvents -> codeName at Bot not defined. Bot = " + JSON.stringify(botNode)); callBackFunction(global.DEFAULT_FAIL_RESPONSE); return - } - if (outputDataset.referenceParent.parentNode.parentNode !== undefined) { - if (outputDataset.referenceParent.parentNode.parentNode.code.codeName === undefined) { - logger.write(MODULE_NAME, "[ERROR] raiseEvents -> codeName at Bot not defined. Bot = " + JSON.stringify(outputDataset.referenceParent.parentNode.parentNode)); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return - } - if (outputDataset.referenceParent.parentNode.parentNode.parentNode !== undefined) { - if (outputDataset.referenceParent.parentNode.parentNode.parentNode.code.codeName === undefined) { - logger.write(MODULE_NAME, "[ERROR] raiseEvents -> codeName at Data Mine not defined. Data Mine = " + JSON.stringify(outputDataset.referenceParent.parentNode.parentNode.parentNode)); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return - } - } else { - logger.write(MODULE_NAME, "[ERROR] raiseEvents -> Bot not attached to a Data Mine. Bot = " + JSON.stringify(outputDataset.referenceParent.parentNode.parentNode)); + } + if (botNode.parentNode !== undefined) { + if (botNode.parentNode.config.codeName === undefined) { + logger.write(MODULE_NAME, "[ERROR] raiseEvents -> codeName at Data Mine not defined. Data Mine = " + JSON.stringify(botNode.parentNode)); callBackFunction(global.DEFAULT_FAIL_RESPONSE); return } } else { - logger.write(MODULE_NAME, "[ERROR] raiseEvents -> Product not attached to a Bot. Product = " + JSON.stringify(outputDataset.referenceParent.parentNode)); + logger.write(MODULE_NAME, "[ERROR] raiseEvents -> Bot not attached to a Data Mine or Trading Mine. Bot = " + JSON.stringify(botNode)); callBackFunction(global.DEFAULT_FAIL_RESPONSE); return } } else { - logger.write(MODULE_NAME, "[ERROR] raiseEvents -> Dataset Definition not attached to a Product. Dataset Definition = " + JSON.stringify(outputDataset.referenceParent)); + logger.write(MODULE_NAME, "[ERROR] raiseEvents -> Product not attached to a Bot. Product = " + JSON.stringify(outputDataset.referenceParent.parentNode)); callBackFunction(global.DEFAULT_FAIL_RESPONSE); return } } else { - logger.write(MODULE_NAME, "[ERROR] raiseEvents -> Output Dataset with no reference to a Dataset Definition. Output Dataset = " + JSON.stringify(outputDataset)); + logger.write(MODULE_NAME, "[ERROR] raiseEvents -> Dataset Definition not attached to a Product. Dataset Definition = " + JSON.stringify(outputDataset.referenceParent)); callBackFunction(global.DEFAULT_FAIL_RESPONSE); return } - - /* All good, lets emit the event. */ - - let dataMine = outputDataset.referenceParent.parentNode.parentNode.parentNode.code.codeName - let botName = outputDataset.referenceParent.parentNode.parentNode.code.codeName - let product = outputDataset.referenceParent.parentNode.code.codeName - let dataset = outputDataset.referenceParent.code.codeName - - key = dataMine + "-" + botName + "-" + product + "-" + dataset + "-" + bot.exchange + "-" + bot.market.baseAsset + '/' + bot.market.quotedAsset - let event = { - lastFile: lastFile - } - global.EVENT_SERVER_CLIENT.createEventHandler(key, 'Dataset Updated') - global.EVENT_SERVER_CLIENT.raiseEvent(key, 'Dataset Updated', event) - + } else { + logger.write(MODULE_NAME, "[ERROR] raiseEvents -> Output Dataset with no reference to a Dataset Definition. Output Dataset = " + JSON.stringify(outputDataset)); + callBackFunction(global.DEFAULT_FAIL_RESPONSE); + return } + + /* All good, lets emit the event. */ + + let dataMine = botNode.parentNode.config.codeName + let botName = botNode.config.codeName + let product = outputDataset.referenceParent.parentNode.config.codeName + let dataset = outputDataset.referenceParent.config.codeName + + key = dataMine + "-" + botName + "-" + product + "-" + dataset + "-" + bot.exchange + "-" + bot.market.baseAsset + '/' + bot.market.quotedAsset + let event = { + lastFile: lastFile, + timeFrames: timeFrames + } + global.EVENT_SERVER_CLIENT.createEventHandler(key, 'Dataset Updated') + global.EVENT_SERVER_CLIENT.raiseEvent(key, 'Dataset Updated', event) } } @@ -99,4 +103,76 @@ callBackFunction(global.DEFAULT_FAIL_RESPONSE); } } + + function asyncRaiseEvents(lastFile, timeFrames) { + + if (bot.processNode.referenceParent.processOutput !== undefined) { + let outputDatasets = global.NODE_BRANCH_TO_ARRAY(bot.processNode.referenceParent.processOutput, 'Output Dataset') + + for (let j = 0; j < outputDatasets.length; j++) { + let outputDataset = outputDatasets[j] + + let botNode = global.FIND_NODE_IN_NODE_MESH(outputDataset, 'Indicator Bot') + if (botNode === undefined) { + botNode = global.FIND_NODE_IN_NODE_MESH(outputDataset, 'Trading Bot') + } + if (botNode === undefined) { + botNode = global.FIND_NODE_IN_NODE_MESH(outputDataset, 'Sensor Bot') + } + + /* Some validations to verify that everything is in place. */ + if (outputDataset.referenceParent !== undefined) { + if (outputDataset.referenceParent.config.codeName === undefined) { + logger.write(MODULE_NAME, "[ERROR] raiseEvents -> codeName at Dataset Definition not defined. Dataset Definition = " + JSON.stringify(outputDataset.referenceParent)); + throw (global.DEFAULT_FAIL_RESPONSE); + } + if (outputDataset.referenceParent.parentNode !== undefined) { + if (outputDataset.referenceParent.parentNode.config.codeName === undefined) { + logger.write(MODULE_NAME, "[ERROR] raiseEvents -> codeName at Product not defined. Product = " + JSON.stringify(outputDataset.referenceParent.parentNode)); + throw (global.DEFAULT_FAIL_RESPONSE); + } + if (botNode !== undefined) { + if (botNode.config.codeName === undefined) { + logger.write(MODULE_NAME, "[ERROR] raiseEvents -> codeName at Bot not defined. Bot = " + JSON.stringify(botNode)); + throw (global.DEFAULT_FAIL_RESPONSE); + } + if (botNode.parentNode !== undefined) { + if (botNode.parentNode.config.codeName === undefined) { + logger.write(MODULE_NAME, "[ERROR] raiseEvents -> codeName at Data Mine not defined. Data Mine = " + JSON.stringify(botNode.parentNode)); + throw (global.DEFAULT_FAIL_RESPONSE); + } + } else { + logger.write(MODULE_NAME, "[ERROR] raiseEvents -> Bot not attached to a Data Mine or Trading Mine. Bot = " + JSON.stringify(botNode)); + throw (global.DEFAULT_FAIL_RESPONSE); + } + } else { + logger.write(MODULE_NAME, "[ERROR] raiseEvents -> Product not attached to a Bot. Product = " + JSON.stringify(outputDataset.referenceParent.parentNode)); + throw (global.DEFAULT_FAIL_RESPONSE); + } + } else { + logger.write(MODULE_NAME, "[ERROR] raiseEvents -> Dataset Definition not attached to a Product. Dataset Definition = " + JSON.stringify(outputDataset.referenceParent)); + throw (global.DEFAULT_FAIL_RESPONSE); + } + } else { + logger.write(MODULE_NAME, "[ERROR] raiseEvents -> Output Dataset with no reference to a Dataset Definition. Output Dataset = " + JSON.stringify(outputDataset)); + throw (global.DEFAULT_FAIL_RESPONSE); + } + + /* All good, lets emit the event. */ + + let dataMine = botNode.parentNode.config.codeName + let botName = botNode.config.codeName + let product = outputDataset.referenceParent.parentNode.config.codeName + let dataset = outputDataset.referenceParent.config.codeName + + key = dataMine + "-" + botName + "-" + product + "-" + dataset + "-" + bot.exchange + "-" + bot.market.baseAsset + '/' + bot.market.quotedAsset + let event = { + lastFile: lastFile, + timeFrames: timeFrames + } + global.EVENT_SERVER_CLIENT.createEventHandler(key, 'Dataset Updated') + global.EVENT_SERVER_CLIENT.raiseEvent(key, 'Dataset Updated', event) + } + } + } }; diff --git a/TaskServer/Root.js b/TaskServer/Root.js index 3a0dec4cd..10ac254d5 100644 --- a/TaskServer/Root.js +++ b/TaskServer/Root.js @@ -35,7 +35,6 @@ global.dailyFilePeriods = JSON.parse(global.dailyFilePeriods); - const ROOT_DIR = './'; const MODULE_NAME = "Root"; const WAIT_TIME_FOR_ALL_PROCESS_INSTANCES_TO_START = 10000 // This avoid a race condition that could happen if one process finished before all the other even started. @@ -57,50 +56,29 @@ /* Global control of logging. */ global.LOG_CONTROL = { - "Assistant": { - logInfo: true, - logWarnings: false, - logErrors: true, - logContent: false, - intensiveLogging: false - }, - "Exchange API": { - logInfo: true, - logWarnings: false, - logErrors: true, - logContent: false, - intensiveLogging: false - }, "Status Report": { - logInfo: true, + logInfo: false, logWarnings: false, logErrors: true, logContent: false, intensiveLogging: false }, "Dataset": { - logInfo: true, - logWarnings: false, - logErrors: true, - logContent: false, - intensiveLogging: false - }, - "Context": { - logInfo: true, + logInfo: false, logWarnings: false, logErrors: true, logContent: false, intensiveLogging: false }, "Process Execution Events": { - logInfo: true, + logInfo: false, logWarnings: false, logErrors: true, logContent: false, intensiveLogging: false }, "Process Output": { - logInfo: true, + logInfo: false, logWarnings: false, logErrors: true, logContent: false, @@ -112,7 +90,7 @@ } catch (err) { - console.log(logDisplace + "Root : [ERROR] initialize -> err = " + err.stack); + console.log(logDisplace + "Root : [ERROR] initialize -> err = " + err.stack); return; } } @@ -132,28 +110,28 @@ /* Process Loops Declarations. */ - const INDICATOR_BOT_MAIN_LOOP_MODULE = require('./IndicatorBotProcessMainLoop'); - const SENSOR_BOT_MAIN_LOOP_MODULE = require('./SensorBotProcessMainLoop'); - const TRADING_ENGINE_MAIN_LOOP_MODULE = require('./TradingBotProcessMainLoop'); + const INDICATOR_BOT_MODULE = require('./IndicatorBot'); + const SENSOR_BOT = require('./SensorBot'); + const TRADING_BOT_MODULE = require('./TradingBot'); let botConfig; let processInstance = global.TASK_NODE.bot.processes[processIndex] /* Here we will check if we need to load the configuration and code of the bot from a file or we will take that from the UI. */ if ( - processInstance.referenceParent.code.framework !== undefined && - ( processInstance.referenceParent.code.framework.name === 'Multi-Period-Market' || - processInstance.referenceParent.code.framework.name === 'Multi-Period-Daily' || - processInstance.referenceParent.code.framework.name === 'Multi-Period') - ) { - botConfig = processInstance.referenceParent.parentNode.code + processInstance.referenceParent.config.framework !== undefined && + (processInstance.referenceParent.config.framework.name === 'Multi-Period-Market' || + processInstance.referenceParent.config.framework.name === 'Multi-Period-Daily' || + processInstance.referenceParent.config.framework.name === 'Low-Frequency-Trading-Process') + ) { + botConfig = processInstance.referenceParent.parentNode.config botConfig.definedByUI = true bootingBot(processIndex) return } else { getBotConfigFromFile(); return - } + } function getBotConfigFromFile() { @@ -162,7 +140,7 @@ const FILE_STORAGE = require('./FileStorage.js'); let fileStorage = FILE_STORAGE.newFileStorage(); - let filePath = global.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.parentNode.code.codeName + '/bots/' + global.TASK_NODE.bot.code.repo + '/this.bot.config.json'; + let filePath = global.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.parentNode.config.codeName + '/bots/' + processInstance.referenceParent.parentNode.config.repo + '/this.bot.config.json'; fileStorage.getTextFile(filePath, onFileReceived); @@ -171,16 +149,16 @@ if (err.result !== global.DEFAULT_OK_RESPONSE.result) { console.log(logDisplace + "Root : [ERROR] start -> getBotConfigFromFile -> onInizialized -> onFileReceived -> err = " + JSON.stringify(err)); console.log(logDisplace + "Root : [ERROR] start -> getBotConfigFromFile -> onInizialized -> onFileReceived -> filePath = " + filePath); - console.log(logDisplace + "Root : [ERROR] start -> getBotConfigFromFile -> onInizialized -> onFileReceived -> dataMine = " + global.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.parentNode.code.codeName); + console.log(logDisplace + "Root : [ERROR] start -> getBotConfigFromFile -> onInizialized -> onFileReceived -> dataMine = " + global.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.parentNode.config.codeName); return; } try { botConfig = JSON.parse(text); - botConfig.repo = global.TASK_NODE.bot.code.repo; + botConfig.repo = global.TASK_NODE.bot.config.repo; bootingBot(processIndex); } catch (err) { - console.log(logDisplace + "Root : [ERROR] start -> getBotConfigFromFile -> onInizialized -> onFileReceived -> err = " + JSON.stringify(err)); + console.log(logDisplace + "Root : [ERROR] start -> getBotConfigFromFile -> onInizialized -> onFileReceived -> err = " + err.stack); return; } } @@ -195,7 +173,7 @@ try { - botConfig.process = global.TASK_NODE.bot.processes[processIndex].referenceParent.code.codeName + botConfig.process = global.TASK_NODE.bot.processes[processIndex].referenceParent.config.codeName botConfig.debug = {}; botConfig.processNode = global.TASK_NODE.bot.processes[processIndex] @@ -204,28 +182,21 @@ botConfig.DELETE_QUEUE_SIZE = 10 // This number represents how many log files can be at the queue at any point in time, which means how many logs are not still deleted. /* Simplifying the access to basic info */ - botConfig.dataMine = global.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.parentNode.code.codeName - botConfig.exchange = global.TASK_NODE.bot.processes[processIndex].marketReference.referenceParent.parentNode.parentNode.name - botConfig.exchangeNode = global.TASK_NODE.bot.processes[processIndex].marketReference.referenceParent.parentNode.parentNode + botConfig.dataMine = global.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.parentNode.config.codeName + botConfig.exchange = global.TASK_NODE.parentNode.parentNode.parentNode.referenceParent.parentNode.parentNode.name + botConfig.exchangeNode = global.TASK_NODE.parentNode.parentNode.parentNode.referenceParent.parentNode.parentNode botConfig.market = { - baseAsset: global.TASK_NODE.bot.processes[processIndex].marketReference.referenceParent.baseAsset.referenceParent.code.codeName, - quotedAsset: global.TASK_NODE.bot.processes[processIndex].marketReference.referenceParent.quotedAsset.referenceParent.code.codeName + baseAsset: global.TASK_NODE.parentNode.parentNode.parentNode.referenceParent.baseAsset.referenceParent.config.codeName, + quotedAsset: global.TASK_NODE.parentNode.parentNode.parentNode.referenceParent.quotedAsset.referenceParent.config.codeName } - botConfig.uiStartDate = global.TASK_NODE.bot.code.startDate - botConfig.code = global.TASK_NODE.bot.code - - /* This stuff is still hardcoded and unresolved. */ - botConfig.version = { - "major": 1, - "minor": 0 - } - botConfig.dataSetVersion = "dataSet.V1" + botConfig.uiStartDate = global.TASK_NODE.bot.config.startDate + botConfig.config = global.TASK_NODE.bot.config /* Loop Counter */ - botConfig.loopCounter = 0; + botConfig.loopCounter = 0; /* File Path Root */ - botConfig.filePathRoot = botConfig.exchange + "/" + botConfig.market.baseAsset + "-" + botConfig.market.quotedAsset + "/" + botConfig.dataMine + "/" + botConfig.codeName ; + botConfig.filePathRoot = botConfig.exchange + "/" + botConfig.market.baseAsset + "-" + botConfig.market.quotedAsset + "/" + botConfig.dataMine + "/" + botConfig.codeName; /* Process Key */ botConfig.processKey = global.TASK_NODE.bot.processes[processIndex].name + '-' + global.TASK_NODE.bot.processes[processIndex].type + '-' + global.TASK_NODE.bot.processes[processIndex].id @@ -233,27 +204,25 @@ /* Bot Type */ botConfig.type = global.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.type - /* Setting the Key to use */ - process.env.KEY = undefined - process.env.SECRET = undefined + /* Time Frame Filter */ + if (global.TASK_NODE.bot.timeFramesFilter !== undefined) { + botConfig.dailyTimeFrames = global.TASK_NODE.bot.timeFramesFilter.config.dailyTimeFrames + botConfig.marketTimeFrames = global.TASK_NODE.bot.timeFramesFilter.config.marketTimeFrames + } - if (botConfig.processNode) { - if (botConfig.processNode.marketReference) { - if (botConfig.processNode.marketReference.keyInstance !== undefined) { - if (botConfig.processNode.marketReference.keyInstance.referenceParent !== undefined) { - let key = botConfig.processNode.marketReference.keyInstance.referenceParent + if (global.TASK_NODE.keyReference !== undefined) { + if (global.TASK_NODE.keyReference.referenceParent !== undefined) { + let key = global.TASK_NODE.keyReference.referenceParent - process.env.KEY = key.code.codeName - process.env.SECRET = key.code.secret - } - } + botConfig.KEY = key.config.codeName + botConfig.SECRET = key.config.secret } } - let processConfig = global.TASK_NODE.bot.processes[processIndex].referenceParent.code + let processConfig = global.TASK_NODE.bot.processes[processIndex].referenceParent.config if (processConfig.framework !== undefined) { - if (processConfig.framework.name === "Multi-Period-Daily" || processConfig.framework.name === "Multi-Period-Market" || processConfig.framework.name === "Multi-Period") { + if (processConfig.framework.name === "Multi-Period-Daily" || processConfig.framework.name === "Multi-Period-Market" || processConfig.framework.name === "Low-Frequency-Trading-Process") { if (processConfig.framework.startDate !== undefined) { processConfig.framework.startDate.resumeExecution = true; if (processConfig.startMode.noTime !== undefined) { @@ -283,7 +252,7 @@ if (processConfig.startMode === undefined) { // Default botConfig.hasTheBotJustStarted = true; - + switch (botConfig.type) { case 'Sensor Bot': { runSensorBot(botConfig, processConfig); @@ -387,7 +356,7 @@ try { global.TOTAL_PROCESS_INSTANCES_CREATED++ - const DEBUG_MODULE = require(ROOT_DIR + 'DebugLog'); + const DEBUG_MODULE = require(global.ROOT_DIR + 'DebugLog'); let logger; logger = DEBUG_MODULE.newDebugLog(); @@ -396,14 +365,14 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> bootingBot -> runSensorBot -> Entering function."); } - let extractionBotMainLoop = SENSOR_BOT_MAIN_LOOP_MODULE.newSensorBotProcessMainLoop(pBotConfig, logger); - extractionBotMainLoop.initialize(pProcessConfig, onInitializeReady); + let sensorBot = SENSOR_BOT.newSensorBot(pBotConfig, logger); + sensorBot.initialize(pProcessConfig, onInitializeReady); function onInitializeReady(err) { if (err.result === global.DEFAULT_OK_RESPONSE.result) { - extractionBotMainLoop.run(whenRunFinishes); + sensorBot.run(whenRunFinishes); function whenRunFinishes(err) { @@ -412,14 +381,11 @@ let botId = pBotConfig.dataMine + "." + pBotConfig.codeName + "." + pBotConfig.process; if (err.result === global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[INFO] start -> bootingBot -> runSensorBot -> onInitializeReady -> whenStartFinishes -> Bot execution finished sucessfully."); logger.write(MODULE_NAME, "[INFO] start -> bootingBot -> runSensorBot -> onInitializeReady -> whenStartFinishes -> Bot Id = " + botId); logger.persist(); - } else { - logger.write(MODULE_NAME, "[ERROR] start -> bootingBot -> runSensorBot -> onInitializeReady -> whenStartFinishes -> err = " + err.message); logger.write(MODULE_NAME, "[ERROR] start -> bootingBot -> runSensorBot -> onInitializeReady -> whenStartFinishes -> Execution will be stopped. "); logger.write(MODULE_NAME, "[ERROR] start -> bootingBot -> runSensorBot -> onInitializeReady -> whenStartFinishes -> Bye."); @@ -452,7 +418,7 @@ try { global.TOTAL_PROCESS_INSTANCES_CREATED++ - const DEBUG_MODULE = require(ROOT_DIR + 'DebugLog'); + const DEBUG_MODULE = require(global.ROOT_DIR + 'DebugLog'); let logger; logger = DEBUG_MODULE.newDebugLog(); @@ -461,21 +427,21 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> bootingBot -> runIndicatorBot -> Entering function."); } - let indicatorBotMainLoop = INDICATOR_BOT_MAIN_LOOP_MODULE.newIndicatorBotProcessMainLoop(pBotConfig, logger); - indicatorBotMainLoop.initialize(pProcessConfig, onInitializeReady); + let indicatorBot = INDICATOR_BOT_MODULE.newIndicatorBot(pBotConfig, logger); + indicatorBot.initialize(pProcessConfig, onInitializeReady); function onInitializeReady(err) { if (err.result === global.DEFAULT_OK_RESPONSE.result) { - indicatorBotMainLoop.run(whenRunFinishes); + indicatorBot.run(whenRunFinishes); function whenRunFinishes(err) { pBotConfig.loopCounter = 0; let botId = pBotConfig.dataMine + "." + pBotConfig.codeName + "." + pBotConfig.process; - + if (err.result === global.DEFAULT_OK_RESPONSE.result) { logger.write(MODULE_NAME, "[INFO] start -> bootingBot -> runIndicatorBot -> onInitializeReady -> whenStartFinishes -> Bot execution finished sucessfully."); @@ -515,7 +481,7 @@ global.TOTAL_PROCESS_INSTANCES_CREATED++ try { - const DEBUG_MODULE = require(ROOT_DIR + 'DebugLog'); + const DEBUG_MODULE = require(global.ROOT_DIR + 'DebugLog'); let logger; logger = DEBUG_MODULE.newDebugLog(); @@ -524,14 +490,14 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> bootingBot -> runTradingBot -> Entering function."); } - let tradingBotMainLoop = TRADING_ENGINE_MAIN_LOOP_MODULE.newTradingBotProcessMainLoop(pBotConfig, logger); - tradingBotMainLoop.initialize(pProcessConfig, onInitializeReady); + let tradingBot = TRADING_BOT_MODULE.newTradingBot(pBotConfig, logger); + tradingBot.initialize(pProcessConfig, onInitializeReady); function onInitializeReady(err) { if (err.result === global.DEFAULT_OK_RESPONSE.result) { - tradingBotMainLoop.run(whenRunFinishes); + tradingBot.run(whenRunFinishes); function whenRunFinishes(err) { diff --git a/TaskServer/SensorBotProcessMainLoop.js b/TaskServer/SensorBot.js similarity index 59% rename from TaskServer/SensorBotProcessMainLoop.js rename to TaskServer/SensorBot.js index 558d9ffa4..13e5c251d 100644 --- a/TaskServer/SensorBotProcessMainLoop.js +++ b/TaskServer/SensorBot.js @@ -1,8 +1,6 @@ -exports.newSensorBotProcessMainLoop = function newSensorBotProcessMainLoop(bot, parentLogger) { +exports.newSensorBot = function newSensorBot(bot, parentLogger) { - const ROOT_DIR = './'; - - const MODULE_NAME = "Sensor Process Main Loop"; + const MODULE_NAME = "Sensor Bot"; const FULL_LOG = true; let USER_BOT_MODULE; @@ -11,11 +9,10 @@ const FILE_STORAGE = require('./FileStorage.js'); let fileStorage = FILE_STORAGE.newFileStorage(parentLogger); - const DEBUG_MODULE = require(ROOT_DIR + 'DebugLog'); + const DEBUG_MODULE = require(global.ROOT_DIR + 'DebugLog'); let logger; // We need this here in order for the loopHealth function to work and be able to rescue the loop when it gets in trouble. let nextLoopTimeoutHandle; - let checkLoopHealthHandle; let thisObject = { initialize: initialize, @@ -27,12 +24,8 @@ return thisObject; function initialize(pProcessConfig, callBackFunction) { - /* This function is exactly the same in the 3 modules representing the 2 different bot types loops. */ - try { - if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, "[INFO] initialize -> Entering function."); } - processConfig = pProcessConfig; if (bot.definedByUI === true) { @@ -41,13 +34,12 @@ return } - let filePath = bot.dataMine + "/" + "bots" + "/" + bot.repo + "/" + pProcessConfig.codeName + let filePath = bot.dataMine + "/" + "bots" + "/" + bot.processNode.referenceParent.parentNode.config.repo + "/" + pProcessConfig.codeName filePath += "/User.Bot.js" fileStorage.getTextFile(filePath, onBotDownloaded); function onBotDownloaded(err, text) { - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { parentLogger.write(MODULE_NAME, "[ERROR] initialize -> onInizialized -> onBotDownloaded -> err = " + err.message); @@ -64,13 +56,12 @@ callBackFunction(global.DEFAULT_FAIL_RESPONSE); } - filePath = bot.dataMine + "/" + "bots" + "/" + bot.repo; + filePath = bot.dataMine + "/" + "bots" + "/" + bot.processNode.referenceParent.parentNode.config.repo; filePath += "/Commons.js" fileStorage.getTextFile(filePath, onCommonsDownloaded); function onCommonsDownloaded(err, text) { - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { parentLogger.write(MODULE_NAME, "[WARN] initialize -> onBotDownloaded -> onCommonsDownloaded -> Commons not found: " + err.code || err.message); callBackFunction(global.DEFAULT_OK_RESPONSE); @@ -85,42 +76,34 @@ } } catch (err) { - parentLogger.write(MODULE_NAME, "[ERROR] initialize -> err = "+ err.stack); + parentLogger.write(MODULE_NAME, "[ERROR] initialize -> err = " + err.stack); callBackFunction(global.DEFAULT_FAIL_RESPONSE); } } function run(callBackFunction) { - try { - if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, "[INFO] run -> Entering function."); } - - bot.enableCheckLoopHealth = true; - let fixedTimeLoopIntervalHandle; - if (bot.runAtFixedInterval === true) { + /* Heartbeats sent to the UI */ + bot.processHeartBeat = processHeartBeat + if (bot.runAtFixedInterval === true) { fixedTimeLoopIntervalHandle = setInterval(loop, bot.fixedInterval); loop(); // First run. - } else { - loop(); - } function loop() { - try { - processHeartBeat(undefined, undefined, "Running...") + processHeartBeat(undefined, undefined, "Running...") function pad(str, max) { str = str.toString(); return str.length < max ? pad(" " + str, max) : str; } /* For each loop we want to create a new log file. */ - if (logger !== undefined) { logger.finalize() } @@ -132,31 +115,24 @@ bot.loopCounter++; bot.loopStartTime = new Date().valueOf(); - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> Entering function."); } - - /* Loop Heartbeat sent to the UI */ - bot.processHeartBeat = processHeartBeat - processHeartBeat() + /* We tell the UI that we are running. */ + processHeartBeat() /* We define here all the modules that the rest of the infraestructure, including the bots themselves can consume. */ - - const UTILITIES = require(ROOT_DIR + 'CloudUtilities'); - const STATUS_REPORT = require(ROOT_DIR + 'StatusReport'); - const STATUS_DEPENDENCIES = require(ROOT_DIR + 'StatusDependencies'); - const PROCESS_EXECUTION_EVENTS = require(ROOT_DIR + 'ProcessExecutionEvents'); - const PROCESS_OUTPUT = require(ROOT_DIR + 'ProcessOutput'); + const UTILITIES = require(global.ROOT_DIR + 'CloudUtilities'); + const STATUS_REPORT = require(global.ROOT_DIR + 'StatusReport'); + const STATUS_DEPENDENCIES = require(global.ROOT_DIR + 'StatusDependencies'); + const PROCESS_EXECUTION_EVENTS = require(global.ROOT_DIR + 'ProcessExecutionEvents'); + const PROCESS_OUTPUT = require(global.ROOT_DIR + 'ProcessOutput'); /* We define the datetime for the process that we are running now. This will be the official processing time for both the infraestructure and the bot. */ - bot.processDatetime = new Date(); // This will be considered the process date and time, so as to have it consistenly all over the execution. - /* High level log entry */ - - console.log(new Date().toISOString() + " " + pad(bot.exchange, 20) + " " + pad(bot.market.baseAsset + '/' + bot.market.quotedAsset, 10) + " " + pad(bot.codeName, 30) + " " + pad(bot.process, 30) - + " Main Loop # " + pad(Number(bot.loopCounter), 8) ) + /* High level log entry */ + console.log(new Date().toISOString() + " " + pad(bot.exchange, 20) + " " + pad(bot.market.baseAsset + '/' + bot.market.quotedAsset, 10) + " " + pad(bot.codeName, 30) + " " + pad(bot.process, 30) + + " Main Loop # " + pad(Number(bot.loopCounter), 8)) /* We will prepare first the infraestructure needed for the bot to run. There are 4 modules we need to sucessfullly initialize first. */ - let processExecutionEvents let userBot; let statusDependencies; @@ -167,21 +143,12 @@ initializeProcessExecutionEvents(); function initializeProcessExecutionEvents() { - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeProcessExecutionEvents -> Entering function."); } - processExecutionEvents = PROCESS_EXECUTION_EVENTS.newProcessExecutionEvents(bot, logger) - - processExecutionEvents.initialize(onInizialized); + processExecutionEvents.initialize(processConfig, onInizialized); function onInizialized(err) { - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Entering function."); } - switch (err.result) { case global.DEFAULT_OK_RESPONSE.result: { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Execution finished well."); @@ -195,66 +162,41 @@ return; } case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - processStopped() logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; + global.unexpectedError = err.message + processStopped() + return } default: { logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; + global.unexpectedError = err.message + processStopped() + return } } - } catch (err) { logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); + global.unexpectedError = err.message + processStopped() + return } } } catch (err) { logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); + global.unexpectedError = err.message + processStopped() + return } } function startProcessExecutionEvents() { - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessExecutionEvents -> Entering function."); } - processExecutionEvents.start(onStarted); function onStarted(err) { - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessExecutionEvents -> onStarted -> Entering function."); } - switch (err.result) { case global.DEFAULT_OK_RESPONSE.result: { logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessExecutionEvents -> onStarted -> Execution finished well."); @@ -274,68 +216,41 @@ return; } case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - processStopped() logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; + global.unexpectedError = err.message + processStopped() + return } default: { logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> Unhandled err.result received. -> err.result = " + err.result); logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; + global.unexpectedError = err.message + processStopped() + return } } - } catch (err) { logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); + global.unexpectedError = err.message + processStopped() + return } } - } catch (err) { logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); + global.unexpectedError = err.message + processStopped() + return } } function initializeStatusDependencies() { - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeStatusDependencies -> Entering function."); } - statusDependencies = STATUS_DEPENDENCIES.newStatusDependencies(bot, logger, STATUS_REPORT, UTILITIES, PROCESS_OUTPUT); - statusDependencies.initialize(onInizialized); function onInizialized(err) { - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeStatusDependencies -> onInizialized -> Entering function."); } - switch (err.result) { case global.DEFAULT_OK_RESPONSE.result: { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeStatusDependencies -> onInizialized -> Execution finished well."); @@ -349,68 +264,41 @@ return; } case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - processStopped() logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; + global.unexpectedError = err.message + processStopped() + return } default: { logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; + global.unexpectedError = err.message + processStopped() + return } } - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return } } - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return } } function initializeUserBot() { - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeUserBot -> Entering function."); } - usertBot = USER_BOT_MODULE.newUserBot(bot, logger, COMMONS_MODULE, UTILITIES, FILE_STORAGE, STATUS_REPORT, exchangeAPI); - usertBot.initialize(statusDependencies, onInizialized); function onInizialized(err) { - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeUserBot -> onInizialized -> Entering function."); } - switch (err.result) { case global.DEFAULT_OK_RESPONSE.result: { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeUserBot -> onInizialized > Execution finished well."); @@ -424,81 +312,51 @@ return; } case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - processStopped() logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> onInizialized > Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; + global.unexpectedError = err.message + processStopped() + return } case global.CUSTOM_OK_RESPONSE.result: { switch (err.message) { default: { logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> onInizialized > Unhandled custom response received. -> err = " + err.message); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; + global.unexpectedError = err.message + processStopped() + return } } } default: { logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> onInizialized > Unhandled err.result received. -> err.result = " + err.result); logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> onInizialized > Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; + global.unexpectedError = err.message + processStopped() + return } } - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> onInizialized -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> onInizialized -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return } } - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeUserBot -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return } } function startUserBot() { - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> startUserBot -> Entering function."); } - usertBot.start(onFinished); function onFinished(err) { - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> startUserBot -> onFinished -> Entering function."); } - switch (err.result) { case global.DEFAULT_OK_RESPONSE.result: { logger.write(MODULE_NAME, "[INFO] run -> loop -> startUserBot -> onFinished > Execution finished well."); @@ -512,15 +370,10 @@ return; } case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - processStopped() logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> onFinished > Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; + global.unexpectedError = err.message + processStopped() + return } case global.CUSTOM_OK_RESPONSE.result: { @@ -539,66 +392,43 @@ } default: { logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> onFinished > Unhandled custom response received. -> err = " + err.message); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; + global.unexpectedError = err.message + processStopped() + return } } } default: { logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> onFinished > Unhandled err.result received. -> err.result = " + err.result); logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> onFinished > Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; + global.unexpectedError = err.message + processStopped() + return } } - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> onFinished -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> onFinished -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return } } - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startUserBot -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return } } function finishProcessExecutionEvents() { - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> finishProcessExecutionEvents -> Entering function."); } - processExecutionEvents.finish(onFinished); function onFinished(err) { try { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> finishProcessExecutionEvents -> onFinished -> Entering function."); } - processExecutionEvents.finalize() - processExecutionEvents = undefined + processExecutionEvents = undefined switch (err.result) { case global.DEFAULT_OK_RESPONSE.result: { @@ -614,108 +444,63 @@ return; } case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - processStopped() logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; + global.unexpectedError = err.message + processStopped() + return } default: { logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> Unhandled err.result received. -> err.result = " + err.result); logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; + global.unexpectedError = err.message + processStopped() + return } } - } catch (err) { logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); + global.unexpectedError = err.message + processStopped() + return } } - } catch (err) { logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); + global.unexpectedError = err.message + processStopped() + return } } function loopControl(nextWaitTime) { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Entering function."); } if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> nextWaitTime = " + nextWaitTime); } /* We show we reached the end of the loop. */ /* Here we check if we must stop the loop gracefully. */ - shallWeStop(onStop, onContinue); function onStop() { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> onStop -> Entering function."); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> onStop -> Stopping the Loop Gracefully. See you next time!"); } - - if(global.WRITE_LOGS_TO_FILES === 'true'){ - logger.persist(); - } - - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; processStopped() - callBackFunction(global.DEFAULT_OK_RESPONSE); return; - } function onContinue() { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> onContinue -> Entering function."); } - /* Sensor bots are going to be executed after a configured period of time after the last execution ended. This is to avoid overlapping executions. */ - switch (nextWaitTime) { case 'Normal': { if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (processConfig.normalWaitTime / 1000) + " seconds."); } - if (processConfig.deadWaitTime > 0) { - checkLoopHealthHandle = setTimeout(checkLoopHealth, processConfig.deadWaitTime, bot.loopCounter); - } nextLoopTimeoutHandle = setTimeout(loop, processConfig.normalWaitTime); - processHeartBeat(undefined, undefined, "Waiting " + processConfig.normalWaitTime / 1000 + " seconds for next execution.") - if(global.WRITE_LOGS_TO_FILES === 'true'){ + processHeartBeat(undefined, undefined, "Waiting " + processConfig.normalWaitTime / 1000 + " seconds for next execution.") + if (global.WRITE_LOGS_TO_FILES === 'true') { logger.persist(); } } break; case 'Retry': { if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (processConfig.retryWaitTime / 1000) + " seconds."); } - if (processConfig.deadWaitTime > 0) { - checkLoopHealthHandle = setTimeout(checkLoopHealth, processConfig.retryWaitTime * 5, bot.loopCounter); - } nextLoopTimeoutHandle = setTimeout(loop, processConfig.retryWaitTime); - processHeartBeat(undefined, undefined, "Trying to recover from some problem. Waiting " + processConfig.retryWaitTime / 1000 + " seconds for next execution.") + processHeartBeat(undefined, undefined, "Trying to recover from some problem. Waiting " + processConfig.retryWaitTime / 1000 + " seconds for next execution.") logger.persist(); } break; @@ -727,7 +512,7 @@ } else { if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (processConfig.sleepWaitTime / 60000) + " minutes."); } nextLoopTimeoutHandle = setTimeout(loop, processConfig.sleepWaitTime); - processHeartBeat(undefined, undefined, "Waiting " + processConfig.sleepWaitTime / 60000 + " minutes for next execution.") + processHeartBeat(undefined, undefined, "Waiting " + processConfig.sleepWaitTime / 60000 + " minutes for next execution.") logger.persist(); } } @@ -740,7 +525,7 @@ } else { if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (processConfig.comaWaitTime / 3600000) + " hours."); } nextLoopTimeoutHandle = setTimeout(loop, processConfig.comaWaitTime); - processHeartBeat(undefined, undefined, "Waiting " + processConfig.comaWaitTime / 3600000 + " hours for next execution.") + processHeartBeat(undefined, undefined, "Waiting " + processConfig.comaWaitTime / 3600000 + " hours for next execution.") logger.persist(); } } @@ -749,44 +534,9 @@ } } - function checkLoopHealth(pLastLoop) { - - if (bot.enableCheckLoopHealth === false || global.STOP_TASK_GRACEFULLY === true) { - - logger.write(MODULE_NAME, "[WARN] run -> loop -> checkLoopHealth -> bot.enableCheckLoopHealth = " + bot.enableCheckLoopHealth); - - return; - } // This gets disabled anytime the Main Loop is shut down by any condition. - - if (bot.loopCounter <= pLastLoop + 1) { // This means that the next loop started but also stopped executing abruptally. - - let now = new Date().valueOf(); - - if (now - bot.loopStartTime > processConfig.deadWaitTime) { - - logger.write(MODULE_NAME, "[ERROR] run -> loop -> checkLoopHealth -> Dead loop found -> pLastLoop = " + pLastLoop); - console.log((new Date().toISOString() + " [ERROR] run -> loop -> checkLoopHealth -> " + pad(bot.codeName, 20) + " " + pad(bot.process, 30) + " Loop # " + pad(Number(bot.loopCounter), 5) + " found dead. Resurrecting it now.")); - - logger.persist(); // We persist the logs of the failed execution. - clearTimeout(nextLoopTimeoutHandle); // We cancel the timeout in case the original loop was still running and schedulled to reexecute. - loop(); // We restart the loop so that the processing can continue. - - } else { - - console.log((new Date().toISOString() + " [WARN] run -> loop -> checkLoopHealth -> " + pad(bot.codeName, 20) + " " + pad(bot.process, 30) + " Loop # " + pad(Number(bot.loopCounter), 5) + " found delayed but still alive. No action taken.")); - - } - } - } - function shallWeStop(stopCallBack, continueCallBack) { - try { - /* IMPORTANT: This function is exactly the same on the 3 modules. */ - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> shallWeStop -> Entering function. "); } - if (!global.STOP_TASK_GRACEFULLY) { continueCallBack(); } else { @@ -794,23 +544,17 @@ } } catch (err) { logger.write(MODULE_NAME, "[ERROR] run -> loop -> shallWeStop -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; + global.unexpectedError = err.message + processStopped() + return } } } catch (err) { - parentLogger.write(MODULE_NAME, "[ERROR] run -> loop -> err = "+ err.stack); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); + parentLogger.write(MODULE_NAME, "[ERROR] run -> loop -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return } } @@ -825,16 +569,26 @@ } function processStopped() { - global.EVENT_SERVER_CLIENT.raiseEvent(bot.processKey, 'Stopped') + if (global.unexpectedError !== undefined) { + global.PROCESS_ERROR(bot.processKey, undefined, "An unexpected error caused the Process to stop.") + } else { + global.EVENT_SERVER_CLIENT.raiseEvent(bot.processKey, 'Stopped') + } + logger.persist(); + clearInterval(fixedTimeLoopIntervalHandle); + clearTimeout(nextLoopTimeoutHandle); + if (global.unexpectedError !== undefined) { + callBackFunction(global.DEFAULT_FAIL_RESPONSE) + } else { + callBackFunction(global.DEFAULT_OK_RESPONSE) + } } } catch (err) { - parentLogger.write(MODULE_NAME, "[ERROR] run -> err = "+ err.stack); + parentLogger.write(MODULE_NAME, "[ERROR] run -> err = " + err.stack); clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); } } diff --git a/TaskServer/Session.js b/TaskServer/Session.js index 0045054a8..9b8c82b67 100644 --- a/TaskServer/Session.js +++ b/TaskServer/Session.js @@ -2,32 +2,29 @@ const MODULE_NAME = "Session" const FULL_LOG = true; - const ONE_YEAR_IN_MILISECONDS = 365 * 24 * 60 * 60 * 1000 let thisObject = { initialize: initialize } + const SOCIAL_BOTS_MODULE = require('./SocialBots.js') + let socialBotsModule = SOCIAL_BOTS_MODULE.newSocialBots(bot, parentLogger) + return thisObject; function initialize(pProcessConfig, callBackFunction) { try { - if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, "[INFO] initialize -> Entering function."); } - - let telegramAPI - /* Initialize this info so that everything is logged propeerly */ - bot.SESSION = { name: bot.processNode.session.name, id: bot.processNode.session.id } /* Set the folderName for early logging */ - if (bot.processNode.session.code.folderName === undefined) { - bot.SESSION.folderName = bot.SESSION.id + if (bot.processNode.session.config.folderName === undefined) { + bot.SESSION.folderName = bot.processNode.session.type.replace(' ', '-').replace(' ', '-') + '-' + bot.SESSION.id } else { - bot.SESSION.folderName = bot.processNode.session.code.folderName + "-" + bot.SESSION.id + bot.SESSION.folderName = bot.processNode.session.type.replace(' ', '-').replace(' ', '-') + '-' + bot.processNode.session.config.folderName } /* Check if there is a session */ @@ -41,38 +38,59 @@ bot.sessionKey = bot.processNode.session.name + '-' + bot.processNode.session.type + '-' + bot.processNode.session.id global.SESSION_MAP.set(bot.sessionKey, bot.sessionKey) - global.EVENT_SERVER_CLIENT.listenToEvent(bot.sessionKey, 'Run Session', undefined, bot.sessionKey, undefined, runSession) - global.EVENT_SERVER_CLIENT.listenToEvent(bot.sessionKey, 'Stop Session', undefined, bot.sessionKey, undefined, stopSession) + global.EVENT_SERVER_CLIENT.listenToEvent(bot.sessionKey, 'Session Status', undefined, bot.sessionKey, undefined, onSessionStatus) + global.EVENT_SERVER_CLIENT.listenToEvent(bot.sessionKey, 'Run Session', undefined, bot.sessionKey, undefined, onSessionRun) + global.EVENT_SERVER_CLIENT.listenToEvent(bot.sessionKey, 'Stop Session', undefined, bot.sessionKey, undefined, onSessionStop) + global.EVENT_SERVER_CLIENT.listenToEvent(bot.sessionKey, 'Resume Session', undefined, bot.sessionKey, undefined, onSessionResume) + + /* Connect this here so that it is accesible from other places */ + bot.sessionError = sessionError + bot.sessionWarning = sessionWarning + bot.sessionInfo = sessionInfo + + /* Heartbeats sent to the UI */ + bot.sessionHeartBeat = sessionHeartBeat callBackFunction(global.DEFAULT_OK_RESPONSE) return - function runSession(message) { + function onSessionStatus() { + if (bot.SESSION_STATUS === 'Running') { + let event = { + status: 'Session Runnning' + } + global.EVENT_SERVER_CLIENT.raiseEvent(bot.sessionKey, 'Status Response', event) + } else { + let event = { + status: 'Not Session Runnning' + } + global.EVENT_SERVER_CLIENT.raiseEvent(bot.sessionKey, 'Status Response', event) + } + } + function onSessionRun(message) { try { - if (bot.SESSION_STATUS === 'Idle' || bot.SESSION_STATUS === 'Running') { return } // This happens when the UI is reloaded, the session was running and tries to run it again. + /* This happens when the UI is reloaded, the session was running and tries to run it again. */ + if (bot.SESSION_STATUS === 'Idle' || bot.SESSION_STATUS === 'Running') { + parentLogger.write(MODULE_NAME, "[WARN] onSessionRun -> Event received to run the Session while it was already running. ") + return + } /* We are going to run the Definition comming at the event. */ bot.TRADING_SYSTEM = JSON.parse(message.event.tradingSystem) + bot.TRADING_ENGINE = JSON.parse(message.event.tradingEngine) bot.SESSION = JSON.parse(message.event.session) bot.DEPENDENCY_FILTER = JSON.parse(message.event.dependencyFilter) + bot.RESUME = false + bot.FIRST_EXECUTION = true + bot.SESSION.stop = stopSession // stop function - /* Set the folderName for logging, reports, context and data output */ - let code - if (bot.SESSION.code !== undefined) { - code = bot.SESSION.code - if (code.folderName === undefined) { - bot.SESSION.folderName = bot.SESSION.id - } else { - bot.SESSION.folderName = code.folderName + "-" + bot.SESSION.id - } - } + setUpSessionFolderName() - /* Extract values from different sources and consolidate them under one structure that is going to be used later on. */ - setValuesToUse(message) + /* We validate all parameters received and complete some that might be missing if needed. */ + if (checkParemeters() === false) { return } - /* Set up Social Bots */ - initializeSocialBots() + socialBotsModule.initialize() let allGood switch (bot.SESSION.type) { @@ -98,106 +116,294 @@ bot.STOP_SESSION = false } else { bot.STOP_SESSION = true + if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, '[IMPORTANT] onSessionRun -> Stopping the Session now. ') } } + + socialBotsModule.sendMessage(bot.SESSION.type + " '" + bot.SESSION.name + "' is starting.") } catch (err) { - parentLogger.write(MODULE_NAME, "[ERROR] initialize -> runSession -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); + parentLogger.write(MODULE_NAME, "[ERROR] initialize -> onSessionRun -> err = " + err.stack); } } - function stopSession(message) { + function onSessionStop() { + stopSession('Session Stopped From the User Interface.') + } + + function onSessionResume(message) { try { - bot.STOP_SESSION = true - finalizeSocialBots() + if (bot.SESSION.stop === undefined) { + parentLogger.write(MODULE_NAME, "[WARN] onSessionResume -> Event received to resume the Session that have never be ran before. ") + return + } + + /* This happens when the UI is reloaded, the session was running and tries to run it again. */ + if (bot.SESSION_STATUS === 'Idle' || bot.SESSION_STATUS === 'Running') { + parentLogger.write(MODULE_NAME, "[WARN] onSessionResume -> Event received to resume the Session while it was already running. ") + return + } + + bot.RESUME = true + bot.STOP_SESSION = false + + socialBotsModule.sendMessage(bot.SESSION.type + " '" + bot.SESSION.name + "' is resuming.") } catch (err) { - parentLogger.write(MODULE_NAME, "[ERROR] initialize -> stopSession -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); + parentLogger.write(MODULE_NAME, "[ERROR] initialize -> onSessionResume -> err = " + err.stack); } } - function checkDatetimes() { - if (bot.VALUES_TO_USE.timeRange.initialDatetime.valueOf() < (new Date()).valueOf()) { - if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, "[WARN] initialize -> checkDatetimes -> Overriding initialDatetime with present datetime because " + bot.VALUES_TO_USE.timeRange.initialDatetime + " is in the past."); } - bot.VALUES_TO_USE.timeRange.initialDatetime = new Date() + function stopSession(commandOrigin) { + + socialBotsModule.sendMessage(bot.SESSION.type + " '" + bot.SESSION.name + "' is stopping " + commandOrigin) + socialBotsModule.finalize() + bot.STOP_SESSION = true + if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, '[IMPORTANT] stopSession -> Stopping the Session now. ') } + sessionInfo(bot.SESSION, commandOrigin) + } + + function setUpSessionFolderName() { + /* + The session object is overwritten when the session is run. For that reason we + need to setup again the folder name at the Session level. + Set the folderName for logging, reports, context and data output + */ + let config + if (bot.SESSION.config !== undefined) { + config = bot.SESSION.config + if (config.folderName === undefined) { + bot.SESSION.folderName = bot.processNode.session.type.replace(' ', '-').replace(' ', '-') + '-' + bot.SESSION.id + } else { + bot.SESSION.folderName = bot.processNode.session.type.replace(' ', '-').replace(' ', '-') + '-' + bot.processNode.session.config.folderName + } } - if (bot.VALUES_TO_USE.timeRange.finalDatetime.valueOf() < (new Date()).valueOf()) { - if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, "[WARN] initialize -> checkDatetimes -> Overriding finalDatetime with present datetime plus one year because " + bot.VALUES_TO_USE.timeRange.finalDatetime + " is in the past."); } - bot.VALUES_TO_USE.timeRange.finalDatetime = new Date() + ONE_YEAR_IN_MILISECONDS + } + + function checkParemeters() { + /* + Here we check all the Session Parameters received. If something critical is missing we abort returning false. If something + non critical is missing, we complete it with a default value. + */ + + if (bot.SESSION.parameters === undefined) { + let errorMessage = "Session Node with no Parameters." + parentLogger.write(MODULE_NAME, "[ERROR] initialize -> checkParemeters -> " + errorMessage) + bot.sessionError(bot.SESSION, errorMessage) + return false } + + /* Time Range */ + if (bot.SESSION.parameters.timeRange === undefined) { // if the Time Range is missing we create a default one. + bot.SESSION.parameters.timeRange = { + name: 'Missing Time Range', + type: 'Time Range', + config: { + initialDatetime: (new Date()).valueOf(), + finalDatetime: (new Date()).valueOf() + global.ONE_YEAR_IN_MILISECONDS + } + } + } else { + /* Check that we received valid dates */ + if (bot.SESSION.type === 'Backtesting Session') { + if (isNaN(new Date(bot.SESSION.parameters.timeRange.config.initialDatetime)).valueOf()) { + let errorMessage = "sessionParameters.timeRange.config.initialDatetime is not a valid date." + parentLogger.write(MODULE_NAME, "[ERROR] initialize -> checkParemeters -> " + errorMessage) + bot.sessionError(bot.SESSION.parameters, errorMessage) + return false + } + } + if (isNaN(new Date(bot.SESSION.parameters.timeRange.config.finalDatetime)).valueOf()) { + let errorMessage = "sessionParameters.timeRange.config.initialDatetime is not a valid date." + parentLogger.write(MODULE_NAME, "[ERROR] initialize -> checkParemeters -> " + errorMessage) + bot.sessionError(bot.SESSION.parameters, errorMessage) + return false + } + } + + /* Session Type Forced Values */ + let today = (new Date()).valueOf() + let aYearAgo = today - global.ONE_YEAR_IN_MILISECONDS + let aYearFromNow = today + global.ONE_YEAR_IN_MILISECONDS + switch (bot.SESSION.type) { + case 'Backtesting Session': { + useDefaultDatetimes(aYearAgo, today) + break + } + case 'Live Trading Session': { + useDefaultDatetimes(today, aYearFromNow) + break + } + case 'Fordward Testing Session': { + useDefaultDatetimes(today, aYearFromNow) + break + } + case 'Paper Trading Session': { + useDefaultDatetimes(today, aYearFromNow) + break + } + } + + function useDefaultDatetimes(initialDefault, finalDefault) { + /* + Note that inside the system, we are going to deal with these + dates in their numeric value representation. + */ + + /* Initial Datetime */ + if (bot.SESSION.type === 'Backtesting Session') { + if (bot.SESSION.parameters.timeRange.config.initialDatetime === undefined) { + bot.SESSION.parameters.timeRange.config.initialDatetime = initialDefault + } else { + bot.SESSION.parameters.timeRange.config.initialDatetime = (new Date(bot.SESSION.parameters.timeRange.config.initialDatetime)).valueOf() + } + } else { + /* Non backtest session can start from the past only if explicitly configured that way */ + if (bot.SESSION.parameters.timeRange.config.initialDatetime === undefined || bot.SESSION.parameters.timeRange.config.allowStartingFromThePast !== true) { + bot.SESSION.parameters.timeRange.config.initialDatetime = initialDefault + } else { + bot.SESSION.parameters.timeRange.config.initialDatetime = (new Date(bot.SESSION.parameters.timeRange.config.initialDatetime)).valueOf() + } + } + + /* Final Datetime */ + if (bot.SESSION.parameters.timeRange.config.finalDatetime === undefined) { + bot.SESSION.parameters.timeRange.config.finalDatetime = finalDefault + } else { + bot.SESSION.parameters.timeRange.config.finalDatetime = (new Date(bot.SESSION.parameters.timeRange.config.finalDatetime)).valueOf() + } + } + + /* Time Frame */ + if (bot.SESSION.parameters.timeFrame === undefined) { + let errorMessage = "Session Parameters Node with no Time Frame." + parentLogger.write(MODULE_NAME, "[ERROR] initialize -> checkParemeters -> " + errorMessage) + bot.sessionError(bot.SESSION.parameters, errorMessage) + return false + } + if (bot.SESSION.parameters.timeFrame.config.label === undefined) { + let errorMessage = "Session Parameters Node with no Time Frame Label configuration." + parentLogger.write(MODULE_NAME, "[ERROR] initialize -> checkParemeters -> " + errorMessage) + bot.sessionError(bot.SESSION.parameters.timeFrame, errorMessage) + return false + } + bot.SESSION.parameters.timeFrame.config.value = getTimeFrameFromLabel(bot.SESSION.parameters.timeFrame.config.label) + if (bot.SESSION.parameters.timeFrame.config.value === undefined) { + let errorMessage = "Config error: label value not recognized. Try 01-min or 01-hs for example." + parentLogger.write(MODULE_NAME, "[ERROR] initialize -> checkParemeters -> " + errorMessage) + bot.sessionError(bot.SESSION.parameters.timeFrame, errorMessage) + return false + } + + /* Session Base Asset */ + if (bot.SESSION.parameters.sessionBaseAsset === undefined) { + let errorMessage = "Session Parameters Node with no Session Base Asset." + parentLogger.write(MODULE_NAME, "[ERROR] initialize -> checkParemeters -> " + errorMessage) + bot.sessionError(bot.SESSION.parameters, errorMessage) + return false + } + if (bot.SESSION.parameters.sessionBaseAsset.config.initialBalance === undefined) { + let errorMessage = "Session Parameters Session Base Asset with no initialBalance configuration." + parentLogger.write(MODULE_NAME, "[ERROR] initialize -> checkParemeters -> " + errorMessage) + bot.sessionError(bot.SESSION.parameters.sessionBaseAsset, errorMessage) + return false + } + + /* Session Quoted Asset */ + if (bot.SESSION.parameters.sessionQuotedAsset === undefined) { + let errorMessage = "Session Parameters Node with no Session Quoted Asset." + parentLogger.write(MODULE_NAME, "[ERROR] initialize -> checkParemeters -> " + errorMessage) + bot.sessionError(bot.SESSION.parameters, errorMessage) + return false + } + if (bot.SESSION.parameters.sessionQuotedAsset.config.initialBalance === undefined) { + let errorMessage = "Session Parameters Session Quoted Asset with no initialBalance configuration." + parentLogger.write(MODULE_NAME, "[ERROR] initialize -> checkParemeters -> " + errorMessage) + bot.sessionError(bot.SESSION.parameters.sessionQuotedAsset, errorMessage) + return false + } + + /* Slippage */ + if (bot.SESSION.parameters.slippage === undefined) { // if the Slippage is missing we create a default one. + bot.SESSION.parameters.timeRange = { + name: 'Missing Slippage', + type: 'Slippage', + config: { + positionRate: 0, + stopLoss: 0, + takeProfit: 0 + } + } + } + if (bot.SESSION.parameters.slippage.config.positionRate === undefined) { // if the positionRate is missing we create a default one. + bot.SESSION.parameters.slippage.config.positionRate = 0 + } + if (bot.SESSION.parameters.slippage.config.stopLoss === undefined) { // if the stopLoss is missing we create a default one. + bot.SESSION.parameters.slippage.config.stopLoss = 0 + } + if (bot.SESSION.parameters.slippage.config.takeProfit === undefined) { // if the takeProfit is missing we create a default one. + bot.SESSION.parameters.slippage.config.takeProfit = 0 + } + + /* Fee Structure */ + if (bot.SESSION.parameters.feeStructure === undefined) { // if the Fee Structure is missing we create a default one. + bot.SESSION.parameters.feeStructure = { + name: 'Missing Fee Structure', + type: 'Fee Structure', + config: { + maker: 0, + taker: 0 + } + } + } + if (bot.SESSION.parameters.feeStructure.config.maker === undefined) { // if the maker is missing we create a default one. + bot.SESSION.parameters.feeStructure.config.maker = 0 + } + if (bot.SESSION.parameters.feeStructure.config.taker === undefined) { // if the taker is missing we create a default one. + bot.SESSION.parameters.feeStructure.config.taker = 0 + } + + return true } function startBackTesting(message) { - bot.startMode = "Backtest" - if (bot.VALUES_TO_USE.timeRange.finalDatetime.valueOf() > (new Date()).valueOf()) { - bot.VALUES_TO_USE.timeRange.finalDatetime = new Date() - } - bot.resumeExecution = false; - bot.hasTheBotJustStarted = true - bot.multiPeriodProcessDatetime = new Date(bot.VALUES_TO_USE.timeRange.initialDatetime.valueOf()) return true } function startLiveTrading(message) { - - if (process.env.KEY === undefined || process.env.SECRET === undefined) { - if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, "[WARN] initialize -> startLiveTrading -> Key name or Secret not provided, not possible to run the process in Live mode."); } - console.log("Key 'codeName' or 'secret' not provided. Plese check that and try again.") - return + if (bot.KEY === undefined || bot.SECRET === undefined) { + if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, "[ERROR] initialize -> startLiveTrading -> Key 'codeName' or 'secret' not provided. Plese check that and try again."); } + return false } - - bot.startMode = "Live" - checkDatetimes() - bot.resumeExecution = false; - bot.multiPeriodProcessDatetime = new Date(bot.VALUES_TO_USE.timeRange.initialDatetime.valueOf()) - bot.hasTheBotJustStarted = true - pProcessConfig.liveWaitTime = getTimeFrameFromLabel(bot.VALUES_TO_USE.timeFrame) return true } function startFordwardTesting(message) { - - if (process.env.KEY === undefined || process.env.SECRET === undefined) { + if (bot.KEY === undefined || bot.SECRET === undefined) { if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, "[WARN] initialize -> startFordwardTesting -> Key name or Secret not provided, not possible to run the process in Forward Testing mode."); } console.log("Key 'codeName' or 'secret' not provided. Plese check that and try again.") - return + return false } - bot.startMode = "Live" - checkDatetimes() - bot.resumeExecution = false; - bot.multiPeriodProcessDatetime = new Date(bot.VALUES_TO_USE.timeRange.initialDatetime.valueOf()) - bot.hasTheBotJustStarted = true - /* Reduce the balance */ - let balancePercentage = 1 // This is the default value - if (bot.SESSION.code.balancePercentage !== undefined) { - balancePercentage = bot.SESSION.code.balancePercentage + if (bot.SESSION.config.balancePercentage !== undefined) { + balancePercentage = bot.SESSION.config.balancePercentage } - bot.VALUES_TO_USE.initialBalanceA = bot.VALUES_TO_USE.initialBalanceA * balancePercentage / 100 - bot.VALUES_TO_USE.initialBalanceB = bot.VALUES_TO_USE.initialBalanceB * balancePercentage / 100 + bot.SESSION.parameters.sessionBaseAsset.config.initialBalance = bot.SESSION.parameters.sessionBaseAsset.config.initialBalance * balancePercentage / 100 + bot.SESSION.parameters.sessionQuotedAsset.config.initialBalance = bot.SESSION.parameters.sessionQuotedAsset.config.initialBalance * balancePercentage / 100 - bot.VALUES_TO_USE.minimumBalanceA = bot.VALUES_TO_USE.minimumBalanceA * balancePercentage / 100 - bot.VALUES_TO_USE.minimumBalanceB = bot.VALUES_TO_USE.minimumBalanceB * balancePercentage / 100 + bot.SESSION.parameters.sessionBaseAsset.config.minimumBalance = bot.SESSION.parameters.sessionBaseAsset.config.minimumBalance * balancePercentage / 100 + bot.SESSION.parameters.sessionQuotedAsset.config.minimumBalance = bot.SESSION.parameters.sessionQuotedAsset.config.minimumBalance * balancePercentage / 100 - bot.VALUES_TO_USE.maximumBalanceA = bot.VALUES_TO_USE.maximumBalanceA * balancePercentage / 100 - bot.VALUES_TO_USE.maximumBalanceB = bot.VALUES_TO_USE.maximumBalanceB * balancePercentage / 100 + bot.SESSION.parameters.sessionBaseAsset.config.maximumBalance = bot.SESSION.parameters.sessionBaseAsset.config.maximumBalance * balancePercentage / 100 + bot.SESSION.parameters.sessionQuotedAsset.config.maximumBalance = bot.SESSION.parameters.sessionQuotedAsset.config.maximumBalance * balancePercentage / 100 - pProcessConfig.normalWaitTime = getTimeFrameFromLabel(bot.VALUES_TO_USE.timeFrame) + pProcessConfig.normalWaitTime = bot.SESSION.parameters.timeFrame.config.value return true } function startPaperTrading(message) { - bot.startMode = "Paper" - - checkDatetimes() - bot.resumeExecution = false; - bot.hasTheBotJustStarted = true - bot.multiPeriodProcessDatetime = new Date(bot.VALUES_TO_USE.timeRange.initialDatetime.valueOf()) - pProcessConfig.normalWaitTime = getTimeFrameFromLabel(bot.VALUES_TO_USE.timeFrame) return true } @@ -222,290 +428,85 @@ } } - function setValuesToUse(message) { - /* - Base on the information received we will determined which values ultimatelly are going to be used, - and once we do, they will become constants across the multiple loops executions. - */ - - /* Set all default values */ - bot.VALUES_TO_USE = { - slippage: { - positionRate: 0, - stopLoss: 0, - takeProfit: 0 - }, - feeStructure: { - maker: 0, - taker: 0 - }, - timeRange: { - initialDatetime: new Date(), - finalDatetime: new Date() - } + function sessionHeartBeat(processingDate, percentage, status) { + let event = { + seconds: (new Date()).getSeconds(), + processingDate: processingDate, + percentage: percentage, + status: status } + global.EVENT_SERVER_CLIENT.raiseEvent(bot.sessionKey, 'Heartbeat', event) - /* Session Type Dependant Default Values */ - - switch (bot.SESSION.type) { - case 'Backtesting Session': { - bot.VALUES_TO_USE.timeRange.initialDatetime = new Date((new Date()).valueOf() - ONE_YEAR_IN_MILISECONDS) - bot.VALUES_TO_USE.timeRange.finalDatetime = new Date() - break - } - case 'Live Trading Session': { - bot.VALUES_TO_USE.timeRange.initialDatetime = new Date() - bot.VALUES_TO_USE.timeRange.finalDatetime = new Date((new Date()).valueOf() + ONE_YEAR_IN_MILISECONDS) - break - } - case 'Fordward Testing Session': { - bot.VALUES_TO_USE.timeRange.initialDatetime = new Date() - bot.VALUES_TO_USE.timeRange.finalDatetime = new Date((new Date()).valueOf() + ONE_YEAR_IN_MILISECONDS) - break - } - case 'Paper Trading Session': { - bot.VALUES_TO_USE.timeRange.initialDatetime = new Date() - bot.VALUES_TO_USE.timeRange.finalDatetime = new Date((new Date()).valueOf() + ONE_YEAR_IN_MILISECONDS) - break - } - } - - let tradingSystem = bot.TRADING_SYSTEM - - if (tradingSystem !== undefined) { - - /* Applying Session Level Parameters */ - if (bot.SESSION !== undefined) { - if (bot.SESSION.parameters !== undefined) { - - /* Base Asset and Initial Balances. */ - { - if (bot.SESSION.parameters.baseAsset !== undefined) { - if (bot.SESSION.parameters.baseAsset.referenceParent !== undefined) { - if (bot.SESSION.parameters.baseAsset.referenceParent.referenceParent !== undefined) { - - let code = bot.SESSION.parameters.baseAsset.referenceParent.referenceParent.code - - if (code.codeName !== undefined) { - bot.VALUES_TO_USE.baseAsset = code.codeName; - } - - code = bot.SESSION.parameters.baseAsset.code - - if (bot.VALUES_TO_USE.baseAsset === bot.market.baseAsset) { - if (code.initialBalance !== undefined) { - bot.VALUES_TO_USE.initialBalanceA = code.initialBalance; - bot.VALUES_TO_USE.initialBalanceB = 0 - } - if (code.minimumBalance !== undefined) { - bot.VALUES_TO_USE.minimumBalanceA = code.minimumBalance; - bot.VALUES_TO_USE.minimumBalanceB = 0 - } - if (code.maximumBalance !== undefined) { - bot.VALUES_TO_USE.maximumBalanceA = code.maximumBalance; - bot.VALUES_TO_USE.maximumBalanceB = 0 - } - } else { - if (code.initialBalance !== undefined) { - bot.VALUES_TO_USE.initialBalanceB = code.initialBalance; - bot.VALUES_TO_USE.initialBalanceA = 0 - } - if (code.minimumBalance !== undefined) { - bot.VALUES_TO_USE.minimumBalanceB = code.minimumBalance; - bot.VALUES_TO_USE.minimumBalanceA = 0 - } - if (code.maximumBalance !== undefined) { - bot.VALUES_TO_USE.maximumBalanceB = code.maximumBalance; - bot.VALUES_TO_USE.maximumBalanceA = 0 - } - } - - /* Solve when values are missing. */ - if (bot.VALUES_TO_USE.minimumBalanceA === undefined) { - bot.VALUES_TO_USE.minimumBalanceA = 0 - } - - if (bot.VALUES_TO_USE.minimumBalanceB === undefined) { - bot.VALUES_TO_USE.minimumBalanceB = 0 - } - - if (bot.VALUES_TO_USE.maximumBalanceA === undefined) { - bot.VALUES_TO_USE.maximumBalanceA = 10000000000000000 - } - - if (bot.VALUES_TO_USE.maximumBalanceB === undefined) { - bot.VALUES_TO_USE.maximumBalanceB = 10000000000000000 - } - } - } - } - } - - /* Quoted Asset. */ - { - if (bot.SESSION.parameters.quotedAsset !== undefined) { - if (bot.SESSION.parameters.quotedAsset.referenceParent !== undefined) { - if (bot.SESSION.parameters.quotedAsset.referenceParent.referenceParent !== undefined) { - - let code = bot.SESSION.parameters.quotedAsset.referenceParent.referenceParent.code - - if (code.codeName !== undefined) { - bot.VALUES_TO_USE.quotedAsset = code.codeName; - } - } - } - } - } - - /* Time Frame */ - if (bot.SESSION.parameters.timeFrame !== undefined) { - bot.VALUES_TO_USE.timeFrame = bot.SESSION.parameters.timeFrame.code.value - } - - /* Slippage */ - if (bot.SESSION.parameters.slippage !== undefined) { - if (bot.SESSION.parameters.slippage.code !== undefined) { - - let code = bot.SESSION.parameters.slippage.code - - if (code.positionRate !== undefined) { - bot.VALUES_TO_USE.slippage.positionRate = code.positionRate - } - if (code.stopLoss !== undefined) { - bot.VALUES_TO_USE.slippage.stopLoss = code.stopLoss - } - if (code.takeProfit !== undefined) { - bot.VALUES_TO_USE.slippage.takeProfit = code.takeProfit - } - } - } - - /* Fee Structure */ - if (bot.SESSION.parameters.feeStructure !== undefined) { - if (bot.SESSION.parameters.feeStructure.code !== undefined) { - - let code = bot.SESSION.parameters.feeStructure.code - - if (code.maker !== undefined) { - bot.VALUES_TO_USE.feeStructure.maker = code.maker - } - if (code.taker !== undefined) { - bot.VALUES_TO_USE.feeStructure.taker = code.taker - } - } - } - - /* Time Range */ - if (bot.SESSION.parameters.timeRange !== undefined) { - if (bot.SESSION.parameters.timeRange.code !== undefined) { - - let code = bot.SESSION.parameters.timeRange.code - if (code.initialDatetime !== undefined) { - if (isNaN(Date.parse(code.initialDatetime)) === true) { - parentLogger.write(MODULE_NAME, "[WARN] initialize -> runSession -> setValuesToUse -> Cannot use initialDatatime provided at Session Parameters because it is not a valid Date."); - } else { - bot.VALUES_TO_USE.timeRange.initialDatetime = new Date(code.initialDatetime) - } - } - if (code.finalDatetime !== undefined) { - if (isNaN(Date.parse(code.finalDatetime)) === true) { - parentLogger.write(MODULE_NAME, "[WARN] initialize -> runSession -> setValuesToUse -> Cannot use finalDatetime provided at Session Parameters because it is not a valid Date."); - } else { - bot.VALUES_TO_USE.timeRange.finalDatetime = new Date(code.finalDatetime) - } - } - } - } - } - } + if (global.STOP_TASK_GRACEFULLY === true) { + bot.STOP_SESSION = true + if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, '[IMPORTANT] sessionHeartBeat -> Stopping the Session now. ') } } } - function initializeSocialBots() { - - if (bot.SESSION.socialBots !== undefined) { - if (bot.SESSION.socialBots.bots !== undefined) { - for (let i = 0; i < bot.SESSION.socialBots.bots.length; i++) { - let socialBot = bot.SESSION.socialBots.bots[i] - if (socialBot.type === "Telegram Bot") { - let code = socialBot.code - socialBot.botInstance = initializeTelegramBot(code.botToken, code.chatId) - } - } + function sessionError(node, errorMessage) { + let event + if (node !== undefined) { + event = { + nodeName: node.name, + nodeType: node.type, + nodeId: node.id, + errorMessage: errorMessage } - - function announce(announcement) { - if (bot.SESSION.socialBots.bots !== undefined) { - for (let i = 0; i < bot.SESSION.socialBots.bots.length; i++) { - let socialBot = bot.SESSION.socialBots.bots[i] - try { - let code = announcement.code - - if (socialBot.type === "Telegram Bot") { - if (announcement.formulaValue !== undefined) { - socialBot.botInstance.telegramAPI.sendMessage(socialBot.botInstance.chatId, announcement.formulaValue).catch(err => parentLogger.write(MODULE_NAME, "[WARN] initialize -> initializeSocialBots -> announce -> Telegram API error -> err = " + err)) - } else { - socialBot.botInstance.telegramAPI.sendMessage(socialBot.botInstance.chatId, code.text).catch(err => parentLogger.write(MODULE_NAME, "[WARN] initialize -> initializeSocialBots -> announce -> Telegram API error -> err = " + err)) - } - } - - } catch (err) { - parentLogger.write(MODULE_NAME, "[WARN] initialize -> initializeSocialBots -> announce -> err = " + err.stack); - } - } - } + } else { + event = { + errorMessage: errorMessage } + } + global.EVENT_SERVER_CLIENT.raiseEvent(bot.sessionKey, 'Error', event) - bot.SESSION.socialBots.announce = announce + if (global.STOP_TASK_GRACEFULLY === true) { + bot.STOP_SESSION = true + if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, '[IMPORTANT] sessionError -> Stopping the Session now. ') } } } - function finalizeSocialBots() { - if (bot.SESSION.socialBots === undefined) { return } - if (bot.SESSION.socialBots.bots !== undefined) { - for (let i = 0; i < bot.SESSION.socialBots.bots.length; i++) { - let socialBot = bot.SESSION.socialBots.bots[i] - if (socialBot.type === "Telegram Bot") { - let code = socialBot.code - socialBot.botInstance = finalizeTelegramBot(code.chatId) - } + function sessionWarning(node, warningMessage) { + let event + if (node !== undefined) { + event = { + nodeName: node.name, + nodeType: node.type, + nodeId: node.id, + warningMessage: warningMessage } + } else { + event = { + warningMessage: warningMessage + } + } + global.EVENT_SERVER_CLIENT.raiseEvent(bot.sessionKey, 'Warning', event) + + if (global.STOP_TASK_GRACEFULLY === true) { + bot.STOP_SESSION = true + if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, '[IMPORTANT] sessionWarning -> Stopping the Session now. ') } } } - function initializeTelegramBot(botToken, chatId) { - /* Telegram Bot Initialization */ - try { - const Telegraf = require('telegraf') - let telegramBot - telegramBot = new Telegraf(botToken) - telegramBot.start((ctx) => ctx.reply('Hi! I am the Telegram Bot that will tell you what happens with your trading session.')) - telegramBot.help((ctx) => ctx.reply('I can stop the session if you say STOP.')) - telegramBot.hears('STOP', (ctx) => stopSession()) - telegramBot.launch() - - const Telegram = require('telegraf/telegram') - - telegramAPI = new Telegram(botToken) - - const messge = bot.SESSION.type + " '" + bot.SESSION.name + "' was started with an initial balance of " + " " + bot.VALUES_TO_USE.initialBalanceA + " " + bot.VALUES_TO_USE.baseAsset + "." - telegramAPI.sendMessage(chatId, messge).catch(err => parentLogger.write(MODULE_NAME, "[WARN] initialize -> initializeTelegramBot -> Telegram API error -> err = " + err)) - - let botInstance = { - telegramBot: telegramBot, - telegramAPI: telegramAPI, - chatId: chatId + function sessionInfo(node, infoMessage) { + let event + if (node !== undefined) { + event = { + nodeName: node.name, + nodeType: node.type, + nodeId: node.id, + infoMessage: infoMessage + } + } else { + event = { + infoMessage: infoMessage } - return botInstance - } catch (err) { - parentLogger.write(MODULE_NAME, "[WARN] initialize -> initializeTelegramBot -> err = " + err.stack); } + global.EVENT_SERVER_CLIENT.raiseEvent(bot.sessionKey, 'Info', event) - } - - function finalizeTelegramBot(chatId) { - const messge = bot.SESSION.type + " '" + bot.SESSION.name + "' was stopped." - telegramAPI.sendMessage(chatId, messge).catch(err => parentLogger.write(MODULE_NAME, "[WARN] initialize -> initializeTelegramBot -> Telegram API error -> err = " + err)) + if (global.STOP_TASK_GRACEFULLY === true) { + bot.STOP_SESSION = true + if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, '[IMPORTANT] sessionInfo -> Stopping the Session now. ') } + } } } catch (err) { diff --git a/TaskServer/SocialBots.js b/TaskServer/SocialBots.js new file mode 100644 index 000000000..9ae190727 --- /dev/null +++ b/TaskServer/SocialBots.js @@ -0,0 +1,71 @@ +exports.newSocialBots = function newSocialBots(bot, logger) { + + const MODULE_NAME = 'Social Bots' + + let thisObject = { + sendMessage: sendMessage, + initialize: initialize, + finalize: finalize + } + + const TELEGRAM_BOT_MODULE = require('./TelegramBot.js') + + return thisObject + + function initialize() { + if (bot.SESSION.socialBots !== undefined) { + if (bot.SESSION.socialBots.bots !== undefined) { + for (let i = 0; i < bot.SESSION.socialBots.bots.length; i++) { + let socialBot = bot.SESSION.socialBots.bots[i] + if (socialBot.type === "Telegram Bot") { + let config = socialBot.config + socialBot.botInstance = TELEGRAM_BOT_MODULE.newTelegramBot(bot, logger) + socialBot.botInstance.initialize(config.botToken, config.chatId) + } + } + } + + function announce(text) { + if (bot.SESSION.socialBots.bots !== undefined) { + for (let i = 0; i < bot.SESSION.socialBots.bots.length; i++) { + let socialBot = bot.SESSION.socialBots.bots[i] + try { + if (socialBot.type === "Telegram Bot") { + socialBot.botInstance.telegramAPI.sendMessage(socialBot.botInstance.chatId, text).catch(err => logger.write(MODULE_NAME, "[WARN] initialize -> initializeSocialBots -> announce -> Telegram API error -> err = " + err)) + } + } catch (err) { + logger.write(MODULE_NAME, "[WARN] initialize -> announce -> err = " + err.stack); + } + } + } + } + + bot.SESSION.socialBots.announce = announce + } + } + + function finalize() { + if (bot.SESSION.socialBots === undefined) { return } + if (bot.SESSION.socialBots.bots !== undefined) { + for (let i = 0; i < bot.SESSION.socialBots.bots.length; i++) { + let socialBot = bot.SESSION.socialBots.bots[i] + if (socialBot.type === "Telegram Bot") { + socialBot.botInstance.finalize() + } + } + } + } + + function sendMessage(message) { + if (bot.SESSION.socialBots !== undefined) { + if (bot.SESSION.socialBots.bots !== undefined) { + for (let i = 0; i < bot.SESSION.socialBots.bots.length; i++) { + let socialBot = bot.SESSION.socialBots.bots[i] + if (socialBot.type === "Telegram Bot") { + socialBot.botInstance.sendMessage(message) + } + } + } + } + } +} \ No newline at end of file diff --git a/TaskServer/StatusDependencies.js b/TaskServer/StatusDependencies.js index 48b5659a9..2b3615e32 100644 --- a/TaskServer/StatusDependencies.js +++ b/TaskServer/StatusDependencies.js @@ -4,7 +4,7 @@ const LOG_FILE_CONTENT = false; const MODULE_NAME = "Status Dependencies"; - let bot = BOT + let bot = BOT let thisObject = { nodeArray: undefined, @@ -18,11 +18,7 @@ return thisObject; function initialize(callBackFunction) { - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Entering function."); } - /* Basic Valdidations */ if (bot.processNode.referenceParent.processDependencies !== undefined) { if (bot.processNode.referenceParent.processDependencies.statusDependencies !== undefined) { @@ -47,7 +43,7 @@ let statusDependency = { dependency: thisObject.nodeArray[i] } - + dependenciesToProcess.push(statusDependency) } @@ -88,9 +84,6 @@ switch (err.message) { case global.DEFAULT_OK_RESPONSE.message: { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] initialize -> onLoad -> Execution finished well. -> Status Dependency = " + JSON.stringify(statusDependency.dependency)) } - addReport(); return; } @@ -124,7 +117,7 @@ } } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> onLoad -> err = "+ err.stack); + logger.write(MODULE_NAME, "[ERROR] initialize -> onLoad -> err = " + err.stack); callBackFunction(global.DEFAULT_FAIL_RESPONSE); } } @@ -137,14 +130,14 @@ loadCount++; logger.write(MODULE_NAME, "[INFO] initialize -> addReport -> Total Added = " + loadCount); - let key = statusDependency.dependency.dataMine + "-" + statusDependency.dependency.bot + "-" + statusDependency.dependency.process + "-" + statusDependency.dependency.dataSetVersion; + let key = statusDependency.dependency.dataMine + "-" + statusDependency.dependency.bot + "-" + statusDependency.dependency.process thisObject.keys.push(key); thisObject.statusReports.set(key, statusReportModule); if (statusReportModule.mainUtility !== undefined) { thisObject.reportsByMainUtility.set(statusReportModule.mainUtility, statusReportModule) - } + } if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] initialize -> addReport -> Report added to Map. -> key = " + key); } @@ -161,7 +154,7 @@ } } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> err = "+ err.stack); + logger.write(MODULE_NAME, "[ERROR] initialize -> err = " + err.stack); callBackFunction(global.DEFAULT_FAIL_RESPONSE); } } diff --git a/TaskServer/StatusReport.js b/TaskServer/StatusReport.js index 0ae6bc288..21089be6d 100644 --- a/TaskServer/StatusReport.js +++ b/TaskServer/StatusReport.js @@ -20,10 +20,11 @@ finalize: finalize, load: load, save: save, + asyncSave: asyncSave, status: undefined }; - let statusDependencyNode; + let statusDependencyNode; /* Utilities needed. */ @@ -32,83 +33,73 @@ /* Storage account to be used here. */ const FILE_STORAGE = require('./FileStorage.js'); - let fileStorage + let fileStorage let sessionPath = '' return thisObject; function initialize(pStatusDependencyNode, callBackFunction) { - try { - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Entering function."); } - statusDependencyNode = pStatusDependencyNode; logger.fileName = MODULE_NAME + "." + statusDependencyNode.type + "." + statusDependencyNode.name + "." + statusDependencyNode.id; /* Some very basic validations that we have all the information needed. */ if (statusDependencyNode.referenceParent === undefined) { - logger.write(MODULE_NAME, "[ERROR] initialize -> Status Dependency without Reference Parent. Status Dependency = " + JSON.stringify(statusDependencyNode)); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); + validationFailed(statusDependencyNode, "Status Dependency without Reference Parent.") return } if (statusDependencyNode.referenceParent.parentNode === undefined) { - logger.write(MODULE_NAME, "[ERROR] initialize -> Status Report not attached to a Process Definition. Status Report = " + JSON.stringify(statusDependencyNode.referenceParent)); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); + validationFailed(statusDependencyNode.referenceParent, "Status Report not attached to a Process Definition.") return } - if (statusDependencyNode.referenceParent.parentNode.code.codeName === undefined) { - logger.write(MODULE_NAME, "[ERROR] initialize -> Process Definition witn no codeName defined. Process Definition = " + JSON.stringify(statusDependencyNode.referenceParent.parentNode)); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); + if (statusDependencyNode.referenceParent.parentNode.config.codeName === undefined) { + validationFailed(statusDependencyNode.referenceParent.parentNode, "Process Definition witn no codeName defined.") return } if (statusDependencyNode.referenceParent.parentNode.parentNode === undefined) { - logger.write(MODULE_NAME, "[ERROR] initialize -> Process Definition not attached to a Bot. Process Definition = " + JSON.stringify(statusDependencyNode.referenceParent.parentNode)); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); + validationFailed(statusDependencyNode.referenceParent.parentNode, "Process Definition not attached to a Bot.") return } - if (statusDependencyNode.referenceParent.parentNode.parentNode.code.codeName === undefined) { - logger.write(MODULE_NAME, "[ERROR] initialize -> Bot witn no codeName defined. Bot = " + JSON.stringify(statusDependencyNode.referenceParent.parentNode.parentNode)); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); + if (statusDependencyNode.referenceParent.parentNode.parentNode.config.codeName === undefined) { + validationFailed(statusDependencyNode.referenceParent.parentNode.parentNode, "Bot with no codeName defined.") return } if (statusDependencyNode.referenceParent.parentNode.parentNode.parentNode === undefined) { - logger.write(MODULE_NAME, "[ERROR] initialize -> Bot not attached to a Data Mine. Bot = " + JSON.stringify(statusDependencyNode.referenceParent.parentNode.parentNode)); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); + validationFailed(statusDependencyNode.referenceParent.parentNode.parentNode, "Bot not attached to a Data Mine.") return } - if (statusDependencyNode.referenceParent.parentNode.parentNode.parentNode.code.codeName === undefined) { - logger.write(MODULE_NAME, "[ERROR] initialize -> Data Mine witn no codeName defined. Data Mine = " + JSON.stringify(statusDependencyNode.referenceParent.parentNode.parentNode.parentNode)); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); + if (statusDependencyNode.referenceParent.parentNode.parentNode.parentNode.config.codeName === undefined) { + validationFailed(statusDependencyNode.referenceParent.parentNode.parentNode.parentNode, "Data Mine witn no codeName defined.") return } + function validationFailed(errorInNode, errorMessage) { + let nodeString = JSON.stringify(errorInNode) + logger.write(MODULE_NAME, "[ERROR] initialize -> " + errorMessage + ' -> nodeString = ' + nodeString) + global.PROCESS_ERROR(bot.processKey, errorInNode, errorMessage) + callBackFunction(global.DEFAULT_FAIL_RESPONSE); + } + /* Simplifying the access to basic info */ - statusDependencyNode.bot = statusDependencyNode.referenceParent.parentNode.parentNode.code.codeName - statusDependencyNode.process = statusDependencyNode.referenceParent.parentNode.code.codeName + statusDependencyNode.bot = statusDependencyNode.referenceParent.parentNode.parentNode.config.codeName + statusDependencyNode.process = statusDependencyNode.referenceParent.parentNode.config.codeName statusDependencyNode.bottype = statusDependencyNode.referenceParent.parentNode.parentNode.type - statusDependencyNode.dataMine = statusDependencyNode.referenceParent.parentNode.parentNode.parentNode.code.codeName + statusDependencyNode.dataMine = statusDependencyNode.referenceParent.parentNode.parentNode.parentNode.config.codeName /* We retrieve the report main utility */ - if (statusDependencyNode.code !== undefined) { - if (statusDependencyNode.code.mainUtility !== undefined) { - thisObject.mainUtility = statusDependencyNode.code.mainUtility + if (statusDependencyNode.config !== undefined) { + if (statusDependencyNode.config.mainUtility !== undefined) { + thisObject.mainUtility = statusDependencyNode.config.mainUtility } } - /* This stuff is still hardcoded and unresolved. */ - statusDependencyNode.botVersion = { - "major": 1, - "minor": 0 - } - statusDependencyNode.dataSetVersion = "dataSet.V1" - if (bot.SESSION !== undefined && statusDependencyNode.bottype === "Trading Bot") { sessionPath = bot.SESSION.folderName + "/" } @@ -119,51 +110,98 @@ for (let i = 0; i < network.networkNodes.length; i++) { let networkNode = network.networkNodes[i] - - if (checkThisBranch(networkNode.dataMining) === true) { return } - if (checkThisBranch(networkNode.testingEnvironment) === true) {return} - if (checkThisBranch(networkNode.productionEnvironment) === true) { return } - function checkThisBranch(branch) { - if (branch === undefined) {return} - for (let j = 0; j < branch.exchangeTasks.length; j++) { - let exchangeTasks = branch.exchangeTasks[j] - for (let k = 0; k < exchangeTasks.taskManagers.length; k++) { - let taskManager = exchangeTasks.taskManagers[k] - for (let m = 0; m < taskManager.tasks.length; m++) { - let task = taskManager.tasks[m] - if (task.bot !== undefined) { - for (let n = 0; n < task.bot.processes.length; n++) { - let process = task.bot.processes[n] - if (process.marketReference !== undefined) { - if (process.marketReference.referenceParent !== undefined) { - let market = process.marketReference.referenceParent - let currentProcessMarket = bot.processNode.marketReference.referenceParent - if (currentProcessMarket.id === market.id) { - if (process.referenceParent !== undefined) { - let processDefinition = process.referenceParent - if (processThisDependsOn.id === processDefinition.id) { - if (process.type === 'Trading Process Instance') { - if (process.session !== undefined) { - if (bot.processNode.session.id !== process.session.id) { - continue - } - } else { - continue - } - } + if (checkThisDataBranch(networkNode.dataMining) === true) { return } + if (checkThisTradingBranch(networkNode.testingEnvironment) === true) { return } + if (checkThisTradingBranch(networkNode.productionEnvironment) === true) { return } - /* We found where the task that runs the process definition this status report depends on and where it is located on the network. */ - - thisObject.networkNode = networkNode - if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Retrieving status report from " + networkNode.name + " -> host = " + networkNode.code.host + ' -> port = ' + networkNode.code.webPort + '.'); } - - fileStorage = FILE_STORAGE.newFileStorage(logger, networkNode.code.host, networkNode.code.webPort); - callBackFunction(global.DEFAULT_OK_RESPONSE); - return true + function checkThisDataBranch(branch) { + if (branch === undefined) { return } + for (let j = 0; j < branch.exchangeDataTasks.length; j++) { + let exchangeTasks = branch.exchangeDataTasks[j] + for (let p = 0; p < exchangeTasks.marketDataTasks.length; p++) { + let marketTasks = exchangeTasks.marketDataTasks[p] + if (marketTasks.referenceParent === undefined) { continue } + if (marketTasks.referenceParent.id !== global.MARKET_NODE.id) { continue } + for (let q = 0; q < marketTasks.dataMineTasks.length; q++) { + let mineTasks = marketTasks.dataMineTasks[q] + for (let k = 0; k < mineTasks.taskManagers.length; k++) { + let taskManager = mineTasks.taskManagers[k] + for (let m = 0; m < taskManager.tasks.length; m++) { + let task = taskManager.tasks[m] + if (task.bot === undefined) { continue } + for (let n = 0; n < task.bot.processes.length; n++) { + let process = task.bot.processes[n] + if (process.referenceParent === undefined) { continue } + let processDefinition = process.referenceParent + if (processThisDependsOn.id === processDefinition.id) { + if (process.type === 'Trading Process Instance') { + if (process.session !== undefined) { + if (bot.processNode.session.id !== process.session.id) { + continue } + } else { + continue } } + /* + We found where the task that runs the process definition this status report depends on + and where it is located on the network. + */ + thisObject.networkNode = networkNode + if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Retrieving status report from " + networkNode.name + " -> host = " + networkNode.config.host + ' -> port = ' + networkNode.config.webPort + '.'); } + + fileStorage = FILE_STORAGE.newFileStorage(logger, networkNode.config.host, networkNode.config.webPort); + callBackFunction(global.DEFAULT_OK_RESPONSE); + return true + } + } + } + } + } + } + } + } + + function checkThisTradingBranch(branch) { + if (branch === undefined) { return } + for (let j = 0; j < branch.exchangeTradingTasks.length; j++) { + let exchangeTasks = branch.exchangeTradingTasks[j] + for (let p = 0; p < exchangeTasks.marketTradingTasks.length; p++) { + let marketTasks = exchangeTasks.marketTradingTasks[p] + if (marketTasks.referenceParent === undefined) { continue } + if (marketTasks.referenceParent.id !== global.MARKET_NODE.id) { continue } + for (let q = 0; q < marketTasks.tradingMineTasks.length; q++) { + let mineTasks = marketTasks.tradingMineTasks[q] + for (let k = 0; k < mineTasks.taskManagers.length; k++) { + let taskManager = mineTasks.taskManagers[k] + for (let m = 0; m < taskManager.tasks.length; m++) { + let task = taskManager.tasks[m] + if (task.bot === undefined) { continue } + for (let n = 0; n < task.bot.processes.length; n++) { + let process = task.bot.processes[n] + if (process.referenceParent === undefined) { continue } + let processDefinition = process.referenceParent + if (processThisDependsOn.id === processDefinition.id) { + if (process.type === 'Trading Process Instance') { + if (process.session !== undefined) { + if (bot.processNode.session.id !== process.session.id) { + continue + } + } else { + continue + } + } + /* + We found where the task that runs the process definition this status report depends on + and where it is located on the network. + */ + thisObject.networkNode = networkNode + if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Retrieving status report from " + networkNode.name + " -> host = " + networkNode.config.host + ' -> port = ' + networkNode.config.webPort + '.'); } + + fileStorage = FILE_STORAGE.newFileStorage(logger, networkNode.config.host, networkNode.config.webPort); + callBackFunction(global.DEFAULT_OK_RESPONSE); + return true } } } @@ -183,7 +221,7 @@ callBackFunction(global.DEFAULT_FAIL_RESPONSE); } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> err = "+ err.stack); + logger.write(MODULE_NAME, "[ERROR] initialize -> err = " + err.stack); callBackFunction(global.DEFAULT_FAIL_RESPONSE); } } @@ -204,16 +242,16 @@ let fileName = "Status.Report.json"; let filePath; - let ownerId = statusDependencyNode.dataMine + "-" + statusDependencyNode.bot + "-" + statusDependencyNode.botVersion.major + "-" + statusDependencyNode.botVersion.minor + "-" + statusDependencyNode.process + "-" + statusDependencyNode.dataSetVersion; - let botId = bot.dataMine + "-" + bot.codeName + "-" + bot.version.major + "-" + bot.version.minor + "-" + bot.process + "-" + bot.dataSetVersion; + let ownerId = statusDependencyNode.dataMine + "-" + statusDependencyNode.bot + "-" + statusDependencyNode.process + let botId = bot.dataMine + "-" + bot.codeName + "-" + bot.process if (ownerId !== botId) { let rootPath = bot.exchange + "/" + bot.market.baseAsset + "-" + bot.market.quotedAsset + "/" + statusDependencyNode.dataMine + "/" + statusDependencyNode.bot - filePath = rootPath + "/Reports/" + sessionPath + statusDependencyNode.process ; + filePath = rootPath + "/Reports/" + sessionPath + statusDependencyNode.process; } else { - filePath = bot.filePathRoot + "/Reports/" + sessionPath + statusDependencyNode.process ; + filePath = bot.filePathRoot + "/Reports/" + sessionPath + statusDependencyNode.process; } filePath += '/' + fileName @@ -236,10 +274,10 @@ function onFileReceived(err, text) { - if ( err.result === global.CUSTOM_FAIL_RESPONSE.result && (err.message === 'Folder does not exist.' || err.message === 'File does not exist.') + if (err.result === global.CUSTOM_FAIL_RESPONSE.result && (err.message === 'Folder does not exist.' || err.message === 'File does not exist.') || err.code === "The specified key does not exist.") { - logger.write(MODULE_NAME, "[INFO] load -> onFileReceived -> err = "+ err.stack); + logger.write(MODULE_NAME, "[INFO] load -> onFileReceived -> err = " + err.message); /* In this case we can assume that this is the first execution ever of this bot.*/ @@ -255,7 +293,7 @@ } if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[ERROR] load -> onFileReceived -> err = "+ err.stack); + logger.write(MODULE_NAME, "[ERROR] load -> onFileReceived -> err = " + err.message); callBackFunction(err); return; } @@ -290,7 +328,7 @@ } } catch (err) { - logger.write(MODULE_NAME, "[ERROR] load -> err = "+ err.stack); + logger.write(MODULE_NAME, "[ERROR] load -> err = " + err.stack); callBackFunction(global.DEFAULT_FAIL_RESPONSE); } } @@ -301,8 +339,8 @@ if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] save -> Entering function."); } - let ownerId = statusDependencyNode.dataMine + "-" + statusDependencyNode.bot + "-" + statusDependencyNode.botVersion.major + "-" + statusDependencyNode.botVersion.minor + "-" + statusDependencyNode.process + "-" + statusDependencyNode.dataSetVersion; - let botId = bot.dataMine + "-" + bot.codeName + "-" + bot.version.major + "-" + bot.version.minor + "-" + bot.process + "-" + bot.dataSetVersion; + let ownerId = statusDependencyNode.dataMine + "-" + statusDependencyNode.bot + "-" + statusDependencyNode.process + let botId = bot.dataMine + "-" + bot.codeName + "-" + bot.process if (ownerId !== botId && statusDependencyNode.process !== "Context") { // Context is a special case where the report is created by the Context.js module itself. @@ -328,7 +366,7 @@ if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] save -> onFileCreated -> Entering function."); } if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[ERROR] save -> onFileCreated -> err = "+ err.stack); + logger.write(MODULE_NAME, "[ERROR] save -> onFileCreated -> err = " + err.stack); callBackFunction(err); return; } @@ -341,16 +379,34 @@ let processOutput = PROCESS_OUTPUT.newProcessOutput(bot, logger) - processOutput.raiseEvents(thisObject.file.lastFile, callBackFunction); + processOutput.raiseEvents(thisObject.file.lastFile, thisObject.file.timeFrames, callBackFunction); return; } } catch (err) { - logger.write(MODULE_NAME, "[ERROR] save -> err = "+ err.stack); + logger.write(MODULE_NAME, "[ERROR] save -> err = " + err.stack); callBackFunction(global.DEFAULT_FAIL_RESPONSE); } } -}; + async function asyncSave() { + + let fileName = "Status.Report.json"; + let filePath = bot.filePathRoot + "/Reports/" + sessionPath + statusDependencyNode.process; + + filePath += '/' + fileName + let fileContent = JSON.stringify(thisObject.file); + + let response = await fileStorage.asyncCreateTextFile(filePath, fileContent + '\n', true) + + if (response.err.result !== global.DEFAULT_OK_RESPONSE.result) { + throw (response.err) + } + + /* All good, lets emit the event that means data has been updated. */ + let processOutput = PROCESS_OUTPUT.newProcessOutput(bot, logger) + processOutput.asyncRaiseEvents(thisObject.file.lastFile, thisObject.file.timeFrames) + } +} diff --git a/TaskServer/TelegramBot.js b/TaskServer/TelegramBot.js new file mode 100644 index 000000000..9e2383ed1 --- /dev/null +++ b/TaskServer/TelegramBot.js @@ -0,0 +1,51 @@ +exports.newTelegramBot = function newTelegramBot(bot, logger) { + + const MODULE_NAME = 'Telegram Bot' + + let thisObject = { + telegramBot: undefined, + telegramAPI: undefined, + chatId: undefined, + sendMessage: sendMessage, + initialize: initialize, + finalize: finalize + } + + return thisObject + + function initialize(botToken, chatId) { + /* Telegram Bot Initialization */ + try { + thisObject.chatId = chatId + + const Telegraf = require('telegraf') + + thisObject.telegramBot = new Telegraf(botToken) + thisObject.telegramBot.start((ctx) => ctx.reply('Hi! I am the Telegram Bot that will tell you what happens with your trading session.')) + thisObject.telegramBot.help((ctx) => ctx.reply('I can stop the session if you type STOP.')) + thisObject.telegramBot.hears('STOP', (ctx) => bot.SESSION.stop(' by STOP command at Telegram.')) + thisObject.telegramBot.launch() + + const Telegram = require('telegraf/telegram') + + thisObject.telegramAPI = new Telegram(botToken) + + const message = "Telegram bot is starting." + thisObject.telegramAPI.sendMessage(thisObject.chatId, message).catch(err => parentLogger.write(MODULE_NAME, "[WARN] initializeTelegramBot -> Telegram API error -> err = " + err)) + + } catch (err) { + parentLogger.write(MODULE_NAME, "[WARN] initialize -> err = " + err.stack); + } + + } + + function finalize() { + const message = "Telegram bot is signing off." + thisObject.telegramAPI.sendMessage(thisObject.chatId, message).catch(err => parentLogger.write(MODULE_NAME, "[WARN] finalize -> Telegram API error -> err = " + err)) + } + + function sendMessage(message) { + thisObject.telegramAPI.sendMessage(thisObject.chatId, message).catch(err => parentLogger.write(MODULE_NAME, "[WARN] announce -> Telegram API error -> err = " + err)) + } + +} \ No newline at end of file diff --git a/TaskServer/TradingBot.js b/TaskServer/TradingBot.js index f9e713080..9d4d48ee7 100644 --- a/TaskServer/TradingBot.js +++ b/TaskServer/TradingBot.js @@ -1,1041 +1,686 @@ -exports.newTradingBot = function newTradingBot(bot, logger, UTILITIES, FILE_STORAGE) { - - const FULL_LOG = true; - const LOG_FILE_CONTENT = false; - const ONE_DAY_IN_MILISECONDS = 24 * 60 * 60 * 1000; +exports.newTradingBot = function newTradingBot(bot, parentLogger) { const MODULE_NAME = "Trading Bot"; + const FULL_LOG = true; + + const TRADING_PROCESS_MODULE = require(global.ROOT_DIR + '/LowFrequencyTrading/TradingProcess.js'); + const FILE_STORAGE = require('./FileStorage.js'); + const SESSION = require(global.ROOT_DIR + 'Session'); + + let fileStorage = FILE_STORAGE.newFileStorage(parentLogger); + let session = SESSION.newSession(bot, parentLogger) + + const DEBUG_MODULE = require(global.ROOT_DIR + 'DebugLog'); + let logger; // We need this here in order for the loopHealth function to work and be able to rescue the loop when it gets in trouble. + + let nextLoopTimeoutHandle; let thisObject = { initialize: initialize, - finalize: finalize, - start: start + run: run }; - let utilities = UTILITIES.newCloudUtilities(logger); - let fileStorage = FILE_STORAGE.newFileStorage(logger); - - const COMMONS = require('./Commons.js'); - let commons = COMMONS.newCommons(bot, logger, UTILITIES, FILE_STORAGE); - - let exchangeAPI; + let processConfig; return thisObject; - function finalize() { - thisObject = undefined - utilities = undefined - fileStorage = undefined - commons = undefined - } - - function initialize(pExchangeAPI, callBackFunction) { - + function initialize(pProcessConfig, callBackFunction) { + /* This function is exactly the same in the 3 modules representing the 2 different bot types loops. */ try { - - logger.fileName = MODULE_NAME; - logger.initialize(); - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] initialize -> Entering function."); } - - exchangeAPI = pExchangeAPI; - callBackFunction(global.DEFAULT_OK_RESPONSE); + processConfig = pProcessConfig; + if (bot.definedByUI === true) { + /* The code of the bot is defined at the UI. No need to load a file with the code. */ + session.initialize(processConfig, callBackFunction) + } } catch (err) { - logger.write(MODULE_NAME, "[ERROR] initialize -> err = " + err.stack); + parentLogger.write(MODULE_NAME, "[ERROR] initialize -> err = " + err.stack); callBackFunction(global.DEFAULT_FAIL_RESPONSE); } } - function start(multiPeriodDataFiles, timeFrame, timeFrameLabel, currentDay, interExecutionMemory, callBackFunction) { - + function run(callBackFunction) { try { + /* Some initial values*/ + let fixedTimeLoopIntervalHandle; + bot.STOP_SESSION = true; + if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, '[IMPORTANT] run -> Stopping the Session now. ') } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> Entering function."); } + /* Heartbeats sent to the UI */ + bot.processHeartBeat = processHeartBeat - let chart = {} - let mainDependency = {} + loop(); - /* The first phase here is about checking that we have everything we need at the definition level. */ - let dataDependencies = bot.processNode.referenceParent.processDependencies.dataDependencies - if (commons.validateDataDependencies(dataDependencies, callBackFunction) !== true) {return} + function loop() { + try { + processHeartBeat(undefined, undefined, "Running...") + function pad(str, max) { + str = str.toString(); + return str.length < max ? pad(" " + str, max) : str; + } - let outputDatasets = bot.processNode.referenceParent.processOutput.outputDatasets - if (commons.validateOutputDatasets(outputDatasets, callBackFunction) !== true) { return } + /* For each loop we want to create a new log file. */ + if (logger !== undefined) { + logger.finalize() + } + logger = DEBUG_MODULE.newDebugLog(); + global.LOGGER_MAP.set(MODULE_NAME, logger) + logger.bot = bot; + logger.initialize(); - /* The second phase is about transforming the inputs into a format that can be used to apply the user defined code. */ - for (let j = 0; j < global.marketFilesPeriods.length; j++) { + bot.loopCounter++; + bot.loopStartTime = new Date().valueOf(); - let timeFrameLabel = marketFilesPeriods[j][1] - let dataFiles = multiPeriodDataFiles.get(timeFrameLabel) - let products = {} + let nextWaitTime; - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> Inflating Data Files for timeFrame = " + timeFrameLabel); } + /* We tell the UI that we are running. */ + processHeartBeat(undefined, undefined, "Running...") - if (dataFiles !== undefined) { - commons.inflateDatafiles(dataFiles, dataDependencies, products, mainDependency, timeFrame) + /* We define here all the modules that the rest of the infraestructure, including the bots themselves can consume. */ + const UTILITIES = require(global.ROOT_DIR + 'CloudUtilities'); + const STATUS_REPORT = require(global.ROOT_DIR + 'StatusReport'); + const STATUS_DEPENDENCIES = require(global.ROOT_DIR + 'StatusDependencies'); + const DATA_DEPENDENCIES = require(global.ROOT_DIR + 'DataDependencies'); + const DATA_SET = require(global.ROOT_DIR + 'DataSet'); + const PROCESS_EXECUTION_EVENTS = require(global.ROOT_DIR + 'ProcessExecutionEvents'); + const PROCESS_OUTPUT = require(global.ROOT_DIR + 'ProcessOutput'); - let propertyName = 'at' + timeFrameLabel.replace('-', ''); - chart[propertyName] = products + /* We define the datetime for the process that we are running now. This will be the official processing time for both the infraestructure and the bot. */ + bot.processDatetime = new Date(); // This will be considered the process date and time, so as to have it consistenly all over the execution. + + /* High level log entry */ + console.log(new Date().toISOString() + " " + pad(bot.exchange, 20) + " " + pad(bot.market.baseAsset + '/' + bot.market.quotedAsset, 10) + " " + pad(bot.codeName, 30) + " " + pad(bot.process, 30) + + " Main Loop # " + pad(Number(bot.loopCounter), 8) + " " + bot.processNode.session.type + " " + bot.processNode.session.name) + + /* Checking if we need to need to emit any event */ + if (bot.SESSION_STATUS === 'Idle' && bot.STOP_SESSION === false) { + bot.SESSION_STATUS = 'Running' + } + + if (bot.SESSION_STATUS === 'Running' && bot.STOP_SESSION === true) { + bot.SESSION_STATUS = 'Stopped' + } + + global.EMIT_SESSION_STATUS (bot.SESSION_STATUS, bot.sessionKey) + + /* Checking if we should process this loop or not.*/ + if (bot.STOP_SESSION === true) { + + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> Waiting for " + bot.processNode.session.type + " " + bot.processNode.session.name + " to be ran."); } + + console.log(new Date().toISOString() + " " + pad(bot.codeName, 20) + " " + pad(bot.process, 30) + + " Waiting for " + bot.processNode.session.type + " " + bot.processNode.session.name + " to be ran. "); + + nextWaitTime = 'Waiting for Session'; + loopControl(nextWaitTime); + return + } + + /* We will prepare first the infraestructure needed for the bot to run. There are 3 modules we need to sucessfullly initialize first. */ + + let processExecutionEvents + let userBot; + let processFramework; + let statusDependencies; + let dataDependencies; + + initializeProcessExecutionEvents(); + + function initializeProcessExecutionEvents() { + try { + processExecutionEvents = PROCESS_EXECUTION_EVENTS.newProcessExecutionEvents(bot, logger) + processExecutionEvents.initialize(processConfig, onInizialized); + + function onInizialized(err) { + try { + switch (err.result) { + case global.DEFAULT_OK_RESPONSE.result: { + logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Execution finished well."); + startProcessExecutionEvents() + return; + } + case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. + logger.write(MODULE_NAME, "[WARN] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Retry Later. Requesting Execution Retry."); + nextWaitTime = 'Retry'; + loopControl(nextWaitTime); + return; + } + case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Operation Failed. Aborting the process."); + global.unexpectedError = err.message + processStopped() + return + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Unhandled err.result received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + + function startProcessExecutionEvents() { + try { + processExecutionEvents.start(onStarted); + + function onStarted(err) { + try { + switch (err.result) { + case global.DEFAULT_OK_RESPONSE.result: { + logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessExecutionEvents -> onStarted -> Execution finished well."); + + if (global.STOP_TASK_GRACEFULLY === true) { + loopControl() + return + } + + initializeStatusDependencies(); + return; + } + case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. + logger.write(MODULE_NAME, "[WARN] run -> loop -> startProcessExecutionEvents -> onStarted -> Retry Later. Requesting Execution Retry."); + nextWaitTime = 'Retry'; + loopControl(nextWaitTime); + return; + } + case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> Operation Failed. Aborting the process."); + global.unexpectedError = err.message + processStopped() + return + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> Unhandled err.result received. -> err.result = " + err.result); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> Unhandled err.result received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + + function initializeStatusDependencies() { + try { + statusDependencies = STATUS_DEPENDENCIES.newStatusDependencies(bot, logger, STATUS_REPORT, UTILITIES, PROCESS_OUTPUT); + statusDependencies.initialize(onInizialized); + + function onInizialized(err) { + try { + switch (err.result) { + case global.DEFAULT_OK_RESPONSE.result: { + logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeStatusDependencies -> onInizialized -> Execution finished well."); + initializeDataDependencies(); + return; + } + case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. + logger.write(MODULE_NAME, "[WARN] run -> loop -> initializeStatusDependencies -> onInizialized -> Retry Later. Requesting Execution Retry."); + nextWaitTime = 'Retry'; + loopControl(nextWaitTime); + return; + } + case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> Operation Failed. Aborting the process."); + global.unexpectedError = err.message + processStopped() + return + return; + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> Unhandled err.result received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + + function initializeDataDependencies() { + try { + dataDependencies = DATA_DEPENDENCIES.newDataDependencies(bot, logger, DATA_SET); + dataDependencies.initialize(onInizialized); + + function onInizialized(err) { + try { + switch (err.result) { + case global.DEFAULT_OK_RESPONSE.result: { + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeDataDependencies -> onInizialized -> Execution finished well."); } + switch (processConfig.framework.name) { + case 'Low-Frequency-Trading-Process': { + processFramework = TRADING_PROCESS_MODULE.newTradingProcess(bot, logger, UTILITIES); + intitializeProcessFramework(); + break; + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> Process Framework not Supported."); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> Process Framework Name = " + processConfig.framework.name); + global.unexpectedError = err.message + processStopped() + return + } + } + return; + } + case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. + logger.write(MODULE_NAME, "[WARN] run -> loop -> initializeDataDependencies -> onInizialized -> Retry Later. Requesting Execution Retry."); + nextWaitTime = 'Retry'; + loopControl(nextWaitTime); + return; + } + case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> Operation Failed. Aborting the process."); + global.unexpectedError = err.message + processStopped() + return + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> Unhandled err.result received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + + function intitializeProcessFramework() { + try { + processFramework.initialize(processConfig, statusDependencies, dataDependencies, onInizialized); + + function onInizialized(err) { + try { + switch (err.result) { + case global.DEFAULT_OK_RESPONSE.result: { + logger.write(MODULE_NAME, "[INFO] run -> loop -> intitializeProcessFramework -> onInizialized -> Execution finished well."); + startProcessFramework(); + return; + } + case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. + logger.write(MODULE_NAME, "[WARN] run -> loop -> intitializeProcessFramework -> onInizialized -> Retry Later. Requesting Execution Retry."); + nextWaitTime = 'Retry'; + loopControl(nextWaitTime); + return; + } + case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. + logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized -> Operation Failed. Aborting the process."); + global.unexpectedError = err.message + processStopped() + return + } + case global.CUSTOM_OK_RESPONSE.result: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized > Unhandled custom response received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized -> Unhandled err.result received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + + function startProcessFramework() { + try { + processFramework.start(onFinished); + + function onFinished(err) { + try { + processFramework.finalize() + processFramework = undefined + dataDependencies.finalize() + dataDependencies = undefined + statusDependencies.finalize() + statusDependencies = undefined + + switch (err.result) { + case global.DEFAULT_OK_RESPONSE.result: { + logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessFramework -> onFinished -> Execution finished well."); + nextWaitTime = 'Normal'; + finishProcessExecutionEvents() + return; + } + case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. + logger.write(MODULE_NAME, "[WARN] run -> loop -> startProcessFramework -> onFinished -> Retry Later. Requesting Execution Retry."); + nextWaitTime = 'Retry'; + loopControl(nextWaitTime); + return; + } + case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> Operation Failed. Aborting the process."); + global.unexpectedError = err.message + processStopped() + return + } + case global.CUSTOM_OK_RESPONSE.result: { + + switch (err.message) { + case "Dependency does not exist.": { + logger.write(MODULE_NAME, "[WARN] run -> loop -> startProcessFramework -> onFinished -> Dependency does not exist. This Loop will go to sleep."); + nextWaitTime = 'Sleep'; + loopControl(nextWaitTime); + return; + } + case "Dependency not ready.": { + logger.write(MODULE_NAME, "[WARN] run -> loop -> startProcessFramework -> onFinished -> Dependency not ready. This Loop will go to sleep."); + nextWaitTime = 'Sleep'; + loopControl(nextWaitTime); + return; + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> Unhandled custom response received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> Unhandled err.result received. -> err.result = " + err.result); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> Unhandled err.result received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + + function finishProcessExecutionEvents() { + try { + processExecutionEvents.finish(onFinished); + + function onFinished(err) { + try { + processExecutionEvents.finalize() + processExecutionEvents = undefined + + switch (err.result) { + case global.DEFAULT_OK_RESPONSE.result: { + logger.write(MODULE_NAME, "[INFO] run -> loop -> finishProcessExecutionEvents -> onFinished -> Execution finished well."); + nextWaitTime = 'Normal'; + loopControl(nextWaitTime); + return; + } + case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. + logger.write(MODULE_NAME, "[WARN] run -> loop -> finishProcessExecutionEvents -> onFinished -> Retry Later. Requesting Execution Retry."); + nextWaitTime = 'Retry'; + loopControl(nextWaitTime); + return; + } + case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. + logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> Operation Failed. Aborting the process."); + global.unexpectedError = err.message + processStopped() + return + } + default: { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> Unhandled err.result received. -> err.result = " + err.result); + logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> Unhandled err.result received. -> err = " + err.message); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + + function loopControl(nextWaitTime) { + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> nextWaitTime = " + nextWaitTime); } + + /* We show we reached the end of the loop. */ + processHeartBeat(undefined, undefined, "Running...") + + /* Here we check if we must stop the loop gracefully. */ + shallWeStop(onStop, onContinue); + + function onStop() { + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> onStop -> Stopping the Loop Gracefully. See you next time!"); } + + if (global.WRITE_LOGS_TO_FILES === 'true') { + logger.persist(); + } + + global.EVENT_SERVER_CLIENT.raiseEvent(bot.sessionKey, 'Stopped') + processStopped() + return; + } + + function onContinue() { + /* Indicator bots are going to be executed after a configured period of time after the last execution ended. This is to avoid overlapping executions. */ + switch (nextWaitTime) { + case 'Waiting for Session': { + let waitTime = processConfig.sessionRunWaitTime + nextLoopTimeoutHandle = setTimeout(loop, waitTime); + let waitingTime = waitTime / 1000 / 60 + let label = 'minute/s' + if (waitingTime < 1) { + waitingTime = waitTime / 1000 + label = 'seconds' + } + processHeartBeat(undefined, undefined, "Waiting " + waitingTime + " " + label + " for " + bot.processNode.session.type + " " + bot.processNode.session.name + " to be ran. ") + logger.persist(); + } + break + case 'Normal': { + let waitTime + if (processConfig.waitsForExecutionFinishedEvent === true) { + waitTime = 0 + } else { + switch (bot.SESSION.type) { + case 'Live Trading Session': { + waitTime = bot.SESSION.parameters.timeFrame.config.value + break + } + case 'Fordward Tessting Session': { + waitTime = bot.SESSION.parameters.timeFrame.config.value + break + } + case 'Paper Trading Session': { + waitTime = bot.SESSION.parameters.timeFrame.config.value + break + } + case 'Backtesting Session': { + waitTime = 0 + break + } + } + } + + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (waitTime / 1000 / 60) + " minute/s."); } + nextLoopTimeoutHandle = setTimeout(loop, waitTime); + let waitingTime = waitTime / 1000 / 60 + let label = 'minute/s' + if (waitingTime < 1) { + waitingTime = waitTime / 1000 + label = 'seconds' + } + processHeartBeat(undefined, undefined, "Waiting " + waitingTime + " " + label + " for next execution.") + logger.persist(); + } + break; + case 'Retry': { + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (processConfig.retryWaitTime / 1000) + " seconds."); } + nextLoopTimeoutHandle = setTimeout(loop, processConfig.retryWaitTime); + processHeartBeat(undefined, undefined, "Trying to recover from some problem. Waiting " + processConfig.retryWaitTime / 1000 + " seconds for next execution.") + logger.persist(); + } + break; + case 'Sleep': { + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (processConfig.sleepWaitTime / 60000) + " minutes."); } + nextLoopTimeoutHandle = setTimeout(loop, processConfig.sleepWaitTime); + processHeartBeat(undefined, undefined, "Waiting " + processConfig.sleepWaitTime / 60000 + " minutes for next execution.") + logger.persist(); + } + break; + case 'Coma': { + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (processConfig.comaWaitTime / 3600000) + " hours."); } + nextLoopTimeoutHandle = setTimeout(loop, processConfig.comaWaitTime); + processHeartBeat(undefined, undefined, "Waiting " + processConfig.comaWaitTime / 3600000 + " hours for next execution.") + logger.persist(); + } + break; + } + } + } + + function shallWeStop(stopCallBack, continueCallBack) { + try { + /* IMPORTANT: This function is exactly the same on the 3 modules. */ + if (!global.STOP_TASK_GRACEFULLY) { + continueCallBack(); + } else { + stopCallBack(); + } + } catch (err) { + logger.write(MODULE_NAME, "[ERROR] run -> loop -> shallWeStop -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return + } + } + + } catch (err) { + parentLogger.write(MODULE_NAME, "[ERROR] run -> loop -> err = " + err.stack); + global.unexpectedError = err.message + processStopped() + return } } - for (let j = 0; j < global.dailyFilePeriods.length; j++) { - - let timeFrameLabel = global.dailyFilePeriods[j][1] - let dataFiles = multiPeriodDataFiles.get(timeFrameLabel) - let products = {} - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> Inflating Data Files for timeFrame = " + timeFrameLabel); } - - if (dataFiles !== undefined) { - commons.inflateDatafiles(dataFiles, dataDependencies, products, mainDependency, timeFrame) - - let propertyName = 'at' + timeFrameLabel.replace('-', ''); - chart[propertyName] = products + function processHeartBeat(processingDate, percentage, status) { + let event = { + seconds: (new Date()).getSeconds(), + processingDate: processingDate, + percentage: percentage, + status: status } + global.EVENT_SERVER_CLIENT.raiseEvent(bot.processKey, 'Heartbeat', event) } - /* Single Files */ - - let dataFiles = multiPeriodDataFiles.get('Single Files') - let products = {} - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> Inflating Data Files from Single Files."); } - - if (dataFiles !== undefined) { - commons.inflateDatafiles(dataFiles, dataDependencies, products, mainDependency, timeFrame) - - let propertyName = 'atAnyTimeFrame'; - chart[propertyName] = products - } - - /* Simulation */ - - const TRADING_SIMULATION = require('./TradingSimulation.js'); - let tradingSimulation = TRADING_SIMULATION.newTradingSimulation(bot, logger, UTILITIES); - - let market = bot.market; - - const SIMULATED_RECORDS_FOLDER_NAME = "Trading-Simulation"; - const CONDITIONS_FOLDER_NAME = "Simulation-Conditions"; - const STRATEGIES_FOLDER_NAME = "Simulation-Strategies"; - const TRADES_FOLDER_NAME = "Simulation-Trades"; - const SNAPSHOTS_FOLDER_NAME = "Snapshots"; - - const ONE_DAY_IN_MILISECONDS = 24 * 60 * 60 * 1000; - - let recordsArray - let conditionsArray - let strategiesArray - let tradesArray - - let snapshotHeaders - let triggerOnSnapshot - let takePositionSnapshot - - let tradingSystem = {}; - - tradingSimulation.runSimulation( - chart, - dataDependencies, - timeFrame, - timeFrameLabel, - currentDay, - interExecutionMemory, - exchangeAPI, - writeFiles, - callBackFunction) - - function writeFiles(pTradingSystem, pRecordsArray, pConditionsArray, pStrategiesArray, pTradesArray, pSnapshotHeaders, pTriggerOnSnapshot, pTakePositionSnapshot) { - - tradingSystem = pTradingSystem - recordsArray = pRecordsArray - conditionsArray = pConditionsArray - strategiesArray = pStrategiesArray - tradesArray = pTradesArray - - snapshotHeaders = pSnapshotHeaders - triggerOnSnapshot = pTriggerOnSnapshot - takePositionSnapshot = pTakePositionSnapshot - - if (timeFrame > global.dailyFilePeriods[0][0]) { - writeMarketFiles() + function processStopped() { + if (global.unexpectedError !== undefined) { + global.PROCESS_ERROR(bot.processKey, undefined, "An unexpected error caused the Process to stop.") } else { - writeDailyFiles() + global.EVENT_SERVER_CLIENT.raiseEvent(bot.processKey, 'Stopped') } - - } - - function writeMarketFiles() { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDailyFiles -> Entering function."); } - - writeRecordsFile(); - - function writeRecordsFile() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeMarketFiles -> writeRecordsFile -> Entering function."); } - - let separator = ""; - let fileRecordCounter = 0; - - let fileContent = ""; - - for (let i = 0; i < recordsArray.length; i++) { - - let record = recordsArray[i]; - - fileContent = fileContent + separator + '[' + - record.begin + "," + - record.end + "," + - record.type + "," + - record.marketRate + "," + - record.amount + "," + - record.balanceA + "," + - record.balanceB + "," + - record.profit + "," + - record.lastTradeProfitLoss + "," + - record.stopLoss + "," + - record.roundtrips + "," + - record.hits + "," + - record.fails + "," + - record.hitRatio + "," + - record.ROI + "," + - record.periods + "," + - record.days + "," + - record.anualizedRateOfReturn + "," + - record.positionRate + "," + - record.lastTradeROI + "," + - record.strategy + "," + - record.strategyStageNumber + "," + - record.takeProfit + "," + - record.stopLossPhase + "," + - record.takeProfitPhase + "," + - JSON.stringify(record.executionRecord) + "," + - record.positionSize + "," + - record.initialBalanceA + "," + - record.minimumBalanceA + "," + - record.maximumBalanceA + "," + - record.initialBalanceB + "," + - record.minimumBalanceB + "," + - record.maximumBalanceB + "," + - record.baseAsset + "," + - record.quotedAsset + "," + - record.marketBaseAsset + "," + - record.marketQuotedAsset + "," + - record.positionPeriods + "," + - record.positionDays + "," + - record.distanceToLastTriggerOn + "," + - record.distanceToLastTriggerOff + "," + - record.distanceToLastTakePosition + "," + - record.distanceToLastClosePosition + "]"; - - if (separator === "") { separator = ","; } - - fileRecordCounter++; - - } - - fileContent = "[" + fileContent + "]"; - - let fileName = 'Data.json'; - let filePath = bot.filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + SIMULATED_RECORDS_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrameLabel; - filePath += '/' + fileName - - fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); - - function onFileCreated(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeMarketFiles -> writeRecordsFile -> onFileCreated -> Entering function."); } - if (LOG_FILE_CONTENT === true) { logger.write(MODULE_NAME, "[INFO] start -> writeMarketFiles -> writeRecordsFile -> onFileCreated -> fileContent = " + fileContent); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeRecordsFile -> onFileCreated -> err = " + err.stack); - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeRecordsFile -> onFileCreated -> filePath = " + filePath); - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeRecordsFile -> onFileCreated -> market = " + market.baseAsset + "_" + market.quotedAsset); - - callBackFunction(err); - return; - - } - - writeConditionsFile(); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeRecordsFile -> onFileCreated -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeRecordsFile -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function writeConditionsFile() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeMarketFiles -> writeConditionsFile -> Entering function."); } - - let separator = ""; - let fileRecordCounter = 0; - - let fileContent = ""; - - for (let i = 0; i < conditionsArray.length; i++) { - - let record = conditionsArray[i]; - - let conditions = ""; - let conditionsSeparator = ""; - - for (let j = 0; j < record.length - 3; j++) { - conditions = conditions + conditionsSeparator + record[j]; - if (conditionsSeparator === "") { conditionsSeparator = ","; } - } - - conditions = conditions + conditionsSeparator + '[' + record[record.length - 3] + ']'; // The last item contains an Array of condition values. - conditions = conditions + conditionsSeparator + '[' + record[record.length - 2] + ']'; // The last item contains an Array of formulaErrors. - conditions = conditions + conditionsSeparator + '[' + record[record.length - 1] + ']'; // The last item contains an Array of formulaValues. - - fileContent = fileContent + separator + '[' + conditions + ']'; - - if (separator === "") { separator = ","; } - - fileRecordCounter++; - - } - - fileContent = "[" + fileContent + "]"; - fileContent = "[" + JSON.stringify(tradingSystem) + "," + fileContent + "]"; - - let fileName = 'Data.json'; - let filePath = bot.filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + CONDITIONS_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrameLabel; - filePath += '/' + fileName - - fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); - - function onFileCreated(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeMarketFiles -> writeConditionsFile -> onFileCreated -> Entering function."); } - if (LOG_FILE_CONTENT === true) { logger.write(MODULE_NAME, "[INFO] start -> writeMarketFiles -> writeConditionsFile -> onFileCreated -> fileContent = " + fileContent); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeConditionsFile -> onFileCreated -> err = " + err.stack); - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeConditionsFile -> onFileCreated -> filePath = " + filePath); - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeConditionsFile -> onFileCreated -> market = " + market.baseAsset + "_" + market.quotedAsset); - - callBackFunction(err); - return; - - } - - writeStrategiesFile(); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeConditionsFile -> onFileCreated -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeConditionsFile -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function writeStrategiesFile() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeMarketFiles -> writeStrategiesFile -> Entering function."); } - - let separator = ""; - let fileRecordCounter = 0; - - let fileContent = ""; - - for (let i = 0; i < strategiesArray.length; i++) { - let record = strategiesArray[i]; - - fileContent = fileContent + separator + '[' + - record.begin + "," + - record.end + "," + - record.status + "," + - record.number + "," + - record.beginRate + "," + - record.endRate + "," + - '"' + record.triggerOnSituation + '"' + "," + - '"' + record.name + '"' + "]"; - - if (separator === "") { separator = ","; } - - fileRecordCounter++; - - } - - fileContent = "[" + fileContent + "]"; - - let fileName = 'Data.json'; - let filePath = bot.filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + STRATEGIES_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrameLabel; - filePath += '/' + fileName - - fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); - - function onFileCreated(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeMarketFiles -> writeStrategiesFile -> onFileCreated -> Entering function."); } - if (LOG_FILE_CONTENT === true) { logger.write(MODULE_NAME, "[INFO] start -> writeMarketFiles -> writeStrategiesFile -> onFileCreated -> fileContent = " + fileContent); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeStrategiesFile -> onFileCreated -> err = " + err.stack); - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeStrategiesFile -> onFileCreated -> filePath = " + filePath); - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeStrategiesFile -> onFileCreated -> market = " + market.baseAsset + "_" + market.quotedAsset); - - callBackFunction(err); - return; - - } - - writeTradesFile(); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeStrategiesFile -> onFileCreated -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeStrategiesFile -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function writeTradesFile() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeMarketFiles -> writeTradesFile -> Entering function."); } - - let separator = ""; - let fileRecordCounter = 0; - - let fileContent = ""; - - for (let i = 0; i < tradesArray.length; i++) { - - let record = tradesArray[i]; - if (record.stopRate === undefined) { record.stopRate = 0 } - - fileContent = fileContent + separator + '[' + - record.begin + "," + - record.end + "," + - record.status + "," + - record.lastTradeROI + "," + - record.beginRate + "," + - record.endRate + "," + - record.exitType + "," + - '"' + record.takePositionSituation + '"' + "]"; - - if (separator === "") { separator = ","; } - - fileRecordCounter++; - - } - - fileContent = "[" + fileContent + "]"; - - let fileName = 'Data.json'; - let filePath = bot.filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + TRADES_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrameLabel; - filePath += '/' + fileName - - fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); - - function onFileCreated(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeMarketFiles -> writeTradesFile -> onFileCreated -> Entering function."); } - if (LOG_FILE_CONTENT === true) { logger.write(MODULE_NAME, "[INFO] start -> writeMarketFiles -> writeTradesFile -> onFileCreated -> fileContent = " + fileContent); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeTradesFile -> onFileCreated -> err = " + err.stack); - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeTradesFile -> onFileCreated -> filePath = " + filePath); - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeTradesFile -> onFileCreated -> market = " + market.baseAsset + "_" + market.quotedAsset); - - callBackFunction(err); - return; - - } - - writeSnapshotFiles(); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeTradesFile -> onFileCreated -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeTradesFile -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function writeSnapshotFiles() { - - writeSnapshotFile(triggerOnSnapshot, 'Trigger-On', onFinish) - - function onFinish() { - writeSnapshotFile(takePositionSnapshot, 'Take-Position', callBackFunction) - } - - } - - function writeSnapshotFile(snapshotArray, pFileName, callBack) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeMarketFiles -> writeSnapshotFile -> Entering function."); } - - let fileRecordCounter = 0; - - let fileContent = ""; - let separator = "\r\n"; - - parseRecord(snapshotHeaders) - - for (let i = 0; i < snapshotArray.length; i++) { - let record = snapshotArray[i]; - parseRecord(record) - fileRecordCounter++; - } - - function parseRecord(record) { - for (let j = 0; j < record.length; j++) { - let property = record[j] - - fileContent = fileContent + '' + property - if (j !== record.length - 1) { - fileContent = fileContent + "," - } - } - fileContent = fileContent + separator - - } - - fileContent = "" + fileContent + ""; - - let fileName = pFileName + '.csv'; - let filePath = bot.filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + SNAPSHOTS_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrameLabel; - filePath += '/' + fileName - - fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); - - function onFileCreated(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeMarketFiles -> writeSnapshotFile -> onFileCreated -> Entering function."); } - if (LOG_FILE_CONTENT === true) { logger.write(MODULE_NAME, "[INFO] start -> writeMarketFiles -> writeSnapshotFile -> onFileCreated -> fileContent = " + fileContent); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeSnapshotFile -> onFileCreated -> err = " + err.stack); - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeSnapshotFile -> onFileCreated -> filePath = " + filePath); - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeSnapshotFile -> onFileCreated -> market = " + market.baseAsset + "_" + market.quotedAsset); - - callBackFunction(err); - return; - - } - - callBack(global.DEFAULT_OK_RESPONSE); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeSnapshotFile -> onFileCreated -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeMarketFiles -> writeSnapshotFile -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - } - - function writeDailyFiles() { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDailyFiles -> Entering function."); } - - writeRecordsFile(); - - function writeRecordsFile() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDailyFiles -> writeRecordsFile -> Entering function."); } - - let separator = ""; - let fileRecordCounter = 0; - - let fileContent = ""; - - for (let i = 0; i < recordsArray.length; i++) { - - let record = recordsArray[i]; - - /* Will only add to the file the records of the current day */ - - if (record.begin < currentDay.valueOf()) { continue; } - - fileContent = fileContent + separator + '[' + - record.begin + "," + - record.end + "," + - record.type + "," + - record.marketRate + "," + - record.amount + "," + - record.balanceA + "," + - record.balanceB + "," + - record.profit + "," + - record.lastTradeProfitLoss + "," + - record.stopLoss + "," + - record.roundtrips + "," + - record.hits + "," + - record.fails + "," + - record.hitRatio + "," + - record.ROI + "," + - record.periods + "," + - record.days + "," + - record.anualizedRateOfReturn + "," + - record.positionRate + "," + - record.lastTradeROI + "," + - record.strategy + "," + - record.strategyStageNumber + "," + - record.takeProfit + "," + - record.stopLossPhase + "," + - record.takeProfitPhase + "," + - JSON.stringify(record.executionRecord) + "," + - record.positionSize + "," + - record.initialBalanceA + "," + - record.minimumBalanceA + "," + - record.maximumBalanceA + "," + - record.initialBalanceB + "," + - record.minimumBalanceB + "," + - record.maximumBalanceB + "," + - record.baseAsset + "," + - record.quotedAsset + "," + - record.marketBaseAsset + "," + - record.marketQuotedAsset + "," + - record.positionPeriods + "," + - record.positionDays + "," + - record.distanceToLastTriggerOn + "," + - record.distanceToLastTriggerOff + "," + - record.distanceToLastTakePosition + "," + - record.distanceToLastClosePosition + "]"; - - if (separator === "") { separator = ","; } - - fileRecordCounter++; - - } - - fileContent = "[" + fileContent + "]"; - - let dateForPath = currentDay.getUTCFullYear() + '/' + utilities.pad(currentDay.getUTCMonth() + 1, 2) + '/' + utilities.pad(currentDay.getUTCDate(), 2); - let fileName = 'Data.json'; - let filePath = bot.filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + SIMULATED_RECORDS_FOLDER_NAME + "/" + "Multi-Period-Daily" + "/" + timeFrameLabel + "/" + dateForPath; - filePath += '/' + fileName - - fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); - - function onFileCreated(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDailyFiles -> writeRecordsFile -> onFileCreated -> Entering function."); } - if (LOG_FILE_CONTENT === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDailyFiles -> writeRecordsFile -> onFileCreated -> fileContent = " + fileContent); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeRecordsFile -> onFileCreated -> err = " + err.stack); - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeRecordsFile -> onFileCreated -> filePath = " + filePath); - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeRecordsFile -> onFileCreated -> market = " + market.baseAsset + "_" + market.quotedAsset); - - callBackFunction(err); - return; - - } - - writeConditionsFile(); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeRecordsFile -> onFileCreated -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeRecordsFile -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function writeConditionsFile() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDailyFiles -> writeConditionsFile -> Entering function."); } - - let separator = ""; - let fileRecordCounter = 0; - - let fileContent = ""; - - for (let i = 0; i < conditionsArray.length; i++) { - - let record = conditionsArray[i]; - - /* Will only add to the file the records of the current day */ - - if (record.begin < currentDay.valueOf()) { continue; } - - let conditions = ""; - let conditionsSeparator = ""; - - /* Will only add to the file the records of the current day */ - - if (record.begin < currentDay.valueOf()) { continue; } - - for (let j = 0; j < record.length - 3; j++) { - conditions = conditions + conditionsSeparator + record[j]; - if (conditionsSeparator === "") { conditionsSeparator = ","; } - } - - conditions = conditions + conditionsSeparator + '[' + record[record.length - 3] + ']'; // The last item contains an Array of condition values. - conditions = conditions + conditionsSeparator + '[' + record[record.length - 2] + ']'; // The last item contains an Array of formulaErrors. - conditions = conditions + conditionsSeparator + '[' + record[record.length - 1] + ']'; // The last item contains an Array of formulaValues. - - fileContent = fileContent + separator + '[' + conditions + ']'; - - if (separator === "") { separator = ","; } - - fileRecordCounter++; - - } - - fileContent = "[" + fileContent + "]"; - fileContent = "[" + JSON.stringify(tradingSystem) + "," + fileContent + "]"; - - let dateForPath = currentDay.getUTCFullYear() + '/' + utilities.pad(currentDay.getUTCMonth() + 1, 2) + '/' + utilities.pad(currentDay.getUTCDate(), 2); - let fileName = 'Data.json'; - let filePath = bot.filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + CONDITIONS_FOLDER_NAME + "/" + "Multi-Period-Daily" + "/" + timeFrameLabel + "/" + dateForPath; - filePath += '/' + fileName - - fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); - - function onFileCreated(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDailyFiles -> writeConditionsFile -> onFileCreated -> Entering function."); } - if (LOG_FILE_CONTENT === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDailyFiles -> writeConditionsFile -> onFileCreated -> fileContent = " + fileContent); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeConditionsFile -> onFileCreated -> err = " + err.stack); - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeConditionsFile -> onFileCreated -> filePath = " + filePath); - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeConditionsFile -> onFileCreated -> market = " + market.baseAsset + "_" + market.quotedAsset); - - callBackFunction(err); - return; - - } - - writeStrategiesFile(); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeConditionsFile -> onFileCreated -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeConditionsFile -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function writeStrategiesFile() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDailyFiles -> writeStrategiesFile -> Entering function."); } - - let separator = ""; - let fileRecordCounter = 0; - - let fileContent = ""; - - for (let i = 0; i < strategiesArray.length; i++) { - let record = strategiesArray[i]; - - /* Will only add to the file the records of the current day. In this case since objects can span more than one day, we add all of the objects that ends - at the current date. */ - - if (record.end < currentDay.valueOf()) { continue; } - - fileContent = fileContent + separator + '[' + - record.begin + "," + - record.end + "," + - record.status + "," + - record.number + "," + - record.beginRate + "," + - record.endRate + "," + - '"' + record.triggerOnSituation + '"' + "," + - '"' + record.name + '"' + "]"; - - if (separator === "") { separator = ","; } - - fileRecordCounter++; - - } - - fileContent = "[" + fileContent + "]"; - - let dateForPath = currentDay.getUTCFullYear() + '/' + utilities.pad(currentDay.getUTCMonth() + 1, 2) + '/' + utilities.pad(currentDay.getUTCDate(), 2); - let fileName = 'Data.json'; - let filePath = bot.filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + STRATEGIES_FOLDER_NAME + "/" + "Multi-Period-Daily" + "/" + timeFrameLabel + "/" + dateForPath; - filePath += '/' + fileName - - fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); - - function onFileCreated(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDailyFiles -> writeStrategiesFile -> onFileCreated -> Entering function."); } - if (LOG_FILE_CONTENT === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDailyFiles -> writeStrategiesFile -> onFileCreated -> fileContent = " + fileContent); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeStrategiesFile -> onFileCreated -> err = " + err.stack); - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeStrategiesFile -> onFileCreated -> filePath = " + filePath); - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeStrategiesFile -> onFileCreated -> market = " + market.baseAsset + "_" + market.quotedAsset); - - callBackFunction(err); - return; - - } - - writeTradesFile(); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeStrategiesFile -> onFileCreated -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeStrategiesFile -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function writeTradesFile() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDailyFiles -> writeTradesFile -> Entering function."); } - - let separator = ""; - let fileRecordCounter = 0; - - let fileContent = ""; - - for (let i = 0; i < tradesArray.length; i++) { - - let record = tradesArray[i]; - - /* Will only add to the file the records of the current day. In this case since objects can span more than one day, we add all of the objects that ends - at the current date. */ - - if (record.end < currentDay.valueOf()) { continue; } - if (record.stopRate === undefined) { record.stopRate = 0 } - - fileContent = fileContent + separator + '[' + - record.begin + "," + - record.end + "," + - record.status + "," + - record.lastTradeROI + "," + - record.beginRate + "," + - record.endRate + "," + - record.exitType + "," + - '"' + record.takePositionSituation + '"' + "]"; - - if (separator === "") { separator = ","; } - - fileRecordCounter++; - - } - - fileContent = "[" + fileContent + "]"; - - let dateForPath = currentDay.getUTCFullYear() + '/' + utilities.pad(currentDay.getUTCMonth() + 1, 2) + '/' + utilities.pad(currentDay.getUTCDate(), 2); - let fileName = 'Data.json'; - let filePath = bot.filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + TRADES_FOLDER_NAME + "/" + "Multi-Period-Daily" + "/" + timeFrameLabel + "/" + dateForPath; - filePath += '/' + fileName - - fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); - - function onFileCreated(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDailyFiles -> writeTradesFile -> onFileCreated -> Entering function."); } - if (LOG_FILE_CONTENT === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDailyFiles -> writeTradesFile -> onFileCreated -> fileContent = " + fileContent); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeTradesFile -> onFileCreated -> err = " + err.stack); - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeTradesFile -> onFileCreated -> filePath = " + filePath); - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeTradesFile -> onFileCreated -> market = " + market.baseAsset + "_" + market.quotedAsset); - - callBackFunction(err); - return; - - } - - writeSnapshotFiles() - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeTradesFile -> onFileCreated -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeTradesFile -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function writeSnapshotFiles() { - - writeSnapshotFile(triggerOnSnapshot, 'Trigger-On', onFinish) - - function onFinish() { - writeSnapshotFile(takePositionSnapshot, 'Take-Position', callBackFunction) - } - - } - - function writeSnapshotFile(snapshotArray, pFileName, callBack) { - if (bot.startMode !== 'Backtest') { - callBack(global.DEFAULT_OK_RESPONSE); - return; - } - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDailyFiles -> writeSnapshotFile -> Entering function."); } - - let fileRecordCounter = 0; - - let fileContent = ""; - let separator = "\r\n"; - - parseRecord(snapshotHeaders) - - for (let i = 0; i < snapshotArray.length; i++) { - let record = snapshotArray[i]; - parseRecord(record) - fileRecordCounter++; - } - - function parseRecord(record) { - for (let j = 0; j < record.length; j++) { - let property = record[j] - - fileContent = fileContent + '' + property - if (j !== record.length - 1) { - fileContent = fileContent + "," - } - } - fileContent = fileContent + separator - - } - - fileContent = "" + fileContent + ""; - - let dateForPath = currentDay.getUTCFullYear() + '/' + utilities.pad(currentDay.getUTCMonth() + 1, 2) + '/' + utilities.pad(currentDay.getUTCDate(), 2); - let fileName = pFileName + '.csv'; - let filePath = bot.filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + SNAPSHOTS_FOLDER_NAME + "/" + "Multi-Period-Daily" + "/" + timeFrameLabel + "/" + dateForPath; - filePath += '/' + fileName - - fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); - - function onFileCreated(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDailyFiles -> writeSnapshotFile -> onFileCreated -> Entering function."); } - if (LOG_FILE_CONTENT === true) { logger.write(MODULE_NAME, "[INFO] start -> writeDailyFiles -> writeSnapshotFile -> onFileCreated -> fileContent = " + fileContent); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeSnapshotFile -> onFileCreated -> err = " + err.stack); - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeSnapshotFile -> onFileCreated -> filePath = " + filePath); - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeSnapshotFile -> onFileCreated -> market = " + market.baseAsset + "_" + market.quotedAsset); - - callBackFunction(err); - return; - - } - - callBack(global.DEFAULT_OK_RESPONSE); - - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeSnapshotFile -> onFileCreated -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeDailyFiles -> writeSnapshotFile -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } + sessionStopped() + logger.persist(); + clearInterval(fixedTimeLoopIntervalHandle); + clearTimeout(nextLoopTimeoutHandle); + if (global.unexpectedError !== undefined) { + callBackFunction(global.DEFAULT_FAIL_RESPONSE) + } else { + callBackFunction(global.DEFAULT_OK_RESPONSE) } } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> err = " + err.stack); + + function sessionStopped() { + if (bot.SESSION_STATUS === 'Running') { + global.EVENT_SERVER_CLIENT.raiseEvent(bot.sessionKey, 'Stopped') + bot.SESSION_STATUS = 'Stopped' + } + } + + } catch (err) { + parentLogger.write(MODULE_NAME, "[ERROR] run -> err = " + err.stack); + clearInterval(fixedTimeLoopIntervalHandle); + clearTimeout(nextLoopTimeoutHandle); callBackFunction(global.DEFAULT_FAIL_RESPONSE); } } }; - diff --git a/TaskServer/TradingBotProcessMainLoop.js b/TaskServer/TradingBotProcessMainLoop.js deleted file mode 100644 index 579de4f33..000000000 --- a/TaskServer/TradingBotProcessMainLoop.js +++ /dev/null @@ -1,1071 +0,0 @@ -exports.newTradingBotProcessMainLoop = function newTradingBotProcessMainLoop(bot, parentLogger) { - - const ROOT_DIR = './'; - - const MODULE_NAME = "Trading Process Main Loop"; - const FULL_LOG = true; - - let USER_BOT_MODULE; - let USER_BOT_COMMONS; - - const MULTI_PERIOD_MARKET = require(ROOT_DIR + 'MultiPeriodMarket'); - const MULTI_PERIOD_DAILY = require(ROOT_DIR + 'MultiPeriodDaily'); - const MULTI_PERIOD = require(ROOT_DIR + 'MultiPeriod'); - const FILE_STORAGE = require('./FileStorage.js'); - const SESSION = require(ROOT_DIR + 'Session'); - - let fileStorage = FILE_STORAGE.newFileStorage(parentLogger); - let session = SESSION.newSession(bot, parentLogger) - - const DEBUG_MODULE = require(ROOT_DIR + 'DebugLog'); - let logger; // We need this here in order for the loopHealth function to work and be able to rescue the loop when it gets in trouble. - - let nextLoopTimeoutHandle; - let checkLoopHealthHandle; - - let thisObject = { - initialize: initialize, - run: run - }; - - let processConfig; - - return thisObject; - - function initialize(pProcessConfig, callBackFunction) { - - /* This function is exactly the same in the 3 modules representing the 2 different bot types loops. */ - - try { - if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, "[INFO] initialize -> Entering function."); } - - processConfig = pProcessConfig; - - if (bot.definedByUI === true) { - /* The code of the bot is defined at the UI. No need to load a file with the code. */ - session.initialize(processConfig, onSessionInitialized) - - function onSessionInitialized(err) { - callBackFunction(err); - } - return - } - - bot.resumeExecution = processConfig.framework.startDate.resumeExecution // We are inherating this from root, but from here we need it at bot - - let filePath = bot.dataMine + "/" + "bots" + "/" + bot.repo + "/" + pProcessConfig.codeName - filePath += "/User.Bot.js" - - fileStorage.getTextFile(filePath, onBotDownloaded); - - function onBotDownloaded(err, text) { - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - - parentLogger.write(MODULE_NAME, "[ERROR] initialize -> onInizialized -> onBotDownloaded -> err = " + err.message); - parentLogger.write(MODULE_NAME, "[ERROR] initialize -> onInizialized -> onBotDownloaded -> filePath = " + filePath); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - - USER_BOT_MODULE = {} - USER_BOT_MODULE.newUserBot = eval(text); // Use this for production - - filePath = bot.dataMine + "/" + "bots" + "/" + bot.repo; - filePath += "/Commons.js" - - fileStorage.getTextFile(filePath, onCommonsDownloaded); - - function onCommonsDownloaded(err, text) { - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - parentLogger.write(MODULE_NAME, "[WARN] initialize -> onBotDownloaded -> onCommonsDownloaded -> Commons not found: " + err.code || err.message); - callBackFunction(global.DEFAULT_OK_RESPONSE); - return; - } - - USER_BOT_COMMONS = {} - USER_BOT_COMMONS.newCommons = eval(text); // Use this for production - - session.initialize(onSessionInitialized) - - function onSessionInitialized(err) { - callBackFunction(err); - } - } - } - } catch (err) { - parentLogger.write(MODULE_NAME, "[ERROR] initialize -> err = "+ err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function run(callBackFunction) { - - try { - - if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, "[INFO] run -> Entering function."); } - - /* Some initial values*/ - bot.enableCheckLoopHealth = true; - let fixedTimeLoopIntervalHandle; - bot.STOP_SESSION = true; - - loop(); - - function loop() { - - try { - - processHeartBeat(undefined, undefined, "Running...") - function pad(str, max) { - str = str.toString(); - return str.length < max ? pad(" " + str, max) : str; - } - - /* For each loop we want to create a new log file. */ - if (logger !== undefined) { - logger.finalize() - } - logger = DEBUG_MODULE.newDebugLog(); - global.LOGGER_MAP.set(MODULE_NAME, logger) - logger.bot = bot; - logger.initialize(); - - bot.loopCounter++; - bot.loopStartTime = new Date().valueOf(); - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> Entering function."); } - - let nextWaitTime; - - /* Heartbeats sent to the UI */ - bot.sessionHeartBeat = sessionHeartBeat - bot.processHeartBeat = processHeartBeat - processHeartBeat() - - /* We define here all the modules that the rest of the infraestructure, including the bots themselves can consume. */ - - const UTILITIES = require(ROOT_DIR + 'CloudUtilities'); - const EXCHANGE_API = require(ROOT_DIR + 'ExchangeAPI'); - const STATUS_REPORT = require(ROOT_DIR + 'StatusReport'); - const STATUS_DEPENDENCIES = require(ROOT_DIR + 'StatusDependencies'); - const DATA_DEPENDENCIES = require(ROOT_DIR + 'DataDependencies'); - const DATA_SET = require(ROOT_DIR + 'DataSet'); - const PROCESS_EXECUTION_EVENTS = require(ROOT_DIR + 'ProcessExecutionEvents'); - const PROCESS_OUTPUT = require(ROOT_DIR + 'ProcessOutput'); - - /* We define the datetime for the process that we are running now. This will be the official processing time for both the infraestructure and the bot. */ - - bot.processDatetime = new Date(); // This will be considered the process date and time, so as to have it consistenly all over the execution. - - /* High level log entry */ - - console.log(new Date().toISOString() + " " + pad(bot.exchange, 20) + " " + pad(bot.market.baseAsset + '/' + bot.market.quotedAsset, 10) + " " + pad(bot.codeName, 30) + " " + pad(bot.process, 30) - + " Main Loop # " + pad(Number(bot.loopCounter), 8) + " " + bot.processNode.session.type + " " + bot.processNode.session.name) - - /* Checking if we need to need to emit any event */ - - if (bot.SESSION_STATUS === 'Idle' && bot.STOP_SESSION === false) { - global.EVENT_SERVER_CLIENT.raiseEvent(bot.sessionKey, 'Running') - bot.SESSION_STATUS = 'Running' - } - - if (bot.SESSION_STATUS === 'Running' && bot.STOP_SESSION === true) { - global.EVENT_SERVER_CLIENT.raiseEvent(bot.sessionKey, 'Stopped') - bot.SESSION_STATUS = 'Stopped' - } - - /* Checking if we should process this loop or not.*/ - if (bot.STOP_SESSION === true) { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> Waiting for " + bot.processNode.session.type + " " + bot.processNode.session.name + " to be ran."); } - - console.log(new Date().toISOString() + " " + pad(bot.codeName, 20) + " " + pad(bot.process, 30) - + " Waiting for " + bot.processNode.session.type + " " + bot.processNode.session.name + " to be ran. "); - - nextWaitTime = 'Normal'; - loopControl(nextWaitTime); - return - } - - /* We will prepare first the infraestructure needed for the bot to run. There are 3 modules we need to sucessfullly initialize first. */ - - let processExecutionEvents - let userBot; - let processFramework; - let statusDependencies; - let dataDependencies; - - initializeProcessExecutionEvents(); - - function initializeProcessExecutionEvents() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeProcessExecutionEvents -> Entering function."); } - - processExecutionEvents = PROCESS_EXECUTION_EVENTS.newProcessExecutionEvents(bot, logger) - - processExecutionEvents.initialize(onInizialized); - - function onInizialized(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Entering function."); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Execution finished well."); - startProcessExecutionEvents() - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[WARN] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Retry Later. Requesting Execution Retry."); - nextWaitTime = 'Retry'; - loopControl(nextWaitTime); - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - processStopped() - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> onInizialized -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeProcessExecutionEvents -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - function startProcessExecutionEvents() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessExecutionEvents -> Entering function."); } - - processExecutionEvents.start(onStarted); - - function onStarted(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessExecutionEvents -> onStarted -> Entering function."); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessExecutionEvents -> onStarted -> Execution finished well."); - - if (global.STOP_TASK_GRACEFULLY === true) { - loopControl() - return - } - - initializeStatusDependencies(); - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[WARN] run -> loop -> startProcessExecutionEvents -> onStarted -> Retry Later. Requesting Execution Retry."); - nextWaitTime = 'Retry'; - loopControl(nextWaitTime); - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - processStopped() - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> onStarted -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessExecutionEvents -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - function initializeStatusDependencies() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeStatusDependencies -> Entering function."); } - - statusDependencies = STATUS_DEPENDENCIES.newStatusDependencies(bot, logger, STATUS_REPORT, UTILITIES, PROCESS_OUTPUT); - - statusDependencies.initialize(onInizialized); - - function onInizialized(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeStatusDependencies -> onInizialized -> Entering function."); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeStatusDependencies -> onInizialized -> Execution finished well."); - initializeDataDependencies(); - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[WARN] run -> loop -> initializeStatusDependencies -> onInizialized -> Retry Later. Requesting Execution Retry."); - nextWaitTime = 'Retry'; - loopControl(nextWaitTime); - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - sessionStopped() - processStopped() - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> onInizialized -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeStatusDependencies -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - function initializeDataDependencies() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeDataDependencies -> Entering function."); } - - dataDependencies = DATA_DEPENDENCIES.newDataDependencies(bot, logger, DATA_SET); - - dataDependencies.initialize(onInizialized); - - function onInizialized(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeDataDependencies -> onInizialized -> Entering function."); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeDataDependencies -> onInizialized -> Execution finished well."); } - initializeExchangeAPI(); - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[WARN] run -> loop -> initializeDataDependencies -> onInizialized -> Retry Later. Requesting Execution Retry."); - nextWaitTime = 'Retry'; - loopControl(nextWaitTime); - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - sessionStopped() - processStopped() - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> onInizialized -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeDataDependencies -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - function initializeExchangeAPI() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeExchangeAPI -> Entering function."); } - - exchangeAPI = EXCHANGE_API.newExchangeAPI(logger, bot); - - exchangeAPI.initialize(onInizialized); - - function onInizialized(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeContext -> onInizialized -> onInizialized -> Entering function."); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeExchangeAPI -> onInizialized -> Execution finished well."); } - - switch (processConfig.framework.name) { - case 'Multi-Period': { - processFramework = MULTI_PERIOD.newMultiPeriod(bot, logger, UTILITIES, USER_BOT_MODULE, USER_BOT_COMMONS); - intitializeProcessFramework(); - break; - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeExchangeAPI -> onInizialized -> Process Framework not Supported."); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeExchangeAPI -> onInizialized -> Process Framework Name = " + processConfig.framework.name); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - } - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[WARN] run -> loop -> initializeExchangeAPI -> onInizialized -> Retry Later. Requesting Execution Retry."); - nextWaitTime = 'Retry'; - loopControl(nextWaitTime); - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - sessionStopped() - processStopped() - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeExchangeAPI -> onInizialized -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeExchangeAPI -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeExchangeAPI -> onInizialized -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeContext -> onInizialized -> onInizialized -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> initializeExchangeAPI -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - function intitializeProcessFramework() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> intitializeProcessFramework -> Entering function."); } - - processFramework.initialize(processConfig, statusDependencies, dataDependencies, exchangeAPI, onInizialized); - - function onInizialized(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> intitializeProcessFramework -> onInizialized -> Entering function."); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - logger.write(MODULE_NAME, "[INFO] run -> loop -> intitializeProcessFramework -> onInizialized -> Execution finished well."); - startProcessFramework(); - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[WARN] run -> loop -> intitializeProcessFramework -> onInizialized -> Retry Later. Requesting Execution Retry."); - nextWaitTime = 'Retry'; - loopControl(nextWaitTime); - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - sessionStopped() - processStopped() - logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - case global.CUSTOM_OK_RESPONSE.result: { - - switch (err.message) { - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized > Unhandled custom response received. -> err = " + err.message); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - } - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> onInizialized -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> intitializeProcessFramework -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - function startProcessFramework() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessFramework -> Entering function."); } - - processFramework.start(onFinished); - - function onFinished(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessFramework -> onFinished -> Entering function."); } - processFramework.finalize() - processFramework = undefined - dataDependencies.finalize() - dataDependencies = undefined - statusDependencies.finalize() - statusDependencies = undefined - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessFramework -> onFinished -> Execution finished well."); - nextWaitTime = 'Normal'; - finishProcessExecutionEvents() - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[WARN] run -> loop -> startProcessFramework -> onFinished -> Retry Later. Requesting Execution Retry."); - nextWaitTime = 'Retry'; - loopControl(nextWaitTime); - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - sessionStopped() - processStopped() - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - case global.CUSTOM_OK_RESPONSE.result: { - - switch (err.message) { - case "Dependency does not exist.": { - logger.write(MODULE_NAME, "[WARN] run -> loop -> startProcessFramework -> onFinished -> Dependency does not exist. This Loop will go to sleep."); - nextWaitTime = 'Sleep'; - loopControl(nextWaitTime); - return; - } - case "Dependency not ready.": { - logger.write(MODULE_NAME, "[WARN] run -> loop -> startProcessFramework -> onFinished -> Dependency not ready. This Loop will go to sleep."); - nextWaitTime = 'Sleep'; - loopControl(nextWaitTime); - return; - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> Unhandled custom response received. -> err = " + err.message); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - } - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> onFinished -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> startProcessFramework -> err = "+ err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - function finishProcessExecutionEvents() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> finishProcessExecutionEvents -> Entering function."); } - - processExecutionEvents.finish(onFinished); - - function onFinished(err) { - try { - processExecutionEvents.finalize() - processExecutionEvents = undefined - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> finishProcessExecutionEvents -> onFinished -> Entering function."); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - logger.write(MODULE_NAME, "[INFO] run -> loop -> finishProcessExecutionEvents -> onFinished -> Execution finished well."); - nextWaitTime = 'Normal'; - loopControl(nextWaitTime); - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { // Something bad happened, but if we retry in a while it might go through the next time. - logger.write(MODULE_NAME, "[WARN] run -> loop -> finishProcessExecutionEvents -> onFinished -> Retry Later. Requesting Execution Retry."); - nextWaitTime = 'Retry'; - loopControl(nextWaitTime); - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { // This is an unexpected exception that we do not know how to handle. - processStopped() - logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> Operation Failed. Aborting the process."); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - return; - } - default: { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> Unhandled err.result received. -> err = " + err.message); - - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> onFinished -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> finishProcessExecutionEvents -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - function loopControl(nextWaitTime) { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Entering function."); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> nextWaitTime = " + nextWaitTime); } - - /* We show we reached the end of the loop. */ - - processHeartBeat() - - /* Here we check if we must stop the loop gracefully. */ - - shallWeStop(onStop, onContinue); - - function onStop() { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> onStop -> Entering function."); } - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> onStop -> Stopping the Loop Gracefully. See you next time!"); } - - if (global.WRITE_LOGS_TO_FILES === 'true') { - logger.persist(); - } - - global.EVENT_SERVER_CLIENT.raiseEvent(bot.sessionKey, 'Stopped') - processStopped() - callBackFunction(global.DEFAULT_OK_RESPONSE); - return; - - } - - function onContinue() { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> onContinue -> Entering function."); } - - /* Indicator bots are going to be executed after a configured period of time after the last execution ended. This is to avoid overlapping executions. */ - - switch (nextWaitTime) { - case 'Normal': { - let waitTime - if (bot.startMode === "Live") { - waitTime = processConfig.liveWaitTime - } else { - waitTime = processConfig.normalWaitTime - } - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (waitTime / 1000 / 60) + " minute/s."); } - if (processConfig.deadWaitTime > 0) { - checkLoopHealthHandle = setTimeout(checkLoopHealth, processConfig.deadWaitTime, bot.loopCounter); - } - nextLoopTimeoutHandle = setTimeout(loop, waitTime); - let waitingTime = waitTime / 1000 / 60 - let label = 'minute/s' - if (waitingTime < 1) { - waitingTime = waitTime / 1000 - label = 'seconds' - } - processHeartBeat(undefined, undefined, "Waiting " + waitingTime + " " + label + " for next execution.") - if (global.WRITE_LOGS_TO_FILES === 'true') { - logger.persist(); - } - } - break; - case 'Retry': { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (processConfig.retryWaitTime / 1000) + " seconds."); } - if (processConfig.deadWaitTime > 0) { - checkLoopHealthHandle = setTimeout(checkLoopHealth, processConfig.deadWaitTime, bot.loopCounter); - } - nextLoopTimeoutHandle = setTimeout(loop, processConfig.retryWaitTime); - processHeartBeat(undefined, undefined, "Trying to recover from some problem. Waiting " + processConfig.retryWaitTime / 1000 + " seconds for next execution.") - logger.persist(); - } - break; - case 'Sleep': { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (processConfig.sleepWaitTime / 60000) + " minutes."); } - nextLoopTimeoutHandle = setTimeout(loop, processConfig.sleepWaitTime); - processHeartBeat(undefined, undefined, "Waiting " + processConfig.sleepWaitTime / 60000 + " minutes for next execution.") - logger.persist(); - } - break; - case 'Coma': { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Restarting Loop in " + (processConfig.comaWaitTime / 3600000) + " hours."); } - nextLoopTimeoutHandle = setTimeout(loop, processConfig.comaWaitTime); - processHeartBeat(undefined, undefined, "Waiting " + processConfig.comaWaitTime / 3600000 + " hours for next execution.") - logger.persist(); - } - break; - } - } - } - - function checkLoopHealth(pLastLoop) { - - if (bot.enableCheckLoopHealth === false || global.STOP_TASK_GRACEFULLY === true) { - - logger.write(MODULE_NAME, "[WARN] run -> loop -> checkLoopHealth -> bot.enableCheckLoopHealth = " + bot.enableCheckLoopHealth); - - return; - } // This gets disabled anytime the Main Loop is shut down by any condition. - - if (bot.loopCounter <= pLastLoop + 1) { // This means that the next loop started but also stopped executing abruptally. - - let now = new Date().valueOf(); - - if (now - bot.loopStartTime > processConfig.deadWaitTime) { - - logger.write(MODULE_NAME, "[ERROR] run -> loop -> checkLoopHealth -> Dead loop found -> pLastLoop = " + pLastLoop); - console.log((new Date().toISOString() + " [ERROR] run -> loop -> checkLoopHealth -> " + pad(bot.codeName, 20) + " " + pad(bot.process, 30) + " Loop # " + pad(Number(bot.loopCounter), 5) + " found dead. Resurrecting it now.")); - - logger.persist(); // We persist the logs of the failed execution. - clearTimeout(nextLoopTimeoutHandle); // We cancel the timeout in case the original loop was still running and schedulled to reexecute. - loop(); // We restart the loop so that the processing can continue. - - } else { - - console.log((new Date().toISOString() + " [WARN] run -> loop -> checkLoopHealth -> " + pad(bot.codeName, 20) + " " + pad(bot.process, 30) + " Loop # " + pad(Number(bot.loopCounter), 5) + " found delayed but still alive. No action taken.")); - - } - } - } - - function shallWeStop(stopCallBack, continueCallBack) { - - try { - - /* IMPORTANT: This function is exactly the same on the 3 modules. */ - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> shallWeStop -> Entering function. "); } - - if (!global.STOP_TASK_GRACEFULLY) { - continueCallBack(); - } else { - stopCallBack(); - } - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] run -> loop -> shallWeStop -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - - } catch (err) { - parentLogger.write(MODULE_NAME, "[ERROR] run -> loop -> err = "+ err.stack); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - - function processHeartBeat(processingDate, percentage, status) { - let event = { - seconds: (new Date()).getSeconds(), - processingDate: processingDate, - percentage: percentage, - status: status - } - global.EVENT_SERVER_CLIENT.raiseEvent(bot.processKey, 'Heartbeat', event) - } - - function sessionHeartBeat(processingDate) { - let event = { - seconds: (new Date()).getSeconds(), - processingDate: processingDate - } - global.EVENT_SERVER_CLIENT.raiseEvent(bot.sessionKey, 'Heartbeat', event) - - if (global.STOP_TASK_GRACEFULLY === true) { - bot.STOP_SESSION = true - } - } - - function processStopped() { - global.EVENT_SERVER_CLIENT.raiseEvent(bot.processKey, 'Stopped') - } - - function sessionStopped() { - if (bot.SESSION_STATUS === 'Running') { - global.EVENT_SERVER_CLIENT.raiseEvent(bot.sessionKey, 'Stopped') - bot.SESSION_STATUS = 'Stopped' - } - } - - } catch (err) { - parentLogger.write(MODULE_NAME, "[ERROR] run -> err = "+ err.stack); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } -}; diff --git a/TaskServer/TradingSimulation.js b/TaskServer/TradingSimulation.js deleted file mode 100644 index 2cb22cc25..000000000 --- a/TaskServer/TradingSimulation.js +++ /dev/null @@ -1,3389 +0,0 @@ -exports.newTradingSimulation = function newTradingSimulation(bot, logger, UTILITIES) { - - const FULL_LOG = true; - const LOG_FILE_CONTENT = false; - const ONE_DAY_IN_MILISECONDS = 24 * 60 * 60 * 1000; - const MODULE_NAME = "Trading Simulation -> " + bot.SESSION.name; - - const GMT_SECONDS = ':00.000 GMT+0000'; - - let thisObject = { - finalize: finalize, - runSimulation: runSimulation - }; - - let utilities = UTILITIES.newCloudUtilities(bot, logger); - - return thisObject; - - function finalize() { - thisObject = undefined - } - - function runSimulation( - chart, - dataDependencies, - timeFrame, - timeFrameLabel, - currentDay, - interExecutionMemory, - exchangeAPI, - callback, - callBackFunction) { - - try { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> Entering function."); } - let processingDailyFiles - if (timeFrame > global.dailyFilePeriods[0][0]) { - processingDailyFiles = false - } else { - processingDailyFiles = true - } - - let recordsArray = []; - let conditionsArray = []; - let strategiesArray = []; - let tradesArray = []; - - let tradingSystem = bot.TRADING_SYSTEM - - /* Initial Default Values */ - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> bot.VALUES_TO_USE.timeRange.initialDatetime = " + bot.VALUES_TO_USE.timeRange.initialDatetime); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> bot.VALUES_TO_USE.timeRange.finalDatetime = " + bot.VALUES_TO_USE.timeRange.finalDatetime); } - - let timerToCloseStage = 0 - - /* Stop Loss Management */ - - const MIN_STOP_LOSS_VALUE = 0.0000000001 // We can not let the stop be zero to avoid division by 0 error or infinity numbers as a result. - const MAX_STOP_LOSS_VALUE = Number.MAX_SAFE_INTEGER - let stopLoss = 0; - - /* Take Profit Management */ - - const MIN_TAKE_PROFIT_VALUE = 0.0000000001 // We can not let the buy order be zero to avoid division by 0 error or infinity numbers as a result. - const MAX_TAKE_PROFIT_VALUE = Number.MAX_SAFE_INTEGER - let takeProfit = 0; - - /* Simulation Records */ - - let hitRatio = 0; - let ROI = 0; - let days = 0; - let positionDays = 0; - let anualizedRateOfReturn = 0; - let type = '""'; - let marketRate = 0; - let takePositionNow = false - let closePositionNow = false - - /* In some cases we need to know if we are positioned at the last candle of the calendar day, for that we need these variables. */ - - let lastInstantOfTheDay = 0 - if (currentDay) { - lastInstantOfTheDay = currentDay.valueOf() + ONE_DAY_IN_MILISECONDS - 1; - } - - /* - The following counters need to survive multiple executions of the similator and keep themselves reliable. - This is challenging when the simulation is executed using Daily Files, since each execution means a new - day and these counters are meant to be kept along the whole market. - - To overcome this problem, we use the interExecutionMemory to record the values of the current execution - when finish. But there are a few details: - - 1. When the process is at the head of the market, it executes multple times at the same day. - 2. The same code serves execution from Market Files. - 3. In Daily Files we are receiving candles from the current day and previous day, so we need to take care of - not adding to the counters duplicate info when processing the day before candles. - - To overcome these challenges we record the values of the counters and variables on the interExecutionMemory only when - the day is complete and if we have a current Day. That menas that for Market Files we will never use - interExecutionMemory. - */ - - /* Snapshots of Trigger On and Take Positions */ - let snapshots = { - headers: undefined, - triggerOn: [], - takePosition: [], - lastTriggerOn: undefined, - lastTakePosition: undefined - } - - /*Needed for statistics */ - let previousBalanceBaseAsset = 0; - let previousBalanceQuotedAsset = 0; - - /* Position Management */ - let tradePositionRate = 0; - let tradePositionSize = 0; - - /* Strategy and Phase Management */ - let currentStrategyIndex = -1; - let strategyStage = 'No Stage'; - - let stopLossPhase = -1; - let stopLossStage = 'No Stage'; - - let takeProfitPhase = -1; - let takeProfitStage = 'No Stage'; - - /* These 2 objects will allow us to create separate files for each one of them. */ - - let currentStrategy = { - begin: 0, - end: 0, - status: 0, - number: 0, - beginRate: 0, - endRate: 0, - triggerOnSituation: '', - name: '' - } - - let currentTrade = { - begin: 0, - end: 0, - status: 0, - profit: 0, - exitType: 0, - beginRate: 0, - endRate: 0, - takePositionSituation: '' - } - - let balanceBaseAsset = bot.VALUES_TO_USE.initialBalanceA; - let balanceQuotedAsset = bot.VALUES_TO_USE.initialBalanceB; - - let lastTradeProfitLoss = 0; - let profit = 0; - let lastTradeROI = 0; - - let roundtrips = 0; - let fails = 0; - let hits = 0; - let periods = 0; - let positionPeriods = 0; - - let closeRate - - /* Usefull counters for conditions and formulas */ - - let distanceToLast = { - triggerOn: 0, - triggerOff: 0, - takePosition: 0, - closePosition: 0 - } - - /* Message to the Simulation Executor */ - - let orderId = 0; - let messageId = 0; - - /* Allowing these to be accesible at formulas */ - baseAsset = bot.VALUES_TO_USE.baseAsset - quotedAsset = bot.VALUES_TO_USE.quotedAsset - - let yesterday = {}; - - /* Initialization */ - - - yesterday.snapshots = { - headers: undefined, - triggerOn: [], - takePosition: [], - lastTriggerOn: undefined, - lastTakePosition: undefined - } - - yesterday.stopLoss = 0 - yesterday.takeProfit = 0 - - yesterday.previousBalanceBaseAsset = previousBalanceBaseAsset - yesterday.previousBalanceQuotedAsset = previousBalanceQuotedAsset - - yesterday.tradePositionRate = tradePositionRate - yesterday.tradePositionSize = tradePositionSize - - yesterday.currentStrategyIndex = currentStrategyIndex - yesterday.strategyStage = strategyStage - - yesterday.stopLossPhase = stopLossPhase - yesterday.stopLossStage = stopLossStage - - yesterday.takeProfitPhase = takeProfitPhase - yesterday.takeProfitStage = takeProfitStage - - yesterday.currentStrategy = { - begin: 0, - end: 0, - status: 0, - number: 0, - beginRate: 0, - endRate: 0, - triggerOnSituation: '', - name: '' - } - - yesterday.currentTrade = { - begin: 0, - end: 0, - status: 0, - profit: 0, - exitType: 0, - beginRate: 0, - endRate: 0, - takePositionSituation: '' - } - - yesterday.balanceBaseAsset = balanceBaseAsset; - yesterday.balanceQuotedAsset = balanceQuotedAsset; - - yesterday.lastTradeProfitLoss = 0; - yesterday.profit = 0; - yesterday.lastTradeROI = 0; - - yesterday.roundtrips = 0; - yesterday.fails = 0; - yesterday.hits = 0; - yesterday.periods = 0; - yesterday.positionPeriods = 0; - - yesterday.distanceToLast = { - triggerOn: 0, - triggerOff: 0, - takePosition: 0, - closePosition: 0 - } - - yesterday.orderId = 0; - yesterday.messageId = 0; - - yesterday.hitRatio = 0; - yesterday.ROI = 0; - yesterday.anualizedRateOfReturn = 0; - - if (interExecutionMemory.roundtrips === undefined) { // This just means that the inter execution memory was never used before. - - /* Initialize the data structure we will use inter execution. */ - - interExecutionMemory.snapshots = { - headers: undefined, - triggerOn: [], - takePosition: [], - lastTriggerOn: undefined, - lastTakePosition: undefined - } - - interExecutionMemory.stopLoss = 0 - interExecutionMemory.takeProfit = 0 - - interExecutionMemory.previousBalanceBaseAsset = previousBalanceBaseAsset - interExecutionMemory.previousBalanceQuotedAsset = previousBalanceQuotedAsset - - interExecutionMemory.tradePositionRate = tradePositionRate - interExecutionMemory.tradePositionSize = tradePositionSize - - interExecutionMemory.currentStrategyIndex = currentStrategyIndex - interExecutionMemory.strategyStage = strategyStage - - interExecutionMemory.stopLossPhase = stopLossPhase - interExecutionMemory.stopLossStage = stopLossStage - - interExecutionMemory.takeProfitPhase = takeProfitPhase - interExecutionMemory.takeProfitStage = takeProfitStage - - interExecutionMemory.currentStrategy = { - begin: 0, - end: 0, - status: 0, - number: 0, - beginRate: 0, - endRate: 0, - triggerOnSituation: '', - name: '' - } - - interExecutionMemory.currentTrade = { - begin: 0, - end: 0, - status: 0, - profit: 0, - exitType: 0, - beginRate: 0, - endRate: 0, - takePositionSituation: '' - } - - interExecutionMemory.balanceBaseAsset = balanceBaseAsset; - interExecutionMemory.balanceQuotedAsset = balanceQuotedAsset; - - interExecutionMemory.lastTradeProfitLoss = lastTradeProfitLoss; - interExecutionMemory.profit = profit; - interExecutionMemory.lastTradeROI = lastTradeROI; - - interExecutionMemory.roundtrips = 0; - interExecutionMemory.fails = 0; - interExecutionMemory.hits = 0; - interExecutionMemory.periods = 0; - interExecutionMemory.positionPeriods = 0; - - interExecutionMemory.distanceToLast = { - triggerOn: 0, - triggerOff: 0, - takePosition: 0, - closePosition: 0 - } - - interExecutionMemory.orderId = 0; - interExecutionMemory.messageId = 0; - - interExecutionMemory.hitRatio = 0; - interExecutionMemory.ROI = 0; - interExecutionMemory.anualizedRateOfReturn = 0; - - interExecutionMemory.announcements = [] - - } else { - - /* We get the initial values from the day previous to the candles we receive at the current execution */ - - snapshots = { - headers: interExecutionMemory.snapshots.headers, - triggerOn: interExecutionMemory.snapshots.triggerOn, - takePosition: interExecutionMemory.snapshots.takePosition, - lastTriggerOn: interExecutionMemory.snapshots.lastTriggerOn, - lastTakePosition: interExecutionMemory.snapshots.lastTakePosition - } - - stopLoss = interExecutionMemory.stopLoss - takeProfit = interExecutionMemory.takeProfit - - previousBalanceBaseAsset = interExecutionMemory.previousBalanceBaseAsset - previousBalanceQuotedAsset = interExecutionMemory.previousBalanceQuotedAsset - - tradePositionRate = interExecutionMemory.tradePositionRate - tradePositionSize = interExecutionMemory.tradePositionSize - - currentStrategyIndex = interExecutionMemory.currentStrategyIndex - strategyStage = interExecutionMemory.strategyStage - - stopLossPhase = interExecutionMemory.stopLossPhase - stopLossStage = interExecutionMemory.stopLossStage - - takeProfitPhase = interExecutionMemory.takeProfitPhase - takeProfitStage = interExecutionMemory.takeProfitStage - - currentStrategy = { - begin: interExecutionMemory.currentStrategy.begin, - end: interExecutionMemory.currentStrategy.end, - status: interExecutionMemory.currentStrategy.status, - number: interExecutionMemory.currentStrategy.number, - beginRate: interExecutionMemory.currentStrategy.beginRate, - endRate: interExecutionMemory.currentStrategy.endRate, - triggerOnSituation: interExecutionMemory.currentStrategy.triggerOnSituation, - name: currentStrategy.name - } - - currentTrade = { - begin: interExecutionMemory.currentTrade.begin, - end: interExecutionMemory.currentTrade.end, - status: interExecutionMemory.currentTrade.status, - profit: interExecutionMemory.currentTrade.profit, - exitType: interExecutionMemory.currentTrade.exitType, - beginRate: interExecutionMemory.currentTrade.beginRate, - endRate: interExecutionMemory.currentTrade.endRate, - takePositionSituation: interExecutionMemory.currentTrade.takePositionSituation - } - - if (currentDay) { - if (currentDay.valueOf() >= bot.VALUES_TO_USE.timeRange.initialDatetime.valueOf() + ONE_DAY_IN_MILISECONDS) { // Only after the first day we start grabbing the balance from this memory. - - balanceBaseAsset = interExecutionMemory.balanceBaseAsset; - balanceQuotedAsset = interExecutionMemory.balanceQuotedAsset; - - yesterday.balanceBaseAsset = balanceBaseAsset; - yesterday.balanceQuotedAsset = balanceQuotedAsset; - - } - } - - lastTradeProfitLoss = interExecutionMemory.lastTradeProfitLoss; - profit = interExecutionMemory.profit; - lastTradeROI = interExecutionMemory.lastTradeROI; - - roundtrips = interExecutionMemory.roundtrips; - fails = interExecutionMemory.fails; - hits = interExecutionMemory.hits; - periods = interExecutionMemory.periods; - positionPeriods = interExecutionMemory.positionPeriods; - - distanceToLast.triggerOn = interExecutionMemory.distanceToLast.triggerOn - distanceToLast.triggerOff = interExecutionMemory.distanceToLast.triggerOff - distanceToLast.takePosition = interExecutionMemory.distanceToLast.takePosition - distanceToLast.closePosition = interExecutionMemory.distanceToLast.closePosition - - orderId = interExecutionMemory.orderId; // to be deprecated - messageId = interExecutionMemory.messageId; // to be deprecated - - hitRatio = interExecutionMemory.hitRatio; - ROI = interExecutionMemory.ROI; - anualizedRateOfReturn = interExecutionMemory.anualizedRateOfReturn; - - /* For the case that any of these variables are not updated during the main loop, we need to store their value at the yesterday structure, otherwise it would be lost. */ - - yesterday.snapshots = { - headers: snapshots.headers, - triggerOn: snapshots.triggerOn, - takePosition: snapshots.takePosition, - lastTriggerOn: snapshots.lastTriggerOn, - lastTakePosition: snapshots.lastTakePosition - } - - yesterday.stopLoss = stopLoss - yesterday.takeProfit = takeProfit - - yesterday.previousBalanceBaseAsset = previousBalanceBaseAsset - yesterday.previousBalanceQuotedAsset = previousBalanceQuotedAsset - - yesterday.tradePositionRate = tradePositionRate - yesterday.tradePositionSize = tradePositionSize - - yesterday.currentStrategyIndex = currentStrategyIndex; - yesterday.strategyStage = strategyStage; - - yesterday.stopLossPhase = stopLossPhase; - yesterday.stopLossStage = stopLossStage; - - yesterday.takeProfitPhase = takeProfitPhase; - yesterday.takeProfitStage = takeProfitStage; - - yesterday.currentStrategy = { - begin: currentStrategy.begin, - end: currentStrategy.end, - status: currentStrategy.status, - number: currentStrategy.number, - beginRate: currentStrategy.beginRate, - endRate: currentStrategy.endRate, - triggerOnSituation: currentStrategy.triggerOnSituation, - name: currentStrategy.name - } - - yesterday.currentTrade = { - begin: currentTrade.begin, - end: currentTrade.end, - status: currentTrade.status, - profit: currentTrade.profit, - exitType: currentTrade.exitType, - beginRate: currentTrade.beginRate, - endRate: currentTrade.endRate, - takePositionSituation: currentTrade.takePositionSituation - } - - yesterday.lastTradeProfitLoss = lastTradeProfitLoss; - yesterday.profit = profit; - yesterday.lastTradeROI = lastTradeROI; - - yesterday.roundtrips = roundtrips; - yesterday.fails = fails; - yesterday.hits = hits; - yesterday.periods = periods; - yesterday.positionPeriods = positionPeriods; - - yesterday.distanceToLast.triggerOn = distanceToLast.triggerOn - yesterday.distanceToLast.triggerOff = distanceToLast.triggerOff - yesterday.distanceToLast.takePosition = distanceToLast.takePosition - yesterday.distanceToLast.closePosition = distanceToLast.closePosition - - yesterday.hitRatio = hitRatio; - yesterday.ROI = ROI; - yesterday.anualizedRateOfReturn = anualizedRateOfReturn; - } - - /* Main Array and Maps */ - - let propertyName = 'at' + timeFrameLabel.replace('-', ''); - let candles = chart[propertyName].candles - let currentChart = chart[propertyName] - - /* Last Candle */ - let lastCandle = candles[candles.length - 1]; - - /* Main Simulation Loop: We go thourgh all the candles at this time period. */ - let currentCandleIndex - - /* For Loop Level heartbeat */ - let loopingDay - let previousLoopingDay - - initializeLoop() - - function initializeLoop() { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> initializeLoop -> Entering function."); } - - /* Estimate Initial Candle */ - - let firstEnd = candles[0].end - let targetEnd = bot.VALUES_TO_USE.timeRange.initialDatetime.valueOf() - let diff = targetEnd - firstEnd - let amount = diff / timeFrame - - currentCandleIndex = Math.trunc(amount) - if (currentCandleIndex < 0) { currentCandleIndex = 0 } - if (currentCandleIndex > candles.length - 1) { - /* This will happen when the bot.VALUES_TO_USE.timeRange.initialDatetime is beyond the last candle available, meaning that the dataSet needs to be updated with more up-to-date data. */ - currentCandleIndex = candles.length - 1 - } - - loop() - } - - function loop() { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Entering function."); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Processing candle # " + currentCandleIndex); } - - /* We are going to take snapshots of the values of indicators at key moments of the sumulation. */ - - let snapshotKeys = new Map() - snapshotLoopHeaders = [] - snapshotDataRecord = [] - saveAsLastTriggerOnSnapshot = false - saveAsLastTakePositionSnapshot = false - addToSnapshots = false - - let announcementsToBeMade = [] - let candle = candles[currentCandleIndex]; - - /* Not processing while out of user-defined time range */ - - if (candle.end < bot.VALUES_TO_USE.timeRange.initialDatetime.valueOf()) { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Skipping Candle before the bot.VALUES_TO_USE.timeRange.initialDatetime."); } - controlLoop(); - return - } - if (candle.begin > bot.VALUES_TO_USE.timeRange.finalDatetime.valueOf()) { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Skipping Candle after the bot.VALUES_TO_USE.timeRange.finalDatetime."); } - afterLoop(); - return - } - - /* Here we update at the chart data structure the objects for each product representing where we are currently standing at the simulation loop */ - if (processingDailyFiles) { - for (let j = 0; j < global.dailyFilePeriods.length; j++) { - - let mapKey = dailyFilePeriods[j][1] - let propertyName = 'at' + mapKey.replace('-', ''); - let thisChart = chart[propertyName] - - for (let k = 0; k < dataDependencies.length; k++) { - let dataDependencyNode = dataDependencies[k] - if (dataDependencyNode.referenceParent.code.codeName !== 'Multi-Period-Daily') { continue } - let singularVariableName = dataDependencyNode.referenceParent.parentNode.code.singularVariableName - let pluralVariableName = dataDependencyNode.referenceParent.parentNode.code.pluralVariableName - let currentElement = getElement(thisChart[pluralVariableName], candle, 'Daily' + '-' + mapKey + '-' + pluralVariableName) - thisChart[singularVariableName] = currentElement - } - } - } - - /* Finding the Current Element on Market Files */ - for (let j = 0; j < global.marketFilesPeriods.length; j++) { - - let mapKey = marketFilesPeriods[j][1] - let propertyName = 'at' + mapKey.replace('-', ''); - let thisChart = chart[propertyName] - - for (let k = 0; k < dataDependencies.length; k++) { - let dataDependencyNode = dataDependencies[k] - if (dataDependencyNode.referenceParent.code.codeName !== 'Multi-Period-Market') {continue} - let singularVariableName = dataDependencyNode.referenceParent.parentNode.code.singularVariableName - let pluralVariableName = dataDependencyNode.referenceParent.parentNode.code.pluralVariableName - let currentElement = getElement(thisChart[pluralVariableName], candle, 'Market' + '-' + mapKey + '-' + pluralVariableName) - thisChart[singularVariableName] = currentElement - } - } - - /* Finding the Current Element on Single Files */ - - function isItInside(elementWithTimestamp, elementWithBeginEnd) { - if (elementWithTimestamp.timestamp >= elementWithBeginEnd.begin && elementWithTimestamp.timestamp <= elementWithBeginEnd.end) { - return true - } else { - return false - } - } - - let propertyName = 'atAnyTimeFrame' - let thisChart = chart[propertyName] - - for (let k = 0; k < dataDependencies.length; k++) { - let dataDependencyNode = dataDependencies[k] - if (dataDependencyNode.referenceParent.code.codeName !== 'Single-File') { continue } - let singularVariableName = dataDependencyNode.referenceParent.parentNode.code.singularVariableName - let pluralVariableName = dataDependencyNode.referenceParent.parentNode.code.pluralVariableName - let elementArray = thisChart[pluralVariableName] - let currentElement - if (elementArray !== undefined) { - currentElement = elementArray[elementArray.length - 1] - } - thisChart[singularVariableName] = currentElement - } - - /* While we are processing the previous day. */ - let positionedAtYesterday = false - if (currentDay) { - positionedAtYesterday = (candle.end < currentDay.valueOf()) - } - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Candle Begin @ " + (new Date(candle.begin)).toLocaleString()) } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Candle End @ " + (new Date(candle.end)).toLocaleString()) } - - let ticker = { - bid: candle.close, - ask: candle.close, - last: candle.close - } - - /* We will produce a simulation level heartbeat in order to inform the user this is running. */ - - loopingDay = new Date(Math.trunc(candle.begin / ONE_DAY_IN_MILISECONDS) * ONE_DAY_IN_MILISECONDS) - if (loopingDay.valueOf() !== previousLoopingDay) { - - let processingDate = loopingDay.getUTCFullYear() + '-' + utilities.pad(loopingDay.getUTCMonth() + 1, 2) + '-' + utilities.pad(loopingDay.getUTCDate(), 2); - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Simulation " + bot.sessionKey + " Loop # " + currentCandleIndex + " @ " + processingDate) } - - /* Telling the world we are alive and doing well */ - let fromDate = new Date(bot.VALUES_TO_USE.timeRange.initialDatetime.valueOf()) - let lastDate = new Date(bot.VALUES_TO_USE.timeRange.finalDatetime.valueOf()) - - let currentDateString = loopingDay.getUTCFullYear() + '-' + utilities.pad(loopingDay.getUTCMonth() + 1, 2) + '-' + utilities.pad(loopingDay.getUTCDate(), 2); - let currentDate = new Date(loopingDay) - let percentage = global.getPercentage(fromDate, currentDate, lastDate) - bot.processHeartBeat(currentDateString, percentage) - - if (global.areEqualDates(currentDate, new Date()) === false) { - logger.newInternalLoop(bot.codeName, bot.process, currentDate, percentage); - } - } - previousLoopingDay = loopingDay.valueOf() - - /* If any of the needed data dependencies is missing for this particular candle, then we jump the candle*/ - /* - for (let k = 0; k < dataDependencies.length; k++) { - let dataDependencyNode = dataDependencies[k] - let singularVariableName = dataDependencyNode.referenceParent.parentNode.code.singularVariableName - let pluralVariableName = dataDependencyNode.referenceParent.parentNode.code.pluralVariableName - let product = currentChart[pluralVariableName] - let currentElement = currentChart[singularVariableName] - - if (currentElement === undefined) { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Skipping Candle because " + singularVariableName + " is undefined."); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> For some indicators it is normal to start after a few candles."); } - controlLoop(); - return - } - } - */ - - periods++; - days = periods * timeFrame / ONE_DAY_IN_MILISECONDS; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.periods = periods - } - - /* We skip the candle at the head of the market because currentCandleIndex has not closed yet. */ - let candlesPerDay = ONE_DAY_IN_MILISECONDS / timeFrame - if (currentCandleIndex === candles.length - 1) { - if ((candles.length < candlesPerDay) || (candles.length > candlesPerDay && candles.length < candlesPerDay * 2)) { - /*We are at the head of the market, thus we skip the last candle because it has not close yet. */ - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Skipping Candle because it is the last one and has not been closed yet."); } - controlLoop(); - return - /* Note here that in the last candle of the first day or the second day it will use an incomplete candle and partially calculated indicators. - if we skip these two periods, then there will be a hole in the file since the last period will be missing. */ - } - } - - } else { // We are processing Market Files - if (currentCandleIndex === candles.length - 1) { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Skipping Candle because it is the last one and has not been closed yet."); } - controlLoop(); - return - } - } - - let conditions = new Map; // Here we store the conditions values that will be use in the simulator for decision making. - let formulas = new Map; - let conditionsArrayRecord = []; // These are the records that will be saved in a file for the plotter to consume. - let conditionsArrayValues = []; // Here we store the conditions values that will be written on file for the plotter. - let formulasErrors = []; // Here we store the errors produced by all phase formulas. - let formulasValues = []; // Here we store the values produced by all phase formulas. - - /* We define and evaluate all conditions to be used later during the simulation loop. */ - - conditionsArrayRecord.push(candle.begin); - conditionsArrayRecord.push(candle.end); - - for (let j = 0; j < tradingSystem.strategies.length; j++) { - - let strategy = tradingSystem.strategies[j]; - - let positionSize = 0 - let positionRate = 0 - - /* Continue with the rest of the formulas and conditions */ - - let triggerStage = strategy.triggerStage - - if (triggerStage !== undefined) { - - if (triggerStage.triggerOn !== undefined) { - - for (let k = 0; k < triggerStage.triggerOn.situations.length; k++) { - - let situation = triggerStage.triggerOn.situations[k]; - - for (let m = 0; m < situation.conditions.length; m++) { - - let condition = situation.conditions[m]; - let key = j + '-' + 'triggerStage' + '-' + 'triggerOn' + '-' + k + '-' + m; - - if (condition.javascriptCode !== undefined) { - newCondition(key, condition.javascriptCode, chart); - } - } - } - } - - if (triggerStage.triggerOff !== undefined) { - - for (let k = 0; k < triggerStage.triggerOff.situations.length; k++) { - - let situation = triggerStage.triggerOff.situations[k]; - - for (let m = 0; m < situation.conditions.length; m++) { - - let condition = situation.conditions[m]; - let key = j + '-' + 'triggerStage' + '-' + 'triggerOff' + '-' + k + '-' + m; - - if (condition.javascriptCode !== undefined) { - newCondition(key, condition.javascriptCode, chart); - } - } - } - } - - if (triggerStage.takePosition !== undefined) { - - for (let k = 0; k < triggerStage.takePosition.situations.length; k++) { - - let situation = triggerStage.takePosition.situations[k]; - - for (let m = 0; m < situation.conditions.length; m++) { - - let condition = situation.conditions[m]; - let key = j + '-' + 'triggerStage' + '-' + 'takePosition' + '-' + k + '-' + m; - - if (condition.javascriptCode !== undefined) { - newCondition(key, condition.javascriptCode, chart); - } - } - } - } - } - - let openStage = strategy.openStage - - if (openStage !== undefined) { - - /* Default Values*/ - if (baseAsset === bot.market.baseAsset) { - positionSize = balanceBaseAsset; - positionRate = candle.close; - } else { - positionSize = balanceQuotedAsset; - positionRate = candle.close; - } - - let initialDefinition = openStage.initialDefinition - - if (initialDefinition !== undefined) { - - if (tradePositionSize !== 0) { - positionSize = tradePositionSize - } else { - if (initialDefinition.positionSize !== undefined) { - if (initialDefinition.positionSize.formula !== undefined) { - try { - let code = initialDefinition.positionSize.formula.code - positionSize = eval(code); - addCodeToSnapshot(code) - } catch (err) { - initialDefinition.positionSize.formula.error = err.message - } - if (isNaN(positionSize)) { - if (baseAsset === bot.market.baseAsset) { - positionSize = balanceBaseAsset; - } else { - positionSize = balanceQuotedAsset; - } - } else { - if (baseAsset === bot.market.baseAsset) { - if (positionSize > balanceBaseAsset) { positionSize = balanceBaseAsset } - } else { - if (positionSize > balanceQuotedAsset) { positionSize = balanceQuotedAsset } - } - } - } - } - } - - if (tradePositionRate !== 0) { - positionRate = tradePositionRate - } else { - if (initialDefinition.positionRate !== undefined) { - if (initialDefinition.positionRate.formula !== undefined) { - try { - let code = initialDefinition.positionRate.formula.code - positionRate = eval(initialDefinition.positionRate.formula.code); - addCodeToSnapshot(code) - } catch (err) { - initialDefinition.positionRate.formula.error = err.message - } - if (isNaN(positionRate)) { - if (baseAsset === bot.market.baseAsset) { - positionRate = candle.close; - } else { - positionRate = candle.close; - } - } - } - } - } - - if (initialDefinition.stopLoss !== undefined) { - - for (let p = 0; p < initialDefinition.stopLoss.phases.length; p++) { - - let phase = initialDefinition.stopLoss.phases[p]; - - /* Evaluate Formula */ - let formulaValue - let formulaError = '' - - if (phase.formula !== undefined) { - try { - let code = phase.formula.code - formulaValue = eval(code); - addCodeToSnapshot(code) - if (formulaValue === Infinity) { - formulaError = "Formula evaluates to Infinity." - formulaValue = MAX_STOP_LOSS_VALUE - if (stopLossStage === 'Open Stage') { - formulaError = "WARNING: Formula evaluates to Infinity." - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[WARN] runSimulation -> loop -> initialDefinition.stopLoss -> MAX_STOP_LOSS_VALUE -> formulaError = " + formulaError); } - } - } - } catch (err) { - if (phase.formula.code.indexOf('previous') > 0 && err.message.indexOf('of undefined') > 0) { - /* - We are not going to set an error for the casess we are using previous and the error is that the indicator is undefined. - */ - } else { - formulaError = err.message - } - } - if (isNaN(formulaValue)) { formulaValue = 0; } - if (formulaValue < MIN_STOP_LOSS_VALUE) { - formulaValue = MIN_STOP_LOSS_VALUE - if (stopLossStage === 'Open Stage') { - formulaError = "WARNING: Formula is evaluating below the MIN_STOP_LOSS_VALUE." - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[WARN] runSimulation -> loop -> initialDefinition.stopLoss -> MIN_STOP_LOSS_VALUE -> formulaError = " + formulaError); } - } - } - - formulasErrors.push('"' + formulaError + '"') - formulasValues.push(formulaValue) - let key = j + '-' + 'openStage' + '-' + 'initialDefinition' + '-' + 'stopLoss' + '-' + p; - formulas.set(key, formulaValue) - } - - /* next phase event */ - let nextPhaseEvent = phase.nextPhaseEvent; - if (nextPhaseEvent !== undefined) { - - for (let k = 0; k < nextPhaseEvent.situations.length; k++) { - - let situation = nextPhaseEvent.situations[k]; - - for (let m = 0; m < situation.conditions.length; m++) { - - let condition = situation.conditions[m]; - let key = j + '-' + 'openStage' + '-' + 'initialDefinition' + '-' + 'stopLoss' + '-' + p + '-' + k + '-' + m; - - if (condition.javascriptCode !== undefined) { - newCondition(key, condition.javascriptCode, chart); - } - } - } - } - - /* move to phase events */ - for (let n = 0; n < phase.moveToPhaseEvents.length; n++) { - let moveToPhaseEvent = phase.moveToPhaseEvents[n]; - if (moveToPhaseEvent !== undefined) { - - for (let k = 0; k < moveToPhaseEvent.situations.length; k++) { - - let situation = moveToPhaseEvent.situations[k]; - - for (let m = 0; m < situation.conditions.length; m++) { - - let condition = situation.conditions[m]; - let key = j + '-' + 'openStage' + '-' + 'initialDefinition' + '-' + 'stopLoss' + '-' + p + '-' + n + '-' + k + '-' + m; - - if (condition.javascriptCode !== undefined) { - newCondition(key, condition.javascriptCode, chart); - } - } - } - } - } - } - } - - if (initialDefinition.takeProfit !== undefined) { - - for (let p = 0; p < initialDefinition.takeProfit.phases.length; p++) { - - let phase = initialDefinition.takeProfit.phases[p]; - - /* Evaluate Formula */ - let formulaValue - let formulaError = '' - - if (phase.formula !== undefined) { - try { - let code = phase.formula.code - formulaValue = eval(code); - addCodeToSnapshot(code) - if (formulaValue === Infinity) { - formulaValue = MAX_TAKE_PROFIT_VALUE - if (takeProfitStage === 'Open Stage') { - formulaError = "WARNING: Formula evaluates to Infinity." - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[WARN] runSimulation -> loop -> initialDefinition.takeProfit -> MAX_TAKE_PROFIT_VALUE -> formulaError = " + formulaError); } - } - } - } catch (err) { - if (phase.formula.code.indexOf('previous') > 0 && err.message.indexOf('of undefined') > 0) { - /* - We are not going to set an error for the casess we are using previous and the error is that the indicator is undefined. - */ - } else { - formulaError = err.message - } - } - if (isNaN(formulaValue)) { formulaValue = 0; } - if (formulaValue < MIN_TAKE_PROFIT_VALUE) { - formulaValue = MIN_TAKE_PROFIT_VALUE - if (takeProfitStage === 'Open Stage') { - formulaError = "WARNING: Formula is evaluating below the MIN_TAKE_PROFIT_VALUE." - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[WARN] runSimulation -> loop -> initialDefinition.takeProfit -> MIN_TAKE_PROFIT_VALUE -> formulaError = " + formulaError); } - } - } - - formulasErrors.push('"' + formulaError + '"') - formulasValues.push(formulaValue) - let key = j + '-' + 'openStage' + '-' + 'initialDefinition' + '-' + 'takeProfit' + '-' + p; - formulas.set(key, formulaValue) - } - - /* next phase event */ - let nextPhaseEvent = phase.nextPhaseEvent; - if (nextPhaseEvent !== undefined) { - - for (let k = 0; k < nextPhaseEvent.situations.length; k++) { - - let situation = nextPhaseEvent.situations[k]; - - for (let m = 0; m < situation.conditions.length; m++) { - - let condition = situation.conditions[m]; - let key = j + '-' + 'openStage' + '-' + 'initialDefinition' + '-' + 'takeProfit' + '-' + p + '-' + k + '-' + m; - - if (condition.javascriptCode !== undefined) { - newCondition(key, condition.javascriptCode, chart); - } - } - } - } - - /* move to phase events */ - for (let n = 0; n < phase.moveToPhaseEvents.length; n++) { - let moveToPhaseEvent = phase.moveToPhaseEvents[n]; - if (moveToPhaseEvent !== undefined) { - - for (let k = 0; k < moveToPhaseEvent.situations.length; k++) { - - let situation = moveToPhaseEvent.situations[k]; - - for (let m = 0; m < situation.conditions.length; m++) { - - let condition = situation.conditions[m]; - let key = j + '-' + 'openStage' + '-' + 'initialDefinition' + '-' + 'takeProfit' + '-' + p + '-' + n + '-' + k + '-' + m; - - if (condition.javascriptCode !== undefined) { - newCondition(key, condition.javascriptCode, chart); - } - } - } - } - } - } - } - } - - strategy.positionSize = positionSize - strategy.positionRate = positionRate - } - - let manageStage = strategy.manageStage - - if (manageStage !== undefined) { - - if (manageStage.stopLoss !== undefined) { - - for (let p = 0; p < manageStage.stopLoss.phases.length; p++) { - - let phase = manageStage.stopLoss.phases[p]; - - /* Evaluate Formula */ - let formulaValue - let formulaError = '' - - if (phase.formula !== undefined) { - try { - let code = phase.formula.code - formulaValue = eval(code); - addCodeToSnapshot(code) - if (formulaValue === Infinity) { - formulaError = "" - formulaValue = MAX_STOP_LOSS_VALUE - if (stopLossStage === 'Manage Stage') { - formulaError = "WARNING: Formula evaluates to Infinity." - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[WARN] runSimulation -> loop -> manageStage.stopLoss -> MAX_STOP_LOSS_VALUE -> formulaError = " + formulaError); } - } - } - } catch (err) { - if (phase.formula.code.indexOf('previous') > 0 && err.message.indexOf('of undefined') > 0) { - /* - We are not going to set an error for the casess we are using previous and the error is that the indicator is undefined. - */ - } else { - formulaError = err.message - } - } - if (isNaN(formulaValue)) { formulaValue = 0; } - if (formulaValue < MIN_STOP_LOSS_VALUE) { - formulaValue = MIN_STOP_LOSS_VALUE - if (stopLossStage === 'Manage Stage') { - formulaError = "WARNING: Formula is evaluating below the MIN_STOP_LOSS_VALUE." - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[WARN] runSimulation -> loop -> manageStage.stopLoss -> MIN_STOP_LOSS_VALUE -> formulaError = " + formulaError); } - } - } - - formulasErrors.push('"' + formulaError + '"') - formulasValues.push(formulaValue) - let key = j + '-' + 'manageStage' + '-' + 'stopLoss' + '-' + p; - formulas.set(key, formulaValue) - } - - /* next phase event */ - let nextPhaseEvent = phase.nextPhaseEvent; - if (nextPhaseEvent !== undefined) { - - for (let k = 0; k < nextPhaseEvent.situations.length; k++) { - - let situation = nextPhaseEvent.situations[k]; - - for (let m = 0; m < situation.conditions.length; m++) { - - let condition = situation.conditions[m]; - let key = j + '-' + 'manageStage' + '-' + 'stopLoss' + '-' + p + '-' + k + '-' + m; - - if (condition.javascriptCode !== undefined) { - newCondition(key, condition.javascriptCode, chart); - } - } - } - } - - /* move to phase events */ - for (let n = 0; n < phase.moveToPhaseEvents.length; n++) { - let moveToPhaseEvent = phase.moveToPhaseEvents[n]; - if (moveToPhaseEvent !== undefined) { - - for (let k = 0; k < moveToPhaseEvent.situations.length; k++) { - - let situation = moveToPhaseEvent.situations[k]; - - for (let m = 0; m < situation.conditions.length; m++) { - - let condition = situation.conditions[m]; - let key = j + '-' + 'manageStage' + '-' + 'stopLoss' + '-' + p + '-' + n + '-' + k + '-' + m; - - if (condition.javascriptCode !== undefined) { - newCondition(key, condition.javascriptCode, chart); - } - } - } - } - } - } - } - - if (manageStage.takeProfit !== undefined) { - - for (let p = 0; p < manageStage.takeProfit.phases.length; p++) { - - let phase = manageStage.takeProfit.phases[p]; - - /* Evaluate Formula */ - let formulaValue - let formulaError = '' - - if (phase.formula !== undefined) { - try { - let code = phase.formula.code - formulaValue = eval(code); - addCodeToSnapshot(code) - if (formulaValue === Infinity) { - formulaError = "Formula evaluates to Infinity." - formulaValue = MAX_TAKE_PROFIT_VALUE - if (takeProfitStage === 'Manage Stage') { - formulaError = "WARNING: Formula evaluates to Infinity." - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[WARN] runSimulation -> loop -> manageStage.takeProfit -> MAX_TAKE_PROFIT_VALUE -> formulaError = " + formulaError); } - } - } - } catch (err) { - if (phase.formula.code.indexOf('previous') > 0 && err.message.indexOf('of undefined') > 0) { - /* - We are not going to set an error for the casess we are using previous and the error is that the indicator is undefined. - */ - } else { - formulaError = err.message - } - } - if (isNaN(formulaValue)) { formulaValue = 0; } - if (formulaValue < MIN_TAKE_PROFIT_VALUE) { - formulaValue = MIN_TAKE_PROFIT_VALUE - if (takeProfitStage === 'Manage Stage') { - formulaError = "WARNING: Formula is evaluating below the MIN_TAKE_PROFIT_VALUE." - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[WARN] runSimulation -> loop -> manageStage.takeProfit -> MIN_TAKE_PROFIT_VALUE -> formulaError = " + formulaError); } - } - } - - formulasErrors.push('"' + formulaError + '"') - formulasValues.push(formulaValue) - let key = j + '-' + 'manageStage' + '-' + 'takeProfit' + '-' + p; - formulas.set(key, formulaValue) - } - - /* next phase event */ - let nextPhaseEvent = phase.nextPhaseEvent; - if (nextPhaseEvent !== undefined) { - - for (let k = 0; k < nextPhaseEvent.situations.length; k++) { - - let situation = nextPhaseEvent.situations[k]; - - for (let m = 0; m < situation.conditions.length; m++) { - - let condition = situation.conditions[m]; - let key = j + '-' + 'manageStage' + '-' + 'takeProfit' + '-' + p + '-' + k + '-' + m; - - if (condition.javascriptCode !== undefined) { - newCondition(key, condition.javascriptCode, chart); - } - } - } - } - - /* move to phase events */ - for (let n = 0; n < phase.moveToPhaseEvents.length; n++) { - let moveToPhaseEvent = phase.moveToPhaseEvents[n]; - if (moveToPhaseEvent !== undefined) { - - for (let k = 0; k < moveToPhaseEvent.situations.length; k++) { - - let situation = moveToPhaseEvent.situations[k]; - - for (let m = 0; m < situation.conditions.length; m++) { - - let condition = situation.conditions[m]; - let key = j + '-' + 'manageStage' + '-' + 'takeProfit' + '-' + p + '-' + n + '-' + k + '-' + m; - - if (condition.javascriptCode !== undefined) { - newCondition(key, condition.javascriptCode, chart); - } - } - } - } - } - } - } - } - - function newCondition(key, node, chart) { - - let condition; - let error = '' - let value - - try { - let code = node.code - value = eval(code); - addCodeToSnapshot(code) - } catch (err) { - /* - One possible error is that the conditions references a .previous that is undefined. For this - reason and others, we will simply set the value to false. - */ - value = false - - if (node.code.indexOf('previous') > -1 && err.message.indexOf('of undefined') > -1 || - node.code.indexOf('chart') > -1 && err.message.indexOf('of undefined') > -1 - ) { - /* - We are not going to set an error for the casess we are using previous and the error is that the indicator is undefined. - */ - } else { - node.error = err.message + " @ " + (new Date(candle.begin)).toLocaleString() - } - } - - condition = { - key: key, - value: value - }; - - conditions.set(condition.key, condition); - - if (condition.value) { - conditionsArrayValues.push(1); - } else { - conditionsArrayValues.push(0); - } - } - } - - /* Trigger On Conditions */ - if ( - strategyStage === 'No Stage' && - currentStrategyIndex === -1 - ) { - let minimumBalance - let maximumBalance - let balance - - if (baseAsset === bot.market.baseAsset) { - balance = balanceBaseAsset - minimumBalance = bot.VALUES_TO_USE.minimumBalanceA - maximumBalance = bot.VALUES_TO_USE.maximumBalanceA - } else { - balance = balanceQuotedAsset - minimumBalance = bot.VALUES_TO_USE.minimumBalanceB - maximumBalance = bot.VALUES_TO_USE.maximumBalanceB - } - - let stopRunningDate = new Date(candle.begin) - if (balance <= minimumBalance) { - tradingSystem.error = "Min Balance @ " + stopRunningDate.toLocaleString() - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> " + tradingSystem.error ); } - afterLoop() - return - } - - if (balance >= maximumBalance) { - tradingSystem.error = "Max Balance @ " + stopRunningDate.toLocaleString() - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> " + tradingSystem.error); } - afterLoop() - return - } - - /* - Here we need to pick a strategy, or if there is not suitable strategy for the current - market conditions, we pass until the next period. - - To pick a new strategy we will evaluate what we call the trigger on. Once we enter - into one strategy, we will ignore market conditions for others. However there is also - a strategy trigger off which can be hit before taking a position. If hit, we would - be outside a strategy again and looking for the condition to enter all over again. - - */ - - for (let j = 0; j < tradingSystem.strategies.length; j++) { - - if ( - strategyStage !== 'No Stage' || - currentStrategyIndex !== -1 - ) {continue} - - let strategy = tradingSystem.strategies[j]; - - let triggerStage = strategy.triggerStage - - if (triggerStage !== undefined) { - - if (triggerStage.triggerOn !== undefined) { - - for (let k = 0; k < triggerStage.triggerOn.situations.length; k++) { - - let situation = triggerStage.triggerOn.situations[k]; - let passed - if (situation.conditions.length > 0) { - passed = true - } - - for (let m = 0; m < situation.conditions.length; m++) { - - let condition = situation.conditions[m]; - let key = j + '-' + 'triggerStage' + '-' + 'triggerOn' + '-' + k + '-' + m; - - let value = false - if (conditions.get(key) !== undefined) { - value = conditions.get(key).value; - } - - if (value === false) { passed = false; } - } - - if (passed) { - - strategyStage = 'Trigger Stage'; - checkAnnouncements(triggerStage) - - currentStrategyIndex = j; - currentStrategy.begin = candle.begin; - currentStrategy.beginRate = candle.min; - currentStrategy.endRate = candle.min; // In case the strategy does not get exited - currentStrategy.triggerOnSituation = situation.name - currentStrategy.name = strategy.name - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.strategyStage = strategyStage; - yesterday.currentStrategyIndex = currentStrategyIndex; - yesterday.currentStrategy.begin = currentStrategy.begin; - yesterday.currentStrategy.beginRate = currentStrategy.beginRate; - yesterday.currentStrategy.endRate = currentStrategy.endRate; - yesterday.currentStrategy.triggerOnSituation = currentStrategy.triggerOnSituation; - yesterday.currentStrategy.name = currentStrategy.name; - } - } - - distanceToLast.triggerOn = 1; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.distanceToLast.triggerOn = distanceToLast.triggerOn - } - } - - checkAnnouncements(triggerStage.triggerOn) - saveAsLastTriggerOnSnapshot = true - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Switching to Trigger Stage because conditions at Trigger On Event were met."); } - break; - } - } - } - } - } - - } - - /* Trigger Off Condition */ - if (strategyStage === 'Trigger Stage') { - - let strategy = tradingSystem.strategies[currentStrategyIndex]; - - let triggerStage = strategy.triggerStage - - if (triggerStage !== undefined) { - - if (triggerStage.triggerOff !== undefined) { - - for (let k = 0; k < triggerStage.triggerOff.situations.length; k++) { - - let situation = triggerStage.triggerOff.situations[k]; - let passed - if (situation.conditions.length > 0) { - passed = true - } - - for (let m = 0; m < situation.conditions.length; m++) { - - let condition = situation.conditions[m]; - let key = currentStrategyIndex + '-' + 'triggerStage' + '-' + 'triggerOff' + '-' + k + '-' + m; - - let value = false - if (conditions.get(key) !== undefined) { - value = conditions.get(key).value; - } - - if (value === false) { passed = false; } - } - - if (passed) { - - currentStrategy.number = currentStrategyIndex - currentStrategy.end = candle.end; - currentStrategy.endRate = candle.min; - currentStrategy.status = 1; // This means the strategy is closed, i.e. that has a begin and end. - strategyStage = 'No Stage'; - currentStrategyIndex = -1; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.currentStrategy.number = currentStrategy.number; - yesterday.currentStrategy.end = currentStrategy.end; - yesterday.currentStrategy.endRate = currentStrategy.endRate; - yesterday.currentStrategy.status = currentStrategy.status; - yesterday.strategyStage = strategyStage; - yesterday.currentStrategyIndex = currentStrategyIndex; - } - } - - distanceToLast.triggerOff = 1; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.distanceToLast.triggerOff = distanceToLast.triggerOff - } - } - - checkAnnouncements(triggerStage.triggerOff) - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Switching to No Stage because conditions at the Trigger Off Event were met."); } - break; - } - } - } - } - } - - /* Take Position Condition */ - if (strategyStage === 'Trigger Stage') { - - let strategy = tradingSystem.strategies[currentStrategyIndex]; - - let triggerStage = strategy.triggerStage - - if (triggerStage !== undefined) { - - if (triggerStage.takePosition !== undefined) { - - for (let k = 0; k < triggerStage.takePosition.situations.length; k++) { - - let situation = triggerStage.takePosition.situations[k]; - let passed - if (situation.conditions.length > 0) { - passed = true - } - - for (let m = 0; m < situation.conditions.length; m++) { - - let condition = situation.conditions[m]; - let key = currentStrategyIndex + '-' + 'triggerStage' + '-' + 'takePosition' + '-' + k + '-' + m; - - let value = false - if (conditions.get(key) !== undefined) { - value = conditions.get(key).value; - } - - if (value === false) { passed = false; } - } - - if (passed) { - - type = '"Take Position"'; - - strategyStage = 'Open Stage'; - checkAnnouncements(strategy.openStage) - - stopLossStage = 'Open Stage'; - takeProfitStage = 'Open Stage'; - stopLossPhase = 0; - takeProfitPhase = 0; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.strategyStage = strategyStage; - yesterday.stopLossStage = stopLossStage; - yesterday.takeProfitStage = takeProfitStage; - yesterday.stopLossPhase = stopLossPhase; - yesterday.takeProfitPhase = takeProfitPhase; - } - } - - takePositionNow = true - currentTrade.takePositionSituation = situation.name - - checkAnnouncements(triggerStage.takePosition) - saveAsLastTakePositionSnapshot = true - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Conditions at the Take Position Event were met."); } - break; - } - } - } - } - } - - /* Stop Loss Management */ - if ( - (strategyStage === 'Open Stage' || strategyStage === 'Manage Stage') && - takePositionNow !== true - ) { - - checkStopPhases() - calculateStopLoss(); - - } - - function checkStopPhases() { - - let strategy = tradingSystem.strategies[currentStrategyIndex]; - - let openStage = strategy.openStage - let manageStage = strategy.manageStage - let parentNode - let j = currentStrategyIndex - let stageKey - let initialDefinitionKey = '' - let p - - if (stopLossStage === 'Open Stage' && openStage !== undefined) { - if (openStage.initialDefinition !== undefined) { - if (openStage.initialDefinition.stopLoss !== undefined) { - parentNode = openStage.initialDefinition - initialDefinitionKey = '-' + 'initialDefinition' - stageKey = 'openStage' - p = stopLossPhase - } - } - } - - if (stopLossStage === 'Manage Stage' && manageStage !== undefined) { - if (manageStage.stopLoss !== undefined) { - parentNode = manageStage - stageKey = 'manageStage' - p = stopLossPhase - 1 - } - } - - if (parentNode !== undefined) { - let phase = parentNode.stopLoss.phases[p]; - - /* Check the next Phase Event. */ - let nextPhaseEvent = phase.nextPhaseEvent; - if (nextPhaseEvent !== undefined) { - - for (let k = 0; k < nextPhaseEvent.situations.length; k++) { - - let situation = nextPhaseEvent.situations[k]; - let passed - if (situation.conditions.length > 0) { - passed = true - } - - for (let m = 0; m < situation.conditions.length; m++) { - - let condition = situation.conditions[m]; - let key = j + '-' + stageKey + initialDefinitionKey + '-' + 'stopLoss' + '-' + p + '-' + k + '-' + m; - - let value = false - if (conditions.get(key) !== undefined) { - value = conditions.get(key).value; - } - - if (value === false) { passed = false; } - } - - if (passed) { - - stopLossPhase++; - stopLossStage = 'Manage Stage' - if (takeProfitPhase > 0) { - strategyStage = 'Manage Stage' - checkAnnouncements(manageStage, 'Take Profit') - } - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.stopLossPhase = stopLossPhase; - yesterday.stopLossStage = stopLossStage; - yesterday.strategyStage = strategyStage; - } - } - - checkAnnouncements(nextPhaseEvent) - return; - } - } - } - - /* Check the Move to Phase Events. */ - for (let n = 0; n < phase.moveToPhaseEvents.length; n++) { - let moveToPhaseEvent = phase.moveToPhaseEvents[n]; - if (moveToPhaseEvent !== undefined) { - - for (let k = 0; k < moveToPhaseEvent.situations.length; k++) { - - let situation = moveToPhaseEvent.situations[k]; - let passed - if (situation.conditions.length > 0) { - passed = true - } - - for (let m = 0; m < situation.conditions.length; m++) { - - let condition = situation.conditions[m]; - let key = j + '-' + stageKey + initialDefinitionKey + '-' + 'stopLoss' + '-' + p + '-' + n + '-' + k + '-' + m; - - let value = false - if (conditions.get(key) !== undefined) { - value = conditions.get(key).value; - } - - if (value === false) { passed = false; } - } - - if (passed) { - - let moveToPhase = moveToPhaseEvent.referenceParent - if (moveToPhase !== undefined) { - for (let q = 0; q < parentNode.stopLoss.phases.length; q++) { - if (parentNode.stopLoss.phases[q].id === moveToPhase.id) { - stopLossPhase = q + 1 - } - } - } else { - moveToPhaseEvent.error = "This Node needs to reference a Phase." - continue - } - - stopLossStage = 'Manage Stage' - if (takeProfitPhase > 0) { - strategyStage = 'Manage Stage' - checkAnnouncements(manageStage, 'Take Profit') - } - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.stopLossPhase = stopLossPhase; - yesterday.stopLossStage = stopLossStage; - yesterday.strategyStage = strategyStage; - } - } - - checkAnnouncements(moveToPhaseEvent) - return; - } - } - } - } - } - } - - function calculateStopLoss() { - - let strategy = tradingSystem.strategies[currentStrategyIndex]; - let openStage = strategy.openStage - let manageStage = strategy.manageStage - let phase - let key - - if (stopLossStage === 'Open Stage' && openStage !== undefined) { - if (openStage.initialDefinition !== undefined) { - if (openStage.initialDefinition.stopLoss !== undefined) { - phase = openStage.initialDefinition.stopLoss.phases[stopLossPhase]; - key = currentStrategyIndex + '-' + 'openStage' + '-' + 'initialDefinition' + '-' + 'stopLoss' + '-' + (stopLossPhase); - } - } - } - - if (stopLossStage === 'Manage Stage' && manageStage !== undefined) { - if (manageStage.stopLoss !== undefined) { - phase = manageStage.stopLoss.phases[stopLossPhase - 1]; - key = currentStrategyIndex + '-' + 'manageStage' + '-' + 'stopLoss' + '-' + (stopLossPhase - 1); - } - } - - if (phase !== undefined) { - if (phase.formula !== undefined) { - let previousValue = stopLoss - - stopLoss = formulas.get(key) - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.stopLoss = stopLoss - } - } - - if (stopLoss !== previousValue) { - checkAnnouncements(phase, stopLoss) - } - } - } - } - - /* Take Profit Management */ - if ( - (strategyStage === 'Open Stage' || strategyStage === 'Manage Stage') && - takePositionNow !== true - ) { - - checkTakeProfitPhases(); - calculateTakeProfit(); - - } - - function checkTakeProfitPhases() { - - let strategy = tradingSystem.strategies[currentStrategyIndex]; - - let openStage = strategy.openStage - let manageStage = strategy.manageStage - let parentNode - let j = currentStrategyIndex - let stageKey - let initialDefinitionKey = '' - let p - - if (takeProfitStage === 'Open Stage' && openStage !== undefined) { - if (openStage.initialDefinition !== undefined) { - if (openStage.initialDefinition.takeProfit !== undefined) { - parentNode = openStage.initialDefinition - initialDefinitionKey = '-' + 'initialDefinition' - stageKey = 'openStage' - p = takeProfitPhase - } - } - } - - if (takeProfitStage === 'Manage Stage' && manageStage !== undefined) { - if (manageStage.takeProfit !== undefined) { - parentNode = manageStage - stageKey = 'manageStage' - p = takeProfitPhase - 1 - } - } - - if (parentNode !== undefined) { - let phase = parentNode.takeProfit.phases[p]; - if (phase === undefined) {return} // trying to jump to a phase that does not exists. - - /* Check the next Phase Event. */ - let nextPhaseEvent = phase.nextPhaseEvent; - if (nextPhaseEvent !== undefined) { - - for (let k = 0; k < nextPhaseEvent.situations.length; k++) { - - let situation = nextPhaseEvent.situations[k]; - let passed - if (situation.conditions.length > 0) { - passed = true - } - - for (let m = 0; m < situation.conditions.length; m++) { - - let condition = situation.conditions[m]; - let key = j + '-' + stageKey + initialDefinitionKey + '-' + 'takeProfit' + '-' + p + '-' + k + '-' + m; - - let value = false - if (conditions.get(key) !== undefined) { - value = conditions.get(key).value; - } - - if (value === false) { passed = false; } - } - - if (passed) { - - takeProfitPhase++; - takeProfitStage = 'Manage Stage' - if (stopLossPhase > 0) { - strategyStage = 'Manage Stage' - checkAnnouncements(manageStage, 'Stop') - } - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.takeProfitPhase = takeProfitPhase; - yesterday.takeProfitStage = takeProfitStage; - yesterday.strategyStage = strategyStage; - } - } - - checkAnnouncements(nextPhaseEvent) - return; - } - } - } - - /* Check the Move to Phase Events. */ - for (let n = 0; n < phase.moveToPhaseEvents.length; n++) { - let moveToPhaseEvent = phase.moveToPhaseEvents[n]; - if (moveToPhaseEvent !== undefined) { - - for (let k = 0; k < moveToPhaseEvent.situations.length; k++) { - - let situation = moveToPhaseEvent.situations[k]; - let passed - if (situation.conditions.length > 0) { - passed = true - } - - for (let m = 0; m < situation.conditions.length; m++) { - - let condition = situation.conditions[m]; - let key = j + '-' + stageKey + initialDefinitionKey + '-' + 'takeProfit' + '-' + p + '-' + n + '-' + k + '-' + m; - - let value = false - if (conditions.get(key) !== undefined) { - value = conditions.get(key).value; - } - - if (value === false) { passed = false; } - } - - if (passed) { - - let moveToPhase = moveToPhaseEvent.referenceParent - if (moveToPhase !== undefined) { - for (let q = 0; q < parentNode.takeProfit.phases.length; q++) { - if (parentNode.takeProfit.phases[q].id === moveToPhase.id) { - takeProfitPhase = q + 1 - } - } - } else { - moveToPhaseEvent.error = "This Node needs to reference a Phase." - continue - } - - takeProfitStage = 'Manage Stage' - if (stopLossPhase > 0) { - strategyStage = 'Manage Stage' - checkAnnouncements(manageStage, 'Stop') - } - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.takeProfitPhase = takeProfitPhase; - yesterday.takeProfitStage = takeProfitStage; - yesterday.strategyStage = strategyStage; - } - } - - checkAnnouncements(moveToPhaseEvent) - return; - } - } - } - } - } - } - - function calculateTakeProfit() { - - let strategy = tradingSystem.strategies[currentStrategyIndex]; - let openStage = strategy.openStage - let manageStage = strategy.manageStage - let phase - let key - - if (takeProfitStage === 'Open Stage' && openStage !== undefined) { - if (openStage.initialDefinition !== undefined) { - if (openStage.initialDefinition.takeProfit !== undefined) { - phase = openStage.initialDefinition.takeProfit.phases[takeProfitPhase]; - key = currentStrategyIndex + '-' + 'openStage' + '-' + 'initialDefinition' + '-' + 'takeProfit' + '-' + (takeProfitPhase); - } - } - } - - if (takeProfitStage === 'Manage Stage' && manageStage !== undefined) { - if (manageStage.takeProfit !== undefined) { - phase = manageStage.takeProfit.phases[takeProfitPhase - 1]; - key = currentStrategyIndex + '-' + 'manageStage' + '-' + 'takeProfit' + '-' + (takeProfitPhase - 1); - } - } - - if (phase !== undefined) { - if (phase.formula !== undefined) { - - let previousValue = stopLoss - - takeProfit = formulas.get(key) - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.takeProfit = takeProfit - } - } - - if (takeProfit !== previousValue) { - checkAnnouncements(phase, takeProfit) - } - } - } - } - - /* Keeping Position Counters Up-to-date */ - if ( - (strategyStage === 'Open Stage' || strategyStage === 'Manage Stage') - ) { - - if (takePositionNow === true) { - positionPeriods = 0 - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.positionPeriods = 0 - } - } - } - - positionPeriods++; - positionDays = positionPeriods * timeFrame / ONE_DAY_IN_MILISECONDS; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.positionPeriods = positionPeriods - } - } - } else { - positionPeriods = 0 - positionDays = 0 - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.positionPeriods = 0 - } - } - } - - /* Keeping Distance Counters Up-to-date */ - if ( - distanceToLast.triggerOn > 0 // with this we avoind counting before the first event happens. - ) { - distanceToLast.triggerOn++; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.distanceToLast.triggerOn = distanceToLast.triggerOn - } - } - } - - if ( - distanceToLast.triggerOff > 0 // with this we avoind counting before the first event happens. - ) { - distanceToLast.triggerOff++; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.distanceToLast.triggerOff = distanceToLast.triggerOff - } - } - } - - if ( - distanceToLast.takePosition > 0 // with this we avoind counting before the first event happens. - ) { - distanceToLast.takePosition++; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.distanceToLast.takePosition = distanceToLast.takePosition - } - } - } - - if ( - distanceToLast.closePosition > 0 // with this we avoind counting before the first event happens. - ) { - distanceToLast.closePosition++; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.distanceToLast.takePosition = distanceToLast.closePosition - } - } - } - - /* Checking if Stop or Take Profit were hit */ - if ( - (strategyStage === 'Open Stage' || strategyStage === 'Manage Stage') && - takePositionNow !== true - ) { - let strategy = tradingSystem.strategies[currentStrategyIndex]; - - /* Checking what happened since the last execution. We need to know if the Stop Loss - or our Take Profit were hit. */ - - /* Stop Loss condition: Here we verify if the Stop Loss was hitted or not. */ - - if ((baseAsset === bot.market.baseAsset && candle.max >= stopLoss) || (baseAsset !== bot.market.baseAsset && candle.min <= stopLoss)) { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Stop Loss was hit."); } - /* - Hit Point Validation - - This prevents misscalculations when a formula places the stop loss in this case way beyond the market price. - If we take the stop loss value at those situation would be a huge distortion of facts. - */ - - if (baseAsset === bot.market.baseAsset) { - if (stopLoss < candle.min) { - stopLoss = candle.min - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.stopLoss = stopLoss - } - } - } - } else { - if (stopLoss > candle.max) { - stopLoss = candle.max - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.stopLoss = stopLoss - } - } - } - } - - let slippedStopLoss = stopLoss - - /* Apply the Slippage */ - let slippageAmount = slippedStopLoss * bot.VALUES_TO_USE.slippage.stopLoss / 100 - - if (baseAsset === bot.market.baseAsset) { - slippedStopLoss = slippedStopLoss + slippageAmount - } else { - slippedStopLoss = slippedStopLoss - slippageAmount - } - - closeRate = slippedStopLoss; - - marketRate = closeRate; - type = '"Close@StopLoss"'; - strategyStage = 'Close Stage'; - checkAnnouncements(strategy.closeStage, 'Stop') - - stopLossStage = 'No Stage'; - takeProfitStage = 'No Stage'; - currentTrade.end = candle.end; - currentTrade.status = 1; - currentTrade.exitType = 1; - currentTrade.endRate = closeRate; - - closePositionNow = true; - addToSnapshots = true - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.strategyStage = strategyStage; - yesterday.stopLossStage = stopLossStage; - yesterday.takeProfitStage = takeProfitStage; - yesterday.currentTrade.end = currentTrade.end; - yesterday.currentTrade.status = currentTrade.status; - yesterday.currentTrade.exitType = currentTrade.exitType; - yesterday.currentTrade.endRate = currentTrade.endRate; - } - } - } - - /* Take Profit condition: Here we verify if the Take Profit was hit or not. */ - - if ((baseAsset === bot.market.baseAsset && candle.min <= takeProfit) || (baseAsset !== bot.market.baseAsset && candle.max >= takeProfit)) { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Take Profit was hit."); } - /* - Hit Point Validation: - - This prevents misscalculations when a formula places the take profit in this case way beyond the market price. - If we take the stop loss value at those situation would be a huge distortion of facts. - */ - - if (baseAsset === bot.market.baseAsset) { - if (takeProfit > candle.max) { - takeProfit = candle.max - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.takeProfit = takeProfit - } - } - } - } else { - if (takeProfit < candle.min) { - takeProfit = candle.min - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.takeProfit = takeProfit - } - } - } - } - - let slippedTakeProfit = takeProfit - /* Apply the Slippage */ - let slippageAmount = slippedTakeProfit * bot.VALUES_TO_USE.slippage.takeProfit / 100 - - if (baseAsset === bot.market.baseAsset) { - slippedTakeProfit = slippedTakeProfit + slippageAmount - } else { - slippedTakeProfit = slippedTakeProfit - slippageAmount - } - - closeRate = slippedTakeProfit; - - marketRate = closeRate; - type = '"Close@TakeProfit"'; - strategyStage = 'Close Stage'; - checkAnnouncements(strategy.closeStage, 'Take Profit') - - stopLossStage = 'No Stage'; - takeProfitStage = 'No Stage'; - - currentTrade.end = candle.end; - currentTrade.status = 1; - currentTrade.exitType = 2; - currentTrade.endRate = closeRate; - - closePositionNow = true; - addToSnapshots = true - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.strategyStage = strategyStage; - yesterday.stopLossStage = stopLossStage; - yesterday.takeProfitStage = takeProfitStage; - - yesterday.currentTrade.end = currentTrade.end; - yesterday.currentTrade.status = currentTrade.status; - yesterday.currentTrade.exitType = currentTrade.exitType; - yesterday.currentTrade.endRate = currentTrade.endRate; - } - } - } - } - - /* Taking a Position */ - if ( - takePositionNow === true - ) { - takePositionNow = false - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> takePositionNow -> Entering code block."); } - - /* Inicializing this counter */ - distanceToLast.takePosition = 1; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.distanceToLast.takePosition = distanceToLast.takePosition - } - } - - /* Position size and rate */ - let strategy = tradingSystem.strategies[currentStrategyIndex]; - - tradePositionSize = strategy.positionSize; - tradePositionRate = strategy.positionRate; - - /* We take what was calculated at the formula and apply the slippage. */ - let slippageAmount = tradePositionRate * bot.VALUES_TO_USE.slippage.positionRate / 100 - - if (baseAsset === bot.market.baseAsset) { - tradePositionRate = tradePositionRate - slippageAmount - } else { - tradePositionRate = tradePositionRate + slippageAmount - } - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.tradePositionSize = tradePositionSize; - yesterday.tradePositionRate = tradePositionRate; - } - } - - /* Update the trade record information. */ - currentTrade.begin = candle.begin; - currentTrade.beginRate = tradePositionRate; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.currentTrade.begin = currentTrade.begin; - yesterday.currentTrade.beginRate = currentTrade.beginRate; - } - } - - /* Check if we need to execute. */ - if (currentCandleIndex > candles.length - 10) { /* Only at the last candles makes sense to check if we are in live mode or not.*/ - /* Check that we are in LIVE MODE */ - if (bot.startMode === "Live") { - /* We see if we need to put the actual order at the exchange. */ - if (interExecutionMemory.executionContext !== undefined) { - switch (interExecutionMemory.executionContext.status) { - case "Without a Position": { // We need to put the order because It was not put yet. - if (strategy.openStage !== undefined) { - if (strategy.openStage.openExecution !== undefined) { - putOpeningOrder() - return - } - } - break - } - case "Position Closed": { // Waiting for a confirmation that the position was closed. - if (strategy.openStage !== undefined) { - if (strategy.openStage.openExecution !== undefined) { - putOpeningOrder() - return - } - } - break - } - case "Taking Position": { // Waiting for a confirmation that the position was taken. - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> takePositionNow -> Exiting code block because status is Taking Position."); } - break - } - case "In a Position": { // This should mean that we already put the order at the exchange. - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> takePositionNow -> Exiting code block because status is In a Position."); } - break - } - } - } else { // The context does not exist so it means we are not in a position. - if (strategy.openStage !== undefined) { - if (strategy.openStage.openExecution !== undefined) { - putOpeningOrder() - return - } - } - } - } else { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> takePositionNow -> Not trading live."); } - } - } else { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> takePositionNow -> Not the last closed candle."); } - } - - takePositionAtSimulation() - - return - - function putOpeningOrder() { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> putOpeningOrder -> Entering function."); } - - /* We wont take a position unless we are withing the bot.VALUES_TO_USE.timeRange.initialDatetime and the bot.VALUES_TO_USE.timeRange.finalDatetime range */ - if (bot.VALUES_TO_USE.timeRange.initialDatetime !== undefined) { - if (candle.end < bot.VALUES_TO_USE.timeRange.initialDatetime.valueOf()) { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> putOpeningOrder -> Not placing the trade at the exchange because current candle ends before the start date. -> bot.VALUES_TO_USE.timeRange.initialDatetime = " + bot.VALUES_TO_USE.timeRange.initialDatetime); } - takePositionAtSimulation() - return; - } - } - - /*We wont take a position if we are past the final datetime */ - if (bot.VALUES_TO_USE.timeRange.finalDatetime !== undefined) { - if (candle.begin > bot.VALUES_TO_USE.timeRange.finalDatetime.valueOf()) { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> putOpeningOrder -> Not placing the trade at the exchange because current candle begins after the end date. -> bot.VALUES_TO_USE.timeRange.finalDatetime = " + bot.VALUES_TO_USE.timeRange.finalDatetime); } - takePositionAtSimulation() - return; - } - } - - /* Mechanism to avoid putting the same order over and over again at different executions of the simulation engine. */ - if (interExecutionMemory.executionContext !== undefined) { - if (interExecutionMemory.executionContext.periods !== undefined) { - if (periods <= interExecutionMemory.executionContext.periods) { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> putOpeningOrder -> Not placing the trade at the exchange because it was already placed at a previous execution."); } - takePositionAtSimulation() - return; - } - } - } - - /* We are not going to place orders based on outdated information. The next filter prevents firing orders when backtesting. */ - if (currentDay) { - let today = new Date(Math.trunc((new Date().valueOf()) / ONE_DAY_IN_MILISECONDS) * ONE_DAY_IN_MILISECONDS) - let processDay = new Date(Math.trunc(currentDay.valueOf() / ONE_DAY_IN_MILISECONDS) * ONE_DAY_IN_MILISECONDS) - if (today.valueOf() !== processDay.valueOf()) { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> putOpeningOrder -> Not placing the trade at the exchange because the current candle belongs to the previous day and that is considered simulation and not live trading."); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> putOpeningOrder -> today = " + today); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> putOpeningOrder -> processDay = " + processDay); } - takePositionAtSimulation() - return; - } - } - - let orderPrice - let amountA - let amountB - let orderSide - - - if (baseAsset === bot.market.baseAsset) { - orderSide = "sell" - - orderPrice = tradePositionRate - - amountA = tradePositionSize * orderPrice - amountB = tradePositionSize - - } else { - orderSide = "buy" - - orderPrice = tradePositionRate - - amountA = tradePositionSize - amountB = tradePositionSize / orderPrice - - } - - interExecutionMemory.executionContext = { - status: "Taking Position", - periods: periods, - } - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> putOpeningOrder -> Ready to create order."); } - exchangeAPI.createOrder(bot.market, orderSide, orderPrice, amountA, amountB, onOrderCreated) - - function onOrderCreated(err, order) { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> putOpeningOrder -> onOrderCreated -> Entering function."); } - - try { - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> putOpeningOrder -> onOrderCreated -> DEFAULT_OK_RESPONSE "); } - interExecutionMemory.executionContext = { - status: "In a Position", - periods: periods, - amountA: amountA, - amountB: amountB, - orderId: order.id - } - takePositionAtSimulation() - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> putOpeningOrder -> onOrderCreated -> DEFAULT_FAIL_RESPONSE "); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[ERROR] runSimulation -> loop -> putOpeningOrder -> onOrderCreated -> Message = " + err.message); } - strategy.openStage.openExecution.error = err.message - afterLoop() - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> putOpeningOrder -> onOrderCreated -> DEFAULT_RETRY_RESPONSE "); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[ERROR] runSimulation -> loop -> putOpeningOrder -> onOrderCreated -> Message = " + err.message); } - strategy.openStage.openExecution.error = err.message - afterLoop() - return; - } - } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[ERROR] runSimulation -> loop -> putOpeningOrder -> onOrderCreated -> Unexpected Response -> Message = " + err.message); } - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] runSimulation -> loop -> putOpeningOrder -> onOrderCreated -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return - } - } - } - - function takePositionAtSimulation() { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> takePositionAtSimulation -> Entering function."); } - - /* Continue with the simulation */ - calculateTakeProfit(); - calculateStopLoss(); - - marketRate = candle.close; - - previousBalanceBaseAsset = balanceBaseAsset; - previousBalanceQuotedAsset = balanceQuotedAsset; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.previousBalanceBaseAsset = previousBalanceBaseAsset; - yesterday.previousBalanceQuotedAsset = previousBalanceQuotedAsset; - } - } - - lastTradeProfitLoss = 0; - lastTradeROI = 0; - - let feePaid = 0 - - if (baseAsset === bot.market.baseAsset) { - - feePaid = tradePositionSize * tradePositionRate * bot.VALUES_TO_USE.feeStructure.taker / 100 - - balanceQuotedAsset = balanceQuotedAsset + tradePositionSize * tradePositionRate - feePaid; - balanceBaseAsset = balanceBaseAsset - tradePositionSize; - } else { - - feePaid = tradePositionSize / tradePositionRate * bot.VALUES_TO_USE.feeStructure.taker / 100 - - balanceBaseAsset = balanceBaseAsset + tradePositionSize / tradePositionRate - feePaid; - balanceQuotedAsset = balanceQuotedAsset - tradePositionSize; - } - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.balanceBaseAsset = balanceBaseAsset; - yesterday.balanceQuotedAsset = balanceQuotedAsset; - - yesterday.lastTradeProfitLoss = lastTradeProfitLoss; - yesterday.lastTradeROI = lastTradeROI; - } - } - - addRecord(); - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> takePositionAtSimulation -> Exiting Loop Body after taking position at simulation."); } - controlLoop(); - return - } - } - - if (closePositionNow === true) { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Closing a Position -> Entering code block."); } - - closePositionNow = false - - /* Inicializing this counter */ - distanceToLast.closePosition = 1; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.distanceToLast.closePosition = distanceToLast.closePosition - } - } - - /* Position size and rate */ - let strategy = tradingSystem.strategies[currentStrategyIndex]; - - if (currentCandleIndex > candles.length - 10) { /* Only at the last candles makes sense to check if we are in live mode or not.*/ - /* Check that we are in LIVE MODE */ - if (bot.startMode === "Live") { - /* We see if we need to put the actual order at the exchange. */ - if (interExecutionMemory.executionContext !== undefined) { - switch (interExecutionMemory.executionContext.status) { - case "Without a Position": { // No way to close anything at the exchange. - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Closing a Position -> Exiting code block because status is Without a Position."); } - break - } - case "In a Position": { // This should mean that we already put the order at the exchange. - if (strategy.closeStage !== undefined) { - if (strategy.closeStage.closeExecution !== undefined) { - putClosingOrder() - return - } - } - break - } - case "Closing Position": { // Waiting for a confirmation that the position was taken. - if (strategy.closeStage !== undefined) { - if (strategy.closeStage.closeExecution !== undefined) { - putClosingOrder() - return - } - } - break - } - - case "Position Closed": { // - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Closing a Position -> Exiting code block because status is Position Closed."); } - break - } - } - } - } - } else { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Closing a Position -> Not within the last 10 candles."); } - } - - closePositionAtSimulation() - return - - function putClosingOrder() { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> putClosingOrder -> Entering function."); } - - /* Mechanism to avoid putting the same order over and over again at different executions of the simulation engine. */ - if (interExecutionMemory.executionContext !== undefined) { - if (interExecutionMemory.executionContext.periods !== undefined) { - if (periods <= interExecutionMemory.executionContext.periods) { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> putClosingOrder -> Exiting function because this closing was already submited at a previous execution."); } - closePositionAtSimulation() - return; - } - } - } - - let orderPrice - let amountA - let amountB - let orderSide - - if (baseAsset === bot.market.baseAsset) { - orderSide = "buy" - - orderPrice = ticker.last + 100; // This is provisional and totally arbitrary, until we have a formula on the designer that defines this stuff. - - amountA = balanceQuotedAsset - amountB = balanceQuotedAsset / orderPrice - - } else { - orderSide = "sell" - - orderPrice = ticker.last - 100; // This is provisional and totally arbitrary, until we have a formula on the designer that defines this stuff. - - amountA = balanceBaseAsset * orderPrice - amountB = balanceBaseAsset - - } - - interExecutionMemory.executionContext = { - status: "Closing Position", - periods: periods, - } - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> putClosingOrder -> About to close position at the exchange."); } - exchangeAPI.createOrder(bot.market, orderSide, orderPrice, amountA, amountB, onOrderCreated) - - function onOrderCreated(err, order) { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> putClosingOrder -> onOrderCreated -> Entering function."); } - - try { - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> putClosingOrder -> onOrderCreated -> DEFAULT_OK_RESPONSE "); } - interExecutionMemory.executionContext = { - status: "Position Closed", - periods: periods, - amountA: amountA, - amountB: amountB, - orderId: order.id - } - closePositionAtSimulation() - return; - } - case global.DEFAULT_FAIL_RESPONSE.result: { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> putClosingOrder -> onOrderCreated -> DEFAULT_FAIL_RESPONSE "); } - /* We will assume that the problem is temporary, and expect that it will work at the next execution.*/ - strategy.closeStage.closeExecution.error = err.message - afterLoop() - return; - } - case global.DEFAULT_RETRY_RESPONSE.result: { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> putOpeningOrder -> onOrderCreated -> DEFAULT_RETRY_RESPONSE "); } - strategy.closeStage.closeExecution.error = err.message - afterLoop() - return; - } - } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[ERROR] runSimulation -> loop -> putClosingOrder -> onOrderCreated -> Unexpected Response -> Message = " + err.message); } - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] runSimulation -> loop -> putClosingOrder -> onOrderCreated -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return - } - } - } - - function closePositionAtSimulation() { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> closePositionAtSimulation -> Entering function."); } - - roundtrips++; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.roundtrips = roundtrips - } - } - - let feePaid = 0 - - if (baseAsset === bot.market.baseAsset) { - strategy.positionSize = balanceQuotedAsset / closeRate; - strategy.positionRate = closeRate; - - feePaid = balanceQuotedAsset / closeRate * bot.VALUES_TO_USE.feeStructure.taker / 100 - - balanceBaseAsset = balanceBaseAsset + balanceQuotedAsset / closeRate - feePaid; - balanceQuotedAsset = 0; - } else { - strategy.positionSize = balanceBaseAsset * closeRate; - strategy.positionRate = closeRate; - - feePaid = balanceBaseAsset * closeRate * bot.VALUES_TO_USE.feeStructure.taker / 100 - - balanceQuotedAsset = balanceQuotedAsset + balanceBaseAsset * closeRate - feePaid; - balanceBaseAsset = 0; - } - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.balanceBaseAsset = balanceBaseAsset; - yesterday.balanceQuotedAsset = balanceQuotedAsset; - - } - } - - if (baseAsset === bot.market.baseAsset) { - lastTradeProfitLoss = balanceBaseAsset - previousBalanceBaseAsset; - lastTradeROI = lastTradeProfitLoss * 100 / tradePositionSize; - if (isNaN(lastTradeROI)) { lastTradeROI = 0; } - profit = balanceBaseAsset - bot.VALUES_TO_USE.initialBalanceA; - } else { - lastTradeProfitLoss = balanceQuotedAsset - previousBalanceQuotedAsset; - lastTradeROI = lastTradeProfitLoss * 100 / tradePositionSize; - if (isNaN(lastTradeROI)) { lastTradeROI = 0; } - profit = balanceQuotedAsset - bot.VALUES_TO_USE.initialBalanceB; - } - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.lastTradeProfitLoss = lastTradeProfitLoss; - yesterday.profit = profit; - yesterday.lastTradeROI = lastTradeROI; - } - } - - currentTrade.lastTradeROI = lastTradeROI; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.currentTrade.lastTradeROI = currentTrade.lastTradeROI; - } - } - - if (lastTradeProfitLoss > 0) { - hits++; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.hits = hits - } - } - - } else { - fails++; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.fails = fails - } - } - } - - if (baseAsset === bot.market.baseAsset) { - ROI = (bot.VALUES_TO_USE.initialBalanceA + profit) / bot.VALUES_TO_USE.initialBalanceA - 1; - hitRatio = hits / roundtrips; - anualizedRateOfReturn = ROI / days * 365; - } else { - ROI = (bot.VALUES_TO_USE.initialBalanceB + profit) / bot.VALUES_TO_USE.initialBalanceB - 1; - hitRatio = hits / roundtrips; - anualizedRateOfReturn = ROI / days * 365; - } - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.ROI = ROI; - yesterday.hitRatio = hitRatio; - yesterday.anualizedRateOfReturn = anualizedRateOfReturn; - } - } - - addRecord(); - - stopLoss = 0; - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.stopLoss = stopLoss - } - } - takeProfit = 0; - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.takeProfit = takeProfit - } - } - - tradePositionRate = 0; - tradePositionSize = 0; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.tradePositionSize = tradePositionSize; - yesterday.tradePositionRate = tradePositionRate; - } - } - - timerToCloseStage = candle.begin - stopLossStage = 'No Stage'; - takeProfitStage = 'No Stage'; - stopLossPhase = -1; - takeProfitPhase = -1; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.stopLossStage = stopLossStage; - yesterday.takeProfitStage = takeProfitStage; - yesterday.stopLossPhase = stopLossPhase; - yesterday.takeProfitPhase = takeProfitPhase; - } - } - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> closePositionAtSimulation -> Exiting Loop Body after closing position at simulation."); } - controlLoop(); - return - } - } - - /* Closing the Closing Stage */ - if (strategyStage === 'Close Stage') { - if (candle.begin - 5 * 60 * 1000 > timerToCloseStage) { - - currentStrategy.number = currentStrategyIndex - currentStrategy.end = candle.end; - currentStrategy.endRate = candle.min; - currentStrategy.status = 1; // This means the strategy is closed, i.e. that has a begin and end. - - if (processingDailyFiles) { - if (positionedAtYesterday) { - - yesterday.currentStrategy.number = currentStrategy.number; - yesterday.currentStrategy.end = currentStrategy.end; - yesterday.currentStrategy.endRate = currentStrategy.endRate; - yesterday.currentStrategy.status = currentStrategy.status; - } - } - - currentStrategyIndex = -1; - strategyStage = 'No Stage'; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.currentStrategyIndex = currentStrategyIndex; - yesterday.strategyStage = strategyStage; - } - } - - timerToCloseStage = 0 - - distanceToLast.triggerOff = 1; - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.distanceToLast.triggerOff = distanceToLast.triggerOff - } - } - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Closing the Closing Stage -> Exiting Close Stage."); } - } else { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Closing the Closing Stage -> Waiting for timer."); } - } - } - - /* Not a buy or sell condition */ - - marketRate = candle.close; - addRecord(); - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Exiting Loop Body after adding a record."); } - controlLoop(); - return - - function addRecord() { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> addRecord -> Entering function."); } - - // Since we are going to write the message to a file that the Simulation Executor is going to read, we use the abbreviations. - let messageType; - let message; - let simulationRecord; - let executionRecord; - - let strategyStageNumber - switch (strategyStage) { - case 'No Stage': { - strategyStageNumber = 0 - break - } - case 'Trigger Stage': { - strategyStageNumber = 1 - break - } - case 'Open Stage': { - strategyStageNumber = 2 - break - } - case 'Manage Stage': { - strategyStageNumber = 3 - break - } - case 'Close Stage': { - strategyStageNumber = 4 - break - } - } - - if (balanceBaseAsset === Infinity) { - balanceBaseAsset = Number.MAX_SAFE_INTEGER - } - - if (balanceQuotedAsset === Infinity) { - balanceQuotedAsset = Number.MAX_SAFE_INTEGER - } - - let quotedBaseAsset = '"' + baseAsset + '"' - let quotedQuotedAsset = '"' + quotedAsset + '"' - - simulationRecord = { - begin: candle.begin, - end: candle.end, - type: type, - marketRate: marketRate, - amount: 1, - balanceA: balanceBaseAsset, - balanceB: balanceQuotedAsset, - profit: profit, - lastTradeProfitLoss: lastTradeProfitLoss, - stopLoss: stopLoss, - roundtrips: roundtrips, - hits: hits, - fails: fails, - hitRatio: hitRatio, - ROI: ROI, - periods: periods, - days: days, - anualizedRateOfReturn: anualizedRateOfReturn, - positionRate: tradePositionRate, - lastTradeROI: lastTradeROI, - strategy: currentStrategyIndex, - strategyStageNumber: strategyStageNumber, - takeProfit: takeProfit, - stopLossPhase: stopLossPhase, - takeProfitPhase: takeProfitPhase, - executionRecord: '', - positionSize: tradePositionSize, - initialBalanceA: bot.VALUES_TO_USE.initialBalanceA, - minimumBalanceA: bot.VALUES_TO_USE.minimumBalanceA, - maximumBalanceA: bot.VALUES_TO_USE.maximumBalanceA, - initialBalanceB: bot.VALUES_TO_USE.initialBalanceB, - minimumBalanceB: bot.VALUES_TO_USE.minimumBalanceB, - maximumBalanceB: bot.VALUES_TO_USE.maximumBalanceB, - baseAsset: quotedBaseAsset, - quotedAsset: quotedQuotedAsset, - marketBaseAsset: '"' + bot.market.baseAsset + '"', - marketQuotedAsset: '"' + bot.market.quotedAsset + '"' , - positionPeriods: positionPeriods, - positionDays: positionDays, - distanceToLastTriggerOn: distanceToLast.triggerOn, - distanceToLastTriggerOff: distanceToLast.triggerOff, - distanceToLastTakePosition: distanceToLast.takePosition, - distanceToLastClosePosition: distanceToLast.closePosition - } - - recordsArray.push(simulationRecord); - - type = '""'; - - /* Prepare the information for the Conditions File */ - - conditionsArrayRecord.push(currentStrategyIndex); - conditionsArrayRecord.push(strategyStageNumber); - conditionsArrayRecord.push(stopLossPhase); - conditionsArrayRecord.push(takeProfitPhase); - conditionsArrayRecord.push(conditionsArrayValues); - conditionsArrayRecord.push(formulasErrors); - conditionsArrayRecord.push(formulasValues); - - conditionsArray.push(conditionsArrayRecord); - - /* - Lets see if there will be an open strategy ... - Except if we are at the head of the market (remember we skipped the last candle for not being closed.) - */ - if (currentStrategy.begin !== 0 && currentStrategy.end === 0 && currentCandleIndex === candles.length - 2 && lastCandle.end !== lastInstantOfTheDay) { - currentStrategy.status = 2; // This means the strategy is open, i.e. that has a begin but no end. - currentStrategy.end = candle.end - } - - /* Prepare the information for the Strategies File*/ - if (currentStrategy.begin !== 0 && currentStrategy.end !== 0) - { - strategiesArray.push(currentStrategy); - - currentStrategy = { - begin: 0, - end: 0, - status: 0, - number: 0, - beginRate: 0, - endRate: 0, - triggerOnSituation: '', - name: '' - } - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.currentStrategy = { - begin: 0, - end: 0, - status: 0, - number: 0, - beginRate: 0, - endRate: 0, - triggerOnSituation: '', - name: '' - } - } - } - } - - /* - Lets see if there will be an open trade ... - Except if we are at the head of the market (remember we skipped the last candle for not being closed.) - */ - if (currentTrade.begin !== 0 && currentTrade.end === 0 && currentCandleIndex === candles.length - 2 && lastCandle.end !== lastInstantOfTheDay) { - currentTrade.status = 2; // This means the trade is open - currentTrade.end = candle.end - currentTrade.endRate = candle.close - - /* Here we will calculate the ongoing ROI */ - if (baseAsset === bot.market.baseAsset) { - currentTrade.lastTradeROI = (tradePositionRate - candle.close) / tradePositionRate * 100 - } else { - currentTrade.lastTradeROI = (candle.close - tradePositionRate) / tradePositionRate * 100 - } - } - - /* Snapshots Management (before we generate the trade record and delete that info) */ - if (saveAsLastTriggerOnSnapshot === true) { - snapshots.lastTriggerOn = snapshotDataRecord - saveAsLastTriggerOnSnapshot = false - } - - if (saveAsLastTakePositionSnapshot === true) { - snapshots.lastTakePosition = snapshotDataRecord - saveAsLastTakePositionSnapshot = false - } - - if (addToSnapshots === true) { - let closeValues = [ - roundtrips, // Trade Number - (new Date(candle.begin)).toISOString(), // Datetime - tradingSystem.strategies[currentStrategyIndex].name, // Strategy - currentStrategy.triggerOnSituation, // Trigger On Situation - currentTrade.takePositionSituation, // Take Position Situation - hitOrFial(), // Result - lastTradeROI, // ROI - simulationRecord.type.replace(/"/g, '') // Exit Type - ] - - function hitOrFial() { - if (lastTradeROI > 0) { return 'HIT' } else { return 'FAIL' } - } - - if (positionedAtYesterday === false) { - snapshots.triggerOn.push(closeValues.concat(snapshots.lastTriggerOn)) - snapshots.takePosition.push(closeValues.concat(snapshots.lastTakePosition)) - } - snapshots.lastTriggerOn = undefined - snapshots.lastTakePosition = undefined - addToSnapshots = false - } - - let closeHeaders = ['Trade Number', 'Close Datetime', 'Strategy', 'Trigger On Situation', 'Take Position Situation', 'Result', 'ROI', 'Exit Type'] - if (snapshots.headers === undefined) { - snapshots.headers = closeHeaders.concat(JSON.parse(JSON.stringify(snapshotLoopHeaders))) - } - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.snapshots.headers = snapshots.headers; - yesterday.snapshots.triggerOn = snapshots.triggerOn; - yesterday.snapshots.takePosition = snapshots.takePosition; - yesterday.snapshots.lastTriggerOn = snapshots.lastTriggerOn; - yesterday.snapshots.lastTakePosition = snapshots.lastTakePosition; - } - } - - /* Prepare the information for the Trades File */ - if (currentTrade.begin !== 0 && currentTrade.end !== 0) { - - currentTrade.profit = lastTradeProfitLoss; - - tradesArray.push(currentTrade); - - currentTrade = { - begin: 0, - end: 0, - status: 0, - lastTradeROI: 0, - exitType: 0, - beginRate: 0, - endRate: 0, - takePositionSituation: '' - } - - if (processingDailyFiles) { - if (positionedAtYesterday) { - yesterday.currentTrade = { - begin: 0, - end: 0, - status: 0, - lastTradeROI: 0, - exitType: 0, - beginRate: 0, - endRate: 0, - takePositionSituation: '' - } - } - } - } - - /* After everything at the simulation level was done, we will do the annoucements that are pending.*/ - makeAnnoucements() - } - - function checkAnnouncements(node, value) { - /* - Value is an optional parameter that represents the value that the announcement is monitoring for change (for numeric values only). - If we do receive this value, we will only make the annoucement if the variance is grater than the user pre-defined value - for this variance. - */ - - if (node.announcements !== undefined) { - for (let i = 0; i < node.announcements.length; i++) { - let announcement = node.announcements[i] - let key = node.type + "-" + announcement.name + "-" + announcement.id - - let lastPeriodAnnounced = -1 - let newAnnouncementRecord = {} - - for (let j = 0; j < interExecutionMemory.announcements.length; j++) { - let announcementRecord = interExecutionMemory.announcements[j] - if (announcementRecord.key === key) { - lastPeriodAnnounced = announcementRecord.periods - newAnnouncementRecord = announcementRecord - break - } - } - - if (periods > lastPeriodAnnounced) { - - if (isNaN(value) === false) { - /* The Value Variation is what tells us how much the value already announced must change in order to annouce it again. */ - let valueVariation - - let code = announcement.code - valueVariation = code.valueVariation - - if (newAnnouncementRecord.value !== undefined && valueVariation !== undefined) { - let upperLimit = newAnnouncementRecord.value + newAnnouncementRecord.value * valueVariation / 100 - let lowerLimit = newAnnouncementRecord.value - newAnnouncementRecord.value * valueVariation / 100 - if (value > lowerLimit && value < upperLimit) { - /* There is not enough variation to announce this again. */ - return - } - } - } - - /* - We store the announcement temporarily at an Array to differ its execution, becasue we need to evaulate its formula - and at this point in time the potential variables used at the formula are still not set. - */ - announcement.value = value - announcementsToBeMade.push(announcement) - - /* Next, we will remmeber this announcement was already done, so that it is not announced again in further processing of the same day. */ - if (newAnnouncementRecord.periods !== undefined) { - newAnnouncementRecord.periods = periods - newAnnouncementRecord.value = value - } else { - newAnnouncementRecord = { - key: key, - periods: periods, - value: value - } - interExecutionMemory.announcements.push(newAnnouncementRecord) - } - } - } - } - } - - function makeAnnoucements() { - /* Here we go through all the annoucements that need to be done during this loop, and we just do them. */ - for (let i = 0; i < announcementsToBeMade.length; i++) { - announcement = announcementsToBeMade[i] - /* Here we check if there is a formula attached to the annoucement, we evaluate it to get the annoucement text. */ - let formulaValue - if (announcement.formula !== undefined) { - try { - let value = announcement.value - formulaValue = eval(announcement.formula.code); - } catch (err) { - announcement.formula.error = err.message - } - } - announcement.formulaValue = formulaValue - - if (bot.SESSION.socialBots !== undefined) { - bot.SESSION.socialBots.announce(announcement) - } - } - } - - function addCodeToSnapshot(code) { - if (code === undefined) { return } - - try { - let instructionsArray = code.split(' ') - for (let i = 0; i < instructionsArray.length; i++) { - let instruction = instructionsArray[i] - instruction = instruction.replace('(', '') - instruction = instruction.replace(')', '') - instruction = instruction.replace(//g, '') - instruction = instruction.replace(/<=/g, '') - instruction = instruction.replace(/>=/g, '') - instruction = instruction.replace(/!=/g, '') - instruction = instruction.replace(/!==/g, '') - instruction = instruction.replace(/==/g, '') - instruction = instruction.replace(/===/g, '') - instruction = instruction.replace(/{/g, '') - instruction = instruction.replace(/}/g, '') - if (instruction.indexOf('chart') >= 0) { - let parts = instruction.split('.') - let timeFrame = parts[1] - let product = parts[2] - let property - checkPrevious(3) - function checkPrevious(index) { - property = parts[index] - if (property === 'previous') { - product = product + '.previous' - checkPrevious(index + 1) - } - } - - // Example: chart.at01hs.popularSMA.sma200 - chart.at01hs.popularSMA.sma100 < 10 - if (timeFrame !== 'atAnyTimeFrame') { - timeFrame = timeFrame.substring(2, 4) + '-' + timeFrame.substring(4, 7) - } - let key = timeFrame + '-' + product + '-' + property - let existingKey = snapshotKeys.get(key) - - if (existingKey === undefined) {// means that at the current loop this property of this product was not used before. - snapshotKeys.set(key, key) - snapshotLoopHeaders.push(key) - - let value = eval(instruction) - snapshotDataRecord.push(value) - } - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] runSimulation -> addCodeToSnapshot -> code = " + code); - logger.write(MODULE_NAME, "[ERROR] runSimulation -> addCodeToSnapshot -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - - function controlLoop() { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> controlLoop -> Entering function."); } - - /* Checking if we should continue processing this loop or not.*/ - if (bot.STOP_SESSION === true) { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> controlLoop -> We are going to stop here bacause we were requested to stop processing this session."); } - console.log("[INFO] runSimulation -> controlLoop -> We are going to stop here bacause we were requested to stop processing this session.") - afterLoop() - return - } - - if (global.STOP_TASK_GRACEFULLY === true) { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> controlLoop -> We are going to stop here bacause we were requested to stop processing this task."); } - console.log("[INFO] runSimulation -> controlLoop -> We are going to stop here bacause we were requested to stop processing this task.") - afterLoop() - return - } - - currentCandleIndex++ - if (currentCandleIndex < candles.length) { - setImmediate(loop) // This will execute the next loop in the next iteration of the NodeJs event loop allowing for other callbacks to be executed. - } else { - afterLoop() - } - } - - function afterLoop() { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> afterLoop -> Entering function."); } - - /* - Before returning we need to see if we have to record some of our counters at the interExecutionMemory. - To do that, the condition to be met is that this execution must include all candles of the current day. - */ - - if (processingDailyFiles) { - - if (lastCandle.end === lastInstantOfTheDay) { - - interExecutionMemory.snapshots = { - headers: yesterday.snapshots.headers, - triggerOn: yesterday.snapshots.triggerOn, - takePosition: yesterday.snapshots.takePosition, - lastTriggerOn: yesterday.snapshots.lastTriggerOn, - lastTakePosition: yesterday.snapshots.lastTakePosition - } - - interExecutionMemory.stopLoss = yesterday.stopLoss - interExecutionMemory.takeProfit = yesterday.takeProfit - - interExecutionMemory.previousBalanceBaseAsset = yesterday.previousBalanceBaseAsset - interExecutionMemory.previousBalanceQuotedAsset = yesterday.previousBalanceQuotedAsset - - interExecutionMemory.tradePositionRate = yesterday.tradePositionRate - interExecutionMemory.tradePositionSize = yesterday.tradePositionSize - - interExecutionMemory.currentStrategyIndex = yesterday.currentStrategyIndex - interExecutionMemory.strategyStage = yesterday.strategyStage - - interExecutionMemory.stopLossPhase = yesterday.stopLossPhase - interExecutionMemory.stopLossStage = yesterday.stopLossStage - - interExecutionMemory.takeProfitPhase = yesterday.takeProfitPhase - interExecutionMemory.takeProfitStage = yesterday.takeProfitStage - - interExecutionMemory.currentStrategy = { - begin: yesterday.currentStrategy.begin, - end: yesterday.currentStrategy.end, - status: yesterday.currentStrategy.status, - number: yesterday.currentStrategy.number, - beginRate: yesterday.currentStrategy.beginRate, - endRate: yesterday.currentStrategy.endRate, - triggerOnSituation: yesterday.currentStrategy.triggerOnSituation, - name: yesterday.currentStrategy.name - } - - interExecutionMemory.currentTrade = { - begin: yesterday.currentTrade.begin, - end: yesterday.currentTrade.end, - status: yesterday.currentTrade.status, - profit: yesterday.currentTrade.profit, - exitType: yesterday.currentTrade.exitType, - beginRate: yesterday.currentTrade.beginRate, - endRate: yesterday.currentTrade.endRate, - takePositionSituation: yesterday.currentTrade.takePositionSituation - } - - interExecutionMemory.balanceBaseAsset = yesterday.balanceBaseAsset; - interExecutionMemory.balanceQuotedAsset = yesterday.balanceQuotedAsset; - interExecutionMemory.lastTradeProfitLoss = yesterday.lastTradeProfitLoss; - interExecutionMemory.profit = yesterday.profit; - interExecutionMemory.lastTradeROI = yesterday.lastTradeROI; - - interExecutionMemory.roundtrips = yesterday.roundtrips; - interExecutionMemory.fails = yesterday.fails; - interExecutionMemory.hits = yesterday.hits; - interExecutionMemory.periods = yesterday.periods; - interExecutionMemory.positionPeriods = yesterday.positionPeriods; - - interExecutionMemory.distanceToLast.triggerOn = yesterday.distanceToLast.triggerOn - interExecutionMemory.distanceToLast.triggerOff = yesterday.distanceToLast.triggerOff - interExecutionMemory.distanceToLast.takePosition = yesterday.distanceToLast.takePosition - interExecutionMemory.distanceToLast.closePosition = yesterday.distanceToLast.closePosition - - interExecutionMemory.messageId = interExecutionMemory.messageId + yesterday.messageId; - interExecutionMemory.orderId = interExecutionMemory.orderId + yesterday.orderId; - - interExecutionMemory.hitRatio = yesterday.hitRatio; - interExecutionMemory.ROI = yesterday.ROI; - interExecutionMemory.anualizedRateOfReturn = yesterday.anualizedRateOfReturn; - } - } - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> callback -> recordsArray.length = " + recordsArray.length); } - - callback(tradingSystem, recordsArray, conditionsArray, strategiesArray, tradesArray, snapshots.headers, snapshots.triggerOn, snapshots.takePosition); - } - - function getElement(pArray, currentCandle, datasetName) { - if (pArray === undefined) {return} - try { - let element; - for (let i = 0; i < pArray.length; i++) { - element = pArray[i]; - - if (currentCandle.end === element.end) { // when there is an exact match at the end we take that element - return element - } else { - if ( - i > 0 && - element.end > currentCandle.end - ) { - let previousElement = pArray[i - 1] - if (previousElement.end < currentCandle.end) { - return previousElement // If one elements goes into the future of currentCandle, then we stop and take the previous element. - } else { - return - } - } - if ( - i === pArray.length - 1 // If we reach the end of the array, then we return the last element. - && - element.end < currentCandle.end - ) { - return element - } - } - } - return - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] runSimulation -> getElement -> datasetName = " + datasetName); - logger.write(MODULE_NAME, "[ERROR] runSimulation -> getElement -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - - catch (err) { - logger.write(MODULE_NAME, "[ERROR] runSimulation -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } -}; - - - diff --git a/TaskServer/server.js b/TaskServer/server.js index 80ac46a62..3ff27cf3f 100644 --- a/TaskServer/server.js +++ b/TaskServer/server.js @@ -1,5 +1,6 @@ -/* Callbacks default responses. */ + +/* Callbacks default responses. */ global.DEFAULT_OK_RESPONSE = { result: "Ok", message: "Operation Succeeded" @@ -25,19 +26,289 @@ global.CUSTOM_FAIL_RESPONSE = { message: "Custom Message" }; -const ONE_DAY_IN_MILISECONDS = 24 * 60 * 60 * 1000; +global.ROOT_DIR = './'; + +global.ONE_YEAR_IN_MILISECONDS = 365 * 24 * 60 * 60 * 1000 +global.ONE_DAY_IN_MILISECONDS = 24 * 60 * 60 * 1000 +global.ONE_MIN_IN_MILISECONDS = 60 * 1000 global.LOGGER_MAP = new Map() global.SESSION_MAP = new Map() +global.UNIQUE_ID = function () { + 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) + }) +} + +global.PRECISE = function (floatNumber, precision) { + return this.parseFloat(floatNumber.toFixed(precision)) +} + +global.REMOVE_TIME = function (datetime) { + const GMT_SECONDS = ':00.000 GMT+0000'; + let date = new Date(datetime) + return new Date(date.getUTCFullYear() + "-" + (date.getUTCMonth() + 1) + "-" + date.getUTCDate() + " " + "00:00" + GMT_SECONDS); +} + +global.PROCESS_ERROR = function (processKey, node, errorMessage) { + let event + if (node !== undefined) { + event = { + nodeName: node.name, + nodeType: node.type, + nodeId: node.id, + errorMessage: errorMessage + } + } else { + event = { + errorMessage: errorMessage + } + } + global.EVENT_SERVER_CLIENT.raiseEvent(processKey, 'Error', event) +} + +global.PROCESS_WARNING = function (processKey, node, warningMessage) { + let event + if (node !== undefined) { + event = { + nodeName: node.name, + nodeType: node.type, + nodeId: node.id, + warningMessage: warningMessage + } + } else { + event = { + warningMessage: warningMessage + } + } + global.EVENT_SERVER_CLIENT.raiseEvent(processKey, 'Warning', event) +} + +global.PROCESS_INFO = function (processKey, node, infoMessage) { + let event + if (node !== undefined) { + event = { + nodeName: node.name, + nodeType: node.type, + nodeId: node.id, + infoMessage: infoMessage + } + } else { + event = { + infoMessage: infoMessage + } + } + global.EVENT_SERVER_CLIENT.raiseEvent(processKey, 'Info', event) +} + +global.NODE_BRANCH_TO_ARRAY = function (node, nodeType) { + let resultArray = [] + scanNodeBranch(node, nodeType) + return resultArray + + function scanNodeBranch(startingNode) { + let nodeDefinition = global.APP_SCHEMA_MAP.get(startingNode.type) + if (nodeDefinition === undefined) { return } + + if (startingNode.type === nodeType) { + resultArray.push(startingNode) + return + } + + if (nodeDefinition.properties === undefined) { return } + for (let i = 0; i < nodeDefinition.properties.length; i++) { + let property = nodeDefinition.properties[i] + + switch (property.type) { + case 'node': { + scanNodeBranch(startingNode[property.name]) + } + break + case 'array': { + let startingNodePropertyArray = startingNode[property.name] + if (startingNodePropertyArray !== undefined) { + for (let m = 0; m < startingNodePropertyArray.length; m++) { + scanNodeBranch(startingNodePropertyArray[m]) + } + } + break + } + } + } + } +} + +global.FIND_NODE_IN_NODE_MESH = function (node, nodeType) { + /* + This function scans a node mesh for a certain node type and + returns the first instance found. + */ + let nodeFound + scanNodeMesh(node, nodeType) + return nodeFound + + function scanNodeMesh(startingNode) { + if (startingNode === undefined) { return } + if (nodeFound !== undefined) { return } + + let nodeDefinition = APP_SCHEMA_MAP.get(startingNode.type) + if (nodeDefinition === undefined) { return } + + if (startingNode.type === nodeType) { + nodeFound = startingNode + return + } + + /* We scan through this node children */ + if (nodeDefinition.properties !== undefined) { + for (let i = 0; i < nodeDefinition.properties.length; i++) { + let property = nodeDefinition.properties[i] + + switch (property.type) { + case 'node': { + scanNodeMesh(startingNode[property.name]) + } + break + case 'array': { + let startingNodePropertyArray = startingNode[property.name] + if (startingNodePropertyArray !== undefined) { + for (let m = 0; m < startingNodePropertyArray.length; m++) { + scanNodeMesh(startingNodePropertyArray[m]) + } + } + break + } + } + } + } + /* We scan parents nodes. */ + if (startingNode.parentNode !== undefined) { + scanNodeMesh(startingNode.parentNode) + } + /* We scan reference parents too. */ + if (startingNode.referenceParent !== undefined) { + scanNodeMesh(startingNode.referenceParent) + } + } +} + +global.NODE_MESH_TO_PATH_ARRAY = function (node, nodeId) { + /* + This function scans a node mesh for a certain node if and + returns an array with the path within that mesh to the + requested node. + */ + let nodeArray = [] + scanNodeMesh(node) + return nodeArray + + function scanNodeMesh(startingNode) { + if (startingNode === undefined) { return } + + let nodeDefinition = APP_SCHEMA_MAP.get(startingNode.type) + if (nodeDefinition === undefined) { return } + + if (startingNode.id === nodeId) { + nodeArray.push(startingNode) + return + } + + /* We scan through this node children */ + if (nodeDefinition.properties !== undefined) { + for (let i = 0; i < nodeDefinition.properties.length; i++) { + let property = nodeDefinition.properties[i] + + switch (property.type) { + case 'node': { + scanNodeMesh(startingNode[property.name]) + if (nodeArray.length > 0) { + nodeArray.unshift(startingNode) + return + } + } + break + case 'array': { + let startingNodePropertyArray = startingNode[property.name] + if (startingNodePropertyArray !== undefined) { + for (let m = 0; m < startingNodePropertyArray.length; m++) { + scanNodeMesh(startingNodePropertyArray[m]) + if (nodeArray.length > 0) { + nodeArray.unshift(startingNode) + return + } + } + } + break + } + } + } + } + /* We scan parents nodes. */ + if (startingNode.parentNode !== undefined) { + scanNodeMesh(startingNode.parentNode) + if (nodeArray.length > 0) { + nodeArray.unshift(startingNode) + return + } + } + /* We scan reference parents too. */ + if (startingNode.referenceParent !== undefined) { + scanNodeMesh(startingNode.referenceParent) + if (nodeArray.length > 0) { + nodeArray.unshift(startingNode) + return + } + } + } +} + +global.FIND_NODE_IN_NODE_ARRAY = function (nodeArray, nodeType) { + for (let i=0; i < nodeArray.length; i++) { + let node = nodeArray[i] + if (node.type === nodeType) { + return node + } + } +} + +global.FILTER_OUT_NODES_WITHOUT_REFERENCE_PARENT_FROM_NODE_ARRAY = function (nodeArray) { + let filteredNodeArray = [] + for (let i = 0; i < nodeArray.length; i++) { + let arrayItem = nodeArray[i] + if (arrayItem.referenceParent === undefined) { + continue + } else { + filteredNodeArray.push(arrayItem) + } + } + return filteredNodeArray +} + +global.EMIT_SESSION_STATUS = function (status, key) { + switch(status) { + case 'Running': { + global.EVENT_SERVER_CLIENT.raiseEvent(key, 'Running') + break + } + case 'Stopped': { + global.EVENT_SERVER_CLIENT.raiseEvent(key, 'Stopped') + break + } + } +} + process.on('uncaughtException', function (err) { console.log('[ERROR] Task Server -> server -> uncaughtException -> err.message = ' + err.message) console.log('[ERROR] Task Server -> server -> uncaughtException -> err.stack = ' + err.stack) + console.log(err.stack) global.EXIT_NODE_PROCESS() }) process.on('unhandledRejection', (reason, p) => { console.log('[ERROR] Task Server -> server -> unhandledRejection -> reason = ' + JSON.stringify(reason)) console.log('[ERROR] Task Server -> server -> unhandledRejection -> p = ' + JSON.stringify(p)) + console.log(reason.stack) global.EXIT_NODE_PROCESS() }) @@ -57,7 +328,7 @@ function finalizeSessions() { } } -process.on('exit', function (code) { +process.on('exit', function (config) { if (global.TASK_NODE !== undefined) { /* We send an event signaling that the Task is being terminated. */ @@ -68,7 +339,7 @@ process.on('exit', function (code) { global.EVENT_SERVER_CLIENT = undefined } - //console.log('[INFO] Task Server -> server -> process.on.exit -> About to exit -> code = ' + code) + //console.log('[INFO] Task Server -> server -> process.on.exit -> About to exit -> config = ' + config) }) /* Here we listen for the message to stop this Task / Process comming from the Task Manager, which is the paret of this node js process. */ @@ -84,13 +355,17 @@ process.on('message', message => { let key = global.TASK_NODE.name + '-' + global.TASK_NODE.type + '-' + global.TASK_NODE.id console.log('[INFO] Task Server -> server -> process.on -> Stopping Task ' + key + '. Nodejs process will be exited in less than 1 minute.') setTimeout(global.EXIT_NODE_PROCESS, 60000); - } + } }); let shuttingDownProcess = false global.EXIT_NODE_PROCESS = function exitProcess() { + if (global.unexpectedError !== undefined) { + global.taskError(undefined, "An unexpected error caused the Task to stop.") + } + if (shuttingDownProcess === true) { return } shuttingDownProcess = true @@ -101,7 +376,7 @@ global.EXIT_NODE_PROCESS = function exitProcess() { clearInterval(global.HEARTBEAT_INTERVAL_HANDLER) for (let i = 0; i < global.TASK_NODE.bot.processes.length; i++) { - let code = global.TASK_NODE.bot.processes[i].code + let config = global.TASK_NODE.bot.processes[i].config let process = global.TASK_NODE.bot.processes[i] key = process.name + '-' + process.type + '-' + process.id @@ -138,7 +413,7 @@ let taskId = process.argv[2] // reading what comes as an argument of the nodejs /* Setting up the global Event Handler */ let EVENT_SERVER_CLIENT = require('./EventServerClient.js'); - + global.EVENT_SERVER_CLIENT = EVENT_SERVER_CLIENT.newEventsServerClient() global.EVENT_SERVER_CLIENT.initialize(preLoader) global.STOP_TASK_GRACEFULLY = false; @@ -151,7 +426,8 @@ function preLoader() { global.EVENT_SERVER_CLIENT.listenToEvent('Task Server - ' + taskId, 'Run Task', undefined, 'Task Server - ' + taskId, undefined, eventReceived) global.EVENT_SERVER_CLIENT.raiseEvent('Task Manager - ' + taskId, 'Nodejs Process Ready for Task') function eventReceived(message) { - global.TASK_NODE = message + global.APP_SCHEMA_ARRAY = JSON.parse(message.event.appSchema) + setUpAppSchema() global.TASK_NODE = JSON.parse(message.event.taskDefinition) global.TASK_NETWORK = JSON.parse(message.event.networkDefinition) bootLoader() @@ -162,11 +438,12 @@ function preLoader() { } } else { /* This process was started not by the Task Manager, but independently (most likely for debugging purposes). In this case we listen to an event with the Task Info that should be emitted at the UI */ - try { + try { //console.log('[INFO] Task Server -> server -> preLoader -> Waiting for event to start debugging...') global.EVENT_SERVER_CLIENT.listenToEvent('Task Server', 'Debug Task Started', undefined, 'Task Server', undefined, startDebugging) function startDebugging(message) { - global.TASK_NODE = message + global.APP_SCHEMA_ARRAY = JSON.parse(message.event.appSchema) + setUpAppSchema() global.TASK_NODE = JSON.parse(message.event.taskDefinition) global.TASK_NETWORK = JSON.parse(message.event.networkDefinition) bootLoader() @@ -176,6 +453,16 @@ function preLoader() { console.log('[ERROR] Task Server -> server -> preLoader -> global.TASK_NODE = ' + JSON.stringify(global.TASK_NODE).substring(0, 1000)) } } + + function setUpAppSchema() { + /* Setup the APP_SCHEMA_MAP based on the APP_SCHEMA_ARRAY */ + global.APP_SCHEMA_MAP = new Map() + for (let i = 0; i < global.APP_SCHEMA_ARRAY.length; i++) { + let nodeDefinition = global.APP_SCHEMA_ARRAY[i] + let key = nodeDefinition.type + global.APP_SCHEMA_MAP.set(key, nodeDefinition) + } + } } function bootLoader() { @@ -190,85 +477,115 @@ function bootLoader() { function taskHearBeat() { - /* The heartbeat event is raised at the event handler of the instance of this task, created at the UI. */ + /* The heartbeat event is raised at the event handler of the instance of this task, created at the UI. */ let event = { seconds: (new Date()).getSeconds() } - global.EVENT_SERVER_CLIENT.raiseEvent(key, 'Heartbeat', event) + global.EVENT_SERVER_CLIENT.raiseEvent(key, 'Heartbeat', event) + } + + global.taskError = function taskError(node, errorMessage) { + let event + if (node !== undefined) { + event = { + nodeName: node.name, + nodeType: node.type, + nodeId: node.id, + errorMessage: errorMessage + } + } else { + event = { + errorMessage: errorMessage + } + } + + global.EVENT_SERVER_CLIENT.raiseEvent(key, 'Error', event) } for (let processIndex = 0; processIndex < global.TASK_NODE.bot.processes.length; processIndex++) { - let code = global.TASK_NODE.bot.processes[processIndex].code + let config = global.TASK_NODE.bot.processes[processIndex].config /* Validate that the minimun amount of input required are defined. */ - if (global.TASK_NODE.bot.processes[processIndex].marketReference === undefined) { - console.log("[WARN] Task Server -> server -> bootLoader -> Process Instance without a Market Reference. This process will not be executed. -> Process Instance = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex])); + if (global.TASK_NODE.parentNode === undefined) { + console.log("[ERROR] Task Server -> server -> bootLoader -> Task without a Task Manager. This process will not be executed. -> Process Instance = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex])); continue } - if (global.TASK_NODE.bot.processes[processIndex].marketReference.referenceParent === undefined) { - console.log("[WARN] Task Server -> server -> bootLoader -> Market Reference without a Reference Parent. This process will not be executed. -> Process Instance = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex].marketReference) + ", bot = " + global.TASK_NODE.bot.name); + if (global.TASK_NODE.parentNode.parentNode === undefined) { + console.log("[ERROR] Task Server -> server -> bootLoader -> Task Manager without Mine Tasks. This process will not be executed. -> Process Instance = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex])); continue } - if (global.TASK_NODE.bot.processes[processIndex].marketReference.referenceParent.parentNode === undefined) { - console.log("[WARN] Task Server -> server -> bootLoader -> Market without a Parent. This process will not be executed. -> Process Instance = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex].marketReference.referenceParent)); + if (global.TASK_NODE.parentNode.parentNode.parentNode === undefined) { + console.log("[ERROR] Task Server -> server -> bootLoader -> Mine Tasks without Market Tasks. This process will not be executed. -> Process Instance = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex])); continue } - if (global.TASK_NODE.bot.processes[processIndex].marketReference.referenceParent.parentNode.parentNode === undefined) { - console.log("[WARN] Task Server -> server -> bootLoader -> Exchange Markets without a Parent. This process will not be executed. -> Process Instance = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex].marketReference.referenceParent.parentNode)); + if (global.TASK_NODE.parentNode.parentNode.parentNode.referenceParent === undefined) { + console.log("[ERROR] Task Server -> server -> bootLoader -> Market Tasks without a Market. This process will not be executed. -> Process Instance = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex])); continue } - if (global.TASK_NODE.bot.processes[processIndex].marketReference.referenceParent.baseAsset === undefined) { - console.log("[WARN] Task Server -> server -> bootLoader -> Market without a Base Asset. This process will not be executed. -> Process Instance = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex].marketReference.referenceParent)); + global.MARKET_NODE = global.TASK_NODE.parentNode.parentNode.parentNode.referenceParent + + if (global.MARKET_NODE.parentNode === undefined) { + console.log("[ERROR] Task Server -> server -> bootLoader -> Market without a Parent. This process will not be executed. -> Process Instance = " + JSON.stringify(global.MARKET_NODE)); continue } - if (global.TASK_NODE.bot.processes[processIndex].marketReference.referenceParent.quotedAsset === undefined) { - console.log("[WARN] Task Server -> server -> bootLoader -> Market without a Quoted Asset. This process will not be executed. -> Process Instance = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex].marketReference.referenceParent)); + if (global.MARKET_NODE.parentNode.parentNode === undefined) { + console.log("[ERROR] Task Server -> server -> bootLoader -> Exchange Markets without a Parent. This process will not be executed. -> Process Instance = " + JSON.stringify(global.MARKET_NODE.parentNode)); continue } - if (global.TASK_NODE.bot.processes[processIndex].marketReference.referenceParent.baseAsset.referenceParent === undefined) { - console.log("[WARN] Task Server -> server -> bootLoader -> Base Asset without a Reference Parent. This process will not be executed. -> Process Instance = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex].marketReference.referenceParent.baseAsset)); + if (global.MARKET_NODE.baseAsset === undefined) { + console.log("[ERROR] Task Server -> server -> bootLoader -> Market without a Base Asset. This process will not be executed. -> Process Instance = " + JSON.stringify(global.MARKET_NODE)); continue } - if (global.TASK_NODE.bot.processes[processIndex].marketReference.referenceParent.quotedAsset.referenceParent === undefined) { - console.log("[WARN] Task Server -> server -> bootLoader -> Quoted Asset without a Reference Parent. This process will not be executed. -> Process Instance = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex].marketReference.referenceParent.quotedAsset)); + if (global.MARKET_NODE.quotedAsset === undefined) { + console.log("[ERROR] Task Server -> server -> bootLoader -> Market without a Quoted Asset. This process will not be executed. -> Process Instance = " + JSON.stringify(global.MARKET_NODE)); + continue + } + + if (global.MARKET_NODE.baseAsset.referenceParent === undefined) { + console.log("[ERROR] Task Server -> server -> bootLoader -> Base Asset without a Reference Parent. This process will not be executed. -> Process Instance = " + JSON.stringify(global.MARKET_NODE.baseAsset)); + continue + } + + if (global.MARKET_NODE.quotedAsset.referenceParent === undefined) { + console.log("[ERROR] Task Server -> server -> bootLoader -> Quoted Asset without a Reference Parent. This process will not be executed. -> Process Instance = " + JSON.stringify(global.MARKET_NODE.quotedAsset)); continue } if (global.TASK_NODE.bot.processes[processIndex].referenceParent === undefined) { - console.log("[WARN] Task Server -> server -> bootLoader -> Process Instance without a Reference Parent. This process will not be executed. -> Process Instance = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex])); + console.log("[ERROR] Task Server -> server -> bootLoader -> Process Instance without a Reference Parent. This process will not be executed. -> Process Instance = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex])); continue } if (global.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode === undefined) { - console.log("[WARN] Task Server -> server -> bootLoader -> Process Definition without parent Bot Definition. -> Process Definition = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex].referenceParent)); + console.log("[ERROR] Task Server -> server -> bootLoader -> Process Definition without parent Bot Definition. -> Process Definition = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex].referenceParent)); continue } if (global.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.parentNode === undefined) { - console.log("[WARN] Task Server -> server -> bootLoader -> Bot Definition without parent Data Mine. -> Bot Definition = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode)); + console.log("[ERROR] Task Server -> server -> bootLoader -> Bot Definition without parent Data Mine. -> Bot Definition = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode)); continue } - if (global.TASK_NODE.bot.processes[processIndex].referenceParent.code.codeName === undefined) { - console.log("[WARN] Task Server -> server -> bootLoader -> Process Definition without a codeName defined. -> Process Definition = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex].referenceParent)); + if (global.TASK_NODE.bot.processes[processIndex].referenceParent.config.codeName === undefined) { + console.log("[ERROR] Task Server -> server -> bootLoader -> Process Definition without a codeName defined. -> Process Definition = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex].referenceParent)); continue } - if (global.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.code.codeName === undefined) { - console.log("[WARN] Task Server -> server -> bootLoader -> Bot Definition without a codeName defined. -> Bot Definition = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode)); + if (global.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.config.codeName === undefined) { + console.log("[ERROR] Task Server -> server -> bootLoader -> Bot Definition without a codeName defined. -> Bot Definition = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode)); continue } - if (global.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.parentNode.code.codeName === undefined) { - console.log("[WARN] Task Server -> server -> bootLoader -> Data Mine without a codeName defined. -> Data Mine Definition = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.parentNode)); + if (global.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.parentNode.config.codeName === undefined) { + console.log("[ERROR] Task Server -> server -> bootLoader -> Data Mine without a codeName defined. -> Data Mine Definition = " + JSON.stringify(global.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.parentNode)); continue } @@ -278,7 +595,7 @@ function bootLoader() { function startRoot(processIndex) { - // console.log('[INFO] Task Server -> server -> startRoot -> Entering function. ') + // console.log('[INFO] Task Server -> server -> startRoot -> Entering function. ') const ROOT_MODULE = require('./Root') let root = ROOT_MODULE.newRoot() @@ -292,20 +609,20 @@ function startRoot(processIndex) { } global.getPercentage = function (fromDate, currentDate, lastDate) { - let fromDays = Math.trunc(fromDate.valueOf() / ONE_DAY_IN_MILISECONDS) - let currentDays = Math.trunc(currentDate.valueOf() / ONE_DAY_IN_MILISECONDS) - let lastDays = Math.trunc(lastDate.valueOf() / ONE_DAY_IN_MILISECONDS) + let fromDays = Math.trunc(fromDate.valueOf() / global.ONE_DAY_IN_MILISECONDS) + let currentDays = Math.trunc(currentDate.valueOf() / global.ONE_DAY_IN_MILISECONDS) + let lastDays = Math.trunc(lastDate.valueOf() / global.ONE_DAY_IN_MILISECONDS) let percentage = (currentDays - fromDays) * 100 / (lastDays - fromDays) if ((lastDays - fromDays) === 0) { percentage = 100 } - return percentage + return percentage } global.areEqualDates = function (date1, date2) { - let day1Days = Math.trunc(date1.valueOf() / ONE_DAY_IN_MILISECONDS) - let day2Days = Math.trunc(date2.valueOf() / ONE_DAY_IN_MILISECONDS) - + let day1Days = Math.trunc(date1.valueOf() / global.ONE_DAY_IN_MILISECONDS) + let day2Days = Math.trunc(date2.valueOf() / global.ONE_DAY_IN_MILISECONDS) + if (day1Days === day2Days) { return true } else { diff --git a/Trading-Systems/Example-ETH-USDT.json b/Trading-Systems/Example-ETH-USDT.json deleted file mode 100644 index a9be35370..000000000 --- a/Trading-Systems/Example-ETH-USDT.json +++ /dev/null @@ -1 +0,0 @@ -{"type":"Trading System","name":"ETH/USDT Example","code":"{ \n\"codeName\": \"Example-ETH-USDT\"\n}","strategies":[{"type":"Strategy","name":"My Strategy","triggerStage":{"type":"Trigger Stage","triggerOn":{"type":"Trigger On Event","situations":[{"type":"Situation","name":"Volatility Breakout","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerBand.deviation < 5","id":"c8b33f02-3fe4-4850-8a77-129f1ca4e052","savedPayload":{"position":{"x":38975.66793734307,"y":18584.9448362216},"targetPosition":{"x":39217.33004827555,"y":18233.750554323513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":4},"uiObject":{}}},"id":"dc1ba175-2d04-4514-a6f0-8fe495d9db07","savedPayload":{"position":{"x":39217.33004827555,"y":18233.750554323513},"targetPosition":{"x":39459.56127624091,"y":17882.529285044857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":4},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"Channel 12 down","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"f194dcf9-4dcf-4e55-b92a-4f6db8f06663","savedPayload":{"position":{"x":39208.14111699266,"y":18585.33318932539},"targetPosition":{"x":39332.89714364308,"y":18233.92624287807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":4},"uiObject":{}}},"id":"907e3344-d05a-4e77-8926-91f927693263","savedPayload":{"position":{"x":39332.89714364308,"y":18233.92624287807},"targetPosition":{"x":39459.56127624091,"y":17882.529285044857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":4},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.popularSMA.sma200 - chart.at01hs.popularSMA.sma100 < 10","id":"6f7ecdb9-93b4-444a-9500-591b6ac1f955","savedPayload":{"position":{"x":39400.6570084699,"y":18585.388175870383},"targetPosition":{"x":39428.74717507315,"y":18233.99778156078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":4},"uiObject":{}}},"id":"085cd01c-3053-419d-ac29-edd9653c192c","savedPayload":{"position":{"x":39428.74717507315,"y":18233.99778156078},"targetPosition":{"x":39459.56127624091,"y":17882.529285044857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":4},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"Convergence Divergence","code":"let currentDiff = chart.at01hs.base6SMA.sma120- chart.at01hs.base6SMA.sma60\nlet previousDiff = chart.at01hs.base6SMA.previous.sma120- chart.at01hs.base6SMA.previous.sma60\nif ( currentDiff > 5) { \n if ( previousDiff > currentDiff ) { true} else {false}\n} else {true}\n","id":"582cfd5f-d94d-4beb-bbea-188bbe1199c2","savedPayload":{"position":{"x":39592.31826565753,"y":18584.09102553276},"targetPosition":{"x":39527.950671506886,"y":18233.984946603843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":4},"uiObject":{}}},"id":"5983839f-a2c0-4da1-a8fb-1ea4e09a606c","savedPayload":{"position":{"x":39527.950671506886,"y":18233.984946603843},"targetPosition":{"x":39459.56127624091,"y":17882.529285044857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":4},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"(\n (chart.at01hs.bollingerSubChannel.slope === \"Side\" || chart.at01hs.bollingerSubChannel.slope === \"Gentle\") &&\n (chart.at01hs.bollingerSubChannel.previous.slope === \"Side\" || chart.at01hs.bollingerSubChannel.previous.slope === \"Gentle\")\n) ||\n(\n (chart.at01hs.bollingerSubChannel.previous.slope === \"Side\" || chart.at01hs.bollingerSubChannel.previous.slope === \"Gentle\") &&\n (chart.at01hs.bollingerSubChannel.previous.previous.slope === \"Side\" || chart.at01hs.bollingerSubChannel.previous.previous.slope === \"Gentle\")\n) ||\n(\n (chart.at01hs.bollingerSubChannel.previous.previous.slope === \"Side\" || chart.at01hs.bollingerSubChannel.previous.previous.slope === \"Gentle\") &&\n (chart.at01hs.bollingerSubChannel.previous.previous.previous.slope === \"Side\" || chart.at01hs.bollingerSubChannel.previous.previous.previous.slope === \"Gentle\")\n) ","id":"22848b8a-15c1-48fa-af0b-82711188330c","savedPayload":{"position":{"x":39796.829770335906,"y":18584.85107679872},"targetPosition":{"x":39628.82031570484,"y":18233.879648336875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":4},"uiObject":{}}},"id":"b9b6f7a4-1662-4e32-96de-54c2b431d1ba","savedPayload":{"position":{"x":39628.82031570484,"y":18233.879648336875},"targetPosition":{"x":39459.56127624091,"y":17882.529285044857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":4},"uiObject":{"isRunning":false}}}],"id":"98a7dbb9-421d-4dd3-9148-2db5e1dc5d06","savedPayload":{"position":{"x":39459.56127624091,"y":17882.529285044857},"targetPosition":{"x":40160.60247318399,"y":17827.092525048967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"Extreme Up tp Down","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\"","id":"779bba7a-9b4e-4090-90db-33b542c06b9d","savedPayload":{"position":{"x":39969.54095715052,"y":16206.101730742714},"targetPosition":{"x":39730.67441259208,"y":16907.50340014279},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":5},"uiObject":{}}},"id":"a815ab0d-e246-42cc-8299-1ce5cc78db16","savedPayload":{"position":{"x":39730.67441259208,"y":16907.50340014279},"targetPosition":{"x":39491.898590188706,"y":17609.48679082106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":5},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope=== \"Medium\" ||\nchart.at01hs.bollingerSubChannel.slope=== \"Steep\" ||\nchart.at01hs.bollingerSubChannel.slope=== \"Extreme\"","id":"72e777a7-3a3e-46b1-a68e-9aa4b138f3f3","savedPayload":{"position":{"x":39754.851100701715,"y":16206.321792716542},"targetPosition":{"x":39623.31506141007,"y":16907.81739232241},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":5},"uiObject":{}}},"id":"170c4ab3-16c2-418d-9a97-5e4046ea4fc6","savedPayload":{"position":{"x":39623.31506141007,"y":16907.81739232241},"targetPosition":{"x":39491.898590188706,"y":17609.48679082106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":5},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.previous.direction === \"Up\"","id":"7cd4b9d8-92e1-476c-a1c5-fde9bc6c7e0c","savedPayload":{"position":{"x":39551.94781507712,"y":16206.37670592337},"targetPosition":{"x":39522.09822613315,"y":16907.905086533247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":5},"uiObject":{}}},"id":"a3c9a0b6-23f5-4b50-92ef-c653dfd80d7d","savedPayload":{"position":{"x":39522.09822613315,"y":16907.905086533247},"targetPosition":{"x":39491.898590188706,"y":17609.48679082106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":5},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.previous.slope=== \"Medium\" ||\nchart.at01hs.bollingerSubChannel.previous.slope=== \"Steep\" ||\nchart.at01hs.bollingerSubChannel.previous.slope=== \"Extreme\"","id":"009e717e-0d60-4a3b-a0f1-5c182d4145e1","savedPayload":{"position":{"x":39350.59476214698,"y":16206.444143726349},"targetPosition":{"x":39420.89199017454,"y":16907.94976360571},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":5},"uiObject":{}}},"id":"5d26fac2-8265-4fcb-9450-a068068634f9","savedPayload":{"position":{"x":39420.89199017454,"y":16907.94976360571},"targetPosition":{"x":39491.898590188706,"y":17609.48679082106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":5},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.previous.previous.direction === \"Up\"","id":"a7ef2c7c-0820-4c61-8687-d1c80f688999","savedPayload":{"position":{"x":39144.27040214298,"y":16206.618841537993},"targetPosition":{"x":39317.95267207118,"y":16908.04927112296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":5},"uiObject":{}}},"id":"25492b74-4028-4db9-b45f-31203e173dc2","savedPayload":{"position":{"x":39317.95267207118,"y":16908.04927112296},"targetPosition":{"x":39491.898590188706,"y":17609.48679082106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":5},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.previous.previous.slope=== \"Steep\" ||\nchart.at01hs.bollingerSubChannel.previous.previous.slope=== \"Extreme\"","id":"a8ad716c-90d8-43cc-9b1c-74124be1f4e7","savedPayload":{"position":{"x":38922.31312124393,"y":16206.885699964567},"targetPosition":{"x":39206.948404118324,"y":16908.183690674712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":5},"uiObject":{}}},"id":"a9087a2a-6ba6-429e-a354-6892a934831d","savedPayload":{"position":{"x":39206.948404118324,"y":16908.183690674712},"targetPosition":{"x":39491.898590188706,"y":17609.48679082106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":5},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.previous.previous.previous.direction === \"Up\"","id":"96968bf7-5a20-42fd-9ad3-1645312ed67a","savedPayload":{"position":{"x":38673.03902483318,"y":16207.27545579658},"targetPosition":{"x":39082.298587064644,"y":16908.376102983762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":5},"uiObject":{}}},"id":"88e2c3ee-aa4b-4c1d-9eb0-6387f950ac41","savedPayload":{"position":{"x":39082.298587064644,"y":16908.376102983762},"targetPosition":{"x":39491.898590188706,"y":17609.48679082106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":5},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.previous.previous.slope=== \"Extreme\"","id":"90b0c032-85eb-4a95-a99b-93744543dd28","savedPayload":{"position":{"x":38378.37419831872,"y":16207.825475831196},"targetPosition":{"x":38934.964251620084,"y":16908.64599430716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":5},"uiObject":{}}},"id":"2a47ec3d-acc1-47fd-b78d-e73ebcf22ea3","savedPayload":{"position":{"x":38934.964251620084,"y":16908.64599430716},"targetPosition":{"x":39491.898590188706,"y":17609.48679082106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":5},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"Channel 12 down","code":"chart.at12hs.bollingerChannel.direction === \"Down\"","id":"26e83ad0-2c67-4811-ba93-2bb8cd37bdbf","savedPayload":{"position":{"x":38008.18719732838,"y":16208.600604412388},"targetPosition":{"x":38749.87686897238,"y":16909.028480802514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":5},"uiObject":{}}},"id":"6dff7477-d730-4380-a11b-1573acbdddea","savedPayload":{"position":{"x":38749.87686897238,"y":16909.028480802514},"targetPosition":{"x":39491.898590188706,"y":17609.48679082106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":5},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"Convergence Divergence","code":"let currentDiff = chart.at01hs.base6SMA.sma120- chart.at01hs.base6SMA.sma60\nlet previousDiff = chart.at01hs.base6SMA.previous.sma120- chart.at01hs.base6SMA.previous.sma60\nif ( currentDiff > 5) { \n if ( previousDiff > currentDiff ) { true} else {false}\n} else {true}\n","id":"1c0a3e5e-b80f-43ea-8316-7db3b3251f52","savedPayload":{"position":{"x":37505.79838580453,"y":16209.732189550334},"targetPosition":{"x":38498.68628481394,"y":16909.593871796234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":5},"uiObject":{}}},"id":"4d6c5b41-469f-4276-a8da-62ccb6cd9f0c","savedPayload":{"position":{"x":38498.68628481394,"y":16909.593871796234},"targetPosition":{"x":39491.898590188706,"y":17609.48679082106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":5},"uiObject":{"isRunning":false}}}],"id":"26b2205a-a2e1-475f-9387-3d41da2eade1","savedPayload":{"position":{"x":39491.898590188706,"y":17609.48679082106},"targetPosition":{"x":40160.60247318399,"y":17827.092525048967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"New Announcement","code":"{ \n\"text\": \"Triggered ON !\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Triggered ON at rate \" + candle.close + \" \" + quotedAsset + \". balanceBaseAsset = \" + balanceBaseAsset + \" \" + baseAsset + \".\"","id":"2eb05319-2614-4086-b362-4848e5e0ae46","savedPayload":{"position":{"x":24952.161013693756,"y":39362.54925944117},"targetPosition":{"x":25214.294118716967,"y":39586.660347200865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"36d1d184-4ed7-43b2-936f-942a4a38457c","savedPayload":{"position":{"x":39893.96818370987,"y":17598.984735036076},"targetPosition":{"x":40160.60247318399,"y":17827.092525048967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6b7d0ed5-a7d2-45a4-8315-bad22d58facb","savedPayload":{"position":{"x":40160.60247318399,"y":17827.092525048967},"targetPosition":{"x":40828.79837148866,"y":18043.99260378728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"e"}}},"triggerOff":{"type":"Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerBand.direction=== \"Up\"","id":"95f23ff9-a105-47a8-9fa1-c4b627d8f1dd","savedPayload":{"position":{"x":24120.634163723043,"y":38164.31189273787},"targetPosition":{"x":24655.806183680434,"y":38597.85119968526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"89fb4f7a-0500-4324-8116-17f03e29fc8c","savedPayload":{"position":{"x":24655.806183680434,"y":38597.85119968526},"targetPosition":{"x":25191.03948227251,"y":39031.48984343016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e8e0a028-991f-4d1b-8e6d-9e55d9a79cc7","savedPayload":{"position":{"x":39869.96197566348,"y":17032.980565130456},"targetPosition":{"x":40415.95028229634,"y":17475.42493623962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"New Announcement","code":"{ \n\"text\": \"Triggered ON !\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Triggered OFF at rate \" + candle.close + \" \" + quotedAsset + \". balanceBaseAsset = \" + balanceBaseAsset + \" \" + baseAsset + \".\"","id":"fb0ea8b9-4d68-418a-9cf5-80f7287b8cbb","savedPayload":{"position":{"x":40164.78300806596,"y":16819.230116224822},"targetPosition":{"x":40290.34567533172,"y":17147.403040034133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8656427e-17ee-4919-b766-2ca49442ba21","savedPayload":{"position":{"x":40290.34567533172,"y":17147.403040034133},"targetPosition":{"x":40415.95028229634,"y":17475.42493623962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2cd9c7a6-a9cc-47af-80f0-d35d9c60d6f8","savedPayload":{"position":{"x":40415.95028229634,"y":17475.42493623962},"targetPosition":{"x":40828.79837148866,"y":18043.99260378728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","situations":[{"type":"Situation","name":" 3 Min","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.min< chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","id":"4b93f1b6-9977-4486-8786-43fa6a97933f","savedPayload":{"position":{"x":40359.7981144081,"y":15661.36396366063},"targetPosition":{"x":40485.77978482326,"y":15989.36305172966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"42d544df-c863-4dca-a8fb-43b61983f0dc","savedPayload":{"position":{"x":40485.77978482326,"y":15989.36305172966},"targetPosition":{"x":40737.48363798533,"y":16644.057048798677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.min< chart.at01hs.bollingerBand.previous.movingAverage - chart.at01hs.bollingerBand.previous.deviation","id":"2bef9fbd-b3a7-4030-bc52-07cf8403b5e3","savedPayload":{"position":{"x":40518.825146753814,"y":15614.165286121397},"targetPosition":{"x":40591.74670606619,"y":15957.934096806865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f4f26586-fb67-41db-aa8d-842cc41e8126","savedPayload":{"position":{"x":40591.74670606619,"y":15957.934096806865},"targetPosition":{"x":40737.48363798533,"y":16644.057048798677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.previous.min< chart.at01hs.bollingerBand.previous.previous.movingAverage - chart.at01hs.bollingerBand.previous.previous.deviation","id":"bc53ed58-a2f3-49b2-92f5-b2b42eeecd62","savedPayload":{"position":{"x":40683.01309399883,"y":15592.574026760418},"targetPosition":{"x":40701.132492502235,"y":15943.543713863683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"49903366-2e10-4658-81ba-4043d68815f3","savedPayload":{"position":{"x":40701.132492502235,"y":15943.543713863683},"targetPosition":{"x":40737.48363798533,"y":16644.057048798677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerBand.deviation >= 1.5","id":"e875491d-1fc0-4de6-b1db-83e3226c112f","savedPayload":{"position":{"x":40848.27917237193,"y":15597.050760405007},"targetPosition":{"x":40811.35249721972,"y":15946.492453693521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e7fb66f4-fd90-4ebf-8c70-1425d32ca6fa","savedPayload":{"position":{"x":40811.35249721972,"y":15946.492453693521},"targetPosition":{"x":40737.48363798533,"y":16644.057048798677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"972e94e6-dab6-4d8d-966b-8d64a76b0928","savedPayload":{"position":{"x":40737.48363798533,"y":16644.057048798677},"targetPosition":{"x":40828.99300332594,"y":17341.163179913245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"New Announcement","code":"{ \n\"text\": \"Triggered ON !\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Take Position at rate \" + candle.close + \" \" + quotedAsset + \". balanceBaseAsset = \" + balanceBaseAsset + \" \" + baseAsset + \".\"","id":"1fb19c15-3a56-4399-81a4-0215cd3a7408","savedPayload":{"position":{"x":41011.648974863994,"y":16662.667716069736},"targetPosition":{"x":40920.16830692097,"y":17001.964555753053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fc4bb38a-e21a-4ad4-afb7-4c1a08032523","savedPayload":{"position":{"x":40920.16830692097,"y":17001.964555753053},"targetPosition":{"x":40828.99300332594,"y":17341.163179913245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4e7d70a7-66a3-4ce3-8578-765a693d93ba","savedPayload":{"position":{"x":40828.99300332594,"y":17341.163179913245},"targetPosition":{"x":40828.79837148866,"y":18043.99260378728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"r"}}},"announcements":[{"type":"Announcement","name":"New Announcement","code":"{ \n\"text\": \"Triggered ON !\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Trigger Stage at rate \" + candle.close + \" \" + quotedAsset + \".\"","id":"fee1ad22-1475-49de-8222-42b01d1407b7","savedPayload":{"position":{"x":41149.3272288524,"y":17603.867865805965},"targetPosition":{"x":41045.585458134155,"y":17746.08686593274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a67efd5d-3072-4053-9a6f-8f4e9c1e5a16","savedPayload":{"position":{"x":41045.585458134155,"y":17746.08686593274},"targetPosition":{"x":40828.79837148866,"y":18043.99260378728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"078dc437-73fe-4333-9bc4-33afd4a3c466","savedPayload":{"position":{"x":40828.628834123585,"y":18043.764574783247},"targetPosition":{"x":41045.751931026774,"y":18712.330423882606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"openStage":{"type":"Open Stage","initialDefinition":{"type":"Initial Definition","stopLoss":{"type":"Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"if (positionRate + positionRate * 1.5 / 100 > 150 * 5 / 200) {positionRate + positionRate * 1.5 / 100} else {150 * 5 / 200}","id":"448ee554-e3de-4efa-81f3-d432b2c53862","savedPayload":{"position":{"x":27862.754090463466,"y":37801.87043507369},"targetPosition":{"x":28196.023715857813,"y":37890.93953134401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 4 / 100","id":"693e9797-a626-4b2e-b14f-82551b30ac8e","savedPayload":{"position":{"x":27838.798202872717,"y":36558.561232499625},"targetPosition":{"x":27927.986616967617,"y":36891.59830842613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"726584e8-8260-446d-b9d3-b023c71937ea","savedPayload":{"position":{"x":27928.0102979253,"y":36891.60954193342},"targetPosition":{"x":28017.272719831937,"y":37224.74749626965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d6cf0c0e-3c01-4136-826d-b9cf33781e01","savedPayload":{"position":{"x":28017.272719831937,"y":37224.74749626965},"targetPosition":{"x":28106.60177946232,"y":37557.90208286212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"fb546e97-5b64-4215-887b-f855dce837b4","savedPayload":{"position":{"x":28106.60177946232,"y":37557.90208286212},"targetPosition":{"x":28196.023715857813,"y":37890.93953134401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"2583cd03-b155-4100-a9fe-d24907c153ad","savedPayload":{"position":{"x":28196.023715857813,"y":37890.93953134401},"targetPosition":{"x":28439.981374200324,"y":38134.53988875988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8c1ee9e2-d7b5-4d46-9a53-dfbaa3cbec70","savedPayload":{"position":{"x":28439.981374200324,"y":38134.53988875988},"targetPosition":{"x":28683.803832355705,"y":38377.86013555271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.4","id":"98daaee6-e88b-4fce-a65d-e8097f463762","savedPayload":{"position":{"x":28359.61287064344,"y":37429.05752433421},"targetPosition":{"x":28576.48877521516,"y":37697.079821834835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at03hs.percentageBandwidth.previous.movingAverage <= 0.25","id":"cde19aef-5c69-4db0-9682-a0d74e7ec977","savedPayload":{"position":{"x":28923.98110539865,"y":36362.36005030556},"targetPosition":{"x":28843.621943313265,"y":36697.73827957708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bb26132e-edf1-47db-b5e3-1b61dcd58f92","savedPayload":{"position":{"x":28843.616777923242,"y":36697.769671585316},"targetPosition":{"x":28763.316515353217,"y":37033.35111075147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4f7d76f4-5a8e-4573-9c60-fb34d83b806e","savedPayload":{"position":{"x":28763.316515353217,"y":37033.35111075147},"targetPosition":{"x":28700.06150409167,"y":37375.31216617662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at03hs.percentageBandwidth.movingAverage <= 30 * 5 / 200","id":"eea4143b-b66d-452d-a272-55268af2a4e6","savedPayload":{"position":{"x":29124.43296863819,"y":36432.1470982425},"targetPosition":{"x":29000.802790383877,"y":36754.119439115646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ca7cfb9e-049d-4148-bf2f-d683dc3fa65f","savedPayload":{"position":{"x":29000.817705469985,"y":36754.13290164355},"targetPosition":{"x":28881.899656465408,"y":37078.84897717983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","id":"0518480b-e27c-479b-8739-b4fb49045d66","savedPayload":{"position":{"x":29292.502580161425,"y":36523.52262290348},"targetPosition":{"x":29089.69809182339,"y":36802.46268486007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fcda259c-a156-41de-a145-170fb03137c9","savedPayload":{"position":{"x":29089.70110764168,"y":36802.45683656605},"targetPosition":{"x":28881.899656465408,"y":37078.84897717983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ba21cfb1-f66d-49fc-9674-3b54053f5e3c","savedPayload":{"position":{"x":28881.899656465408,"y":37078.84897717983},"targetPosition":{"x":28700.06150409167,"y":37375.31216617662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"02450cc1-7387-412f-b29c-9cefcfb15530","savedPayload":{"position":{"x":28700.06150409167,"y":37375.31216617662},"targetPosition":{"x":28576.48877521516,"y":37697.079821834835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"078a395a-7d4e-4f4d-8a60-a1c87942d05a","savedPayload":{"position":{"x":28576.48877521516,"y":37697.079821834835},"targetPosition":{"x":28630.206928530763,"y":38037.58645012647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"873582e3-a457-433b-9c5b-b954b7a2d52b","savedPayload":{"position":{"x":28630.206928530763,"y":38037.58645012647},"targetPosition":{"x":28683.803832355705,"y":38377.86013555271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"Position Size","formula":{"type":"Formula","code":"balanceBaseAsset","id":"c138e36f-a98c-4b09-a5a8-48e9cb7517f4","savedPayload":{"position":{"x":28997.49154888704,"y":37763.97659571936},"targetPosition":{"x":28840.644326783942,"y":38070.957298293026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d8f17559-4d61-4bad-b908-574f0086d88c","savedPayload":{"position":{"x":28840.644326783942,"y":38070.957298293026},"targetPosition":{"x":28683.803832355705,"y":38377.86013555271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"Position Rate","formula":{"type":"Formula","name":"My Formula","code":"candle.close","id":"a6df3558-2d4c-49fd-ae22-60a0096a1838","savedPayload":{"position":{"x":29298.49535904129,"y":38065.43152380673},"targetPosition":{"x":28991.122647089924,"y":38221.738681927076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"12b556ff-c7b5-43fb-836f-4587193c32c5","savedPayload":{"position":{"x":28991.122647089924,"y":38221.738681927076},"targetPosition":{"x":28683.803832355705,"y":38377.86013555271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1b2aa4b3-f2cf-4193-811e-9fbbdbf49b2b","savedPayload":{"position":{"x":28683.803832355705,"y":38377.86013555271},"targetPosition":{"x":28575.90003806251,"y":39058.51954897065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"t"}}},"openExecution":{"type":"Open Execution","id":"de41f928-10a0-400c-b391-30744f81058f","savedPayload":{"position":{"x":29132.72153020977,"y":38654.38684107272},"targetPosition":{"x":28575.90003806251,"y":39058.51954897065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"New Announcement","code":"{ \n\"text\": \"Triggered ON !\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Open Stage at rate \" + candle.close + \" \" + quotedAsset + \".\"","id":"80e99b1d-03cb-47c5-9b12-b9d56dd16fe2","savedPayload":{"position":{"x":29596.623852842335,"y":39220.21512113033},"targetPosition":{"x":29256.136965529164,"y":39166.29623763803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2d838268-9c72-419d-8e40-94c25a3a1225","savedPayload":{"position":{"x":29256.136965529164,"y":39166.29623763803},"targetPosition":{"x":28575.90003806251,"y":39058.51954897065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"70bf3771-b311-4b70-b881-7f3cb384973e","savedPayload":{"position":{"x":43319.18459776506,"y":17060.613845833795},"targetPosition":{"x":41045.751931026774,"y":18712.330423882606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","stopLoss":{"type":"Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 4 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 4 / 100} else {stopLoss}","id":"de31bf30-1a8c-47e0-b86d-f678f7ae5d58","savedPayload":{"position":{"x":28718.13371183511,"y":40906.762247621424},"targetPosition":{"x":28244.700963740746,"y":41405.95165218291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[],"announcements":[],"id":"3cc519c4-645c-428b-b7ea-f06b3b234cee","savedPayload":{"position":{"x":28441.67248087259,"y":42066.24116563961},"targetPosition":{"x":28244.700963740746,"y":41405.95165218291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"d6b223e2-645f-43eb-998e-426aa4634155","savedPayload":{"position":{"x":28244.700963740746,"y":41405.95165218291},"targetPosition":{"x":27573.72676577209,"y":41245.23424938797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c96e927b-dfaa-4fb8-b253-340aab3727e2","savedPayload":{"position":{"x":27573.72676577209,"y":41245.23424938797},"targetPosition":{"x":26903.026095516023,"y":41084.478988003975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","phases":[{"type":"Phase","name":"New Phase 1","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.35","id":"aba39824-a369-42ff-b795-c4befbc41722","savedPayload":{"position":{"x":28769.08089716601,"y":41888.4379265043},"targetPosition":{"x":28297.391454542332,"y":42098.51226496971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at04hs.percentageBandwidth.previous.movingAverage <= 15 * 5 / 200","id":"d85655db-5f1b-49a1-80ac-d34a2f3618e8","savedPayload":{"position":{"x":28217.673422187934,"y":44160.143086470525},"targetPosition":{"x":28210.272768384122,"y":43900.259519928426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"10770e7d-d204-44d7-987d-8eebc8e0f9fd","savedPayload":{"position":{"x":28210.123636786306,"y":43900.2456469662},"targetPosition":{"x":28203.665876389226,"y":43643.460137477676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"abe76ce1-b2cd-4b77-8da0-1fbb7ed0f456","savedPayload":{"position":{"x":28202.887929602704,"y":43642.293700933034},"targetPosition":{"x":28189.361912247517,"y":43125.22822862359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at04hs.percentageBandwidth.movingAverage <= 50 * 5 / 200","id":"a8127516-d10b-4922-a587-8c0a40987a6b","savedPayload":{"position":{"x":27513.78932387198,"y":44494.28717661295},"targetPosition":{"x":27698.925470660823,"y":44011.81884920919},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b9ea6c7-ef39-4b0c-a066-25d0cb3e684a","savedPayload":{"position":{"x":27698.582108426705,"y":44026.59779701859},"targetPosition":{"x":27885.262324641033,"y":43543.68490046174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","id":"83541ebf-2d85-4347-be2f-5519c28cc06b","savedPayload":{"position":{"x":27083.528458148056,"y":44192.669279745365},"targetPosition":{"x":27483.27142319978,"y":43868.06645668192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a5ebd149-82ca-42ee-a019-c35908630c97","savedPayload":{"position":{"x":27483.214415385588,"y":43868.003197810416},"targetPosition":{"x":27885.262324641033,"y":43543.68490046174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"780a0b1c-d8e9-42d0-83e9-7eac38526713","savedPayload":{"position":{"x":27884.812411662948,"y":43543.13675637284},"targetPosition":{"x":28189.361912247517,"y":43125.22822862359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f2f28964-3527-40a4-aab8-a5bddee456c3","savedPayload":{"position":{"x":28189.361912247517,"y":43125.22822862359},"targetPosition":{"x":28297.391454542332,"y":42098.51226496971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"f721e717-fe84-4fc8-89ea-a9169fbb2b8b","savedPayload":{"position":{"x":28297.391454542332,"y":42098.51226496971},"targetPosition":{"x":27461.018701923105,"y":41490.565943387344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase 2","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.2","id":"31c09170-3870-4ecd-8df5-c006d099fd26","savedPayload":{"position":{"x":29605.686405287142,"y":42496.12145503934},"targetPosition":{"x":29133.83759882158,"y":42706.003235608514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at06hs.percentageBandwidth.previous.movingAverage <= 15 * 5 / 200","id":"cc42d05e-5214-4e6a-a8b1-a0b0a1a43f9e","savedPayload":{"position":{"x":29051.724137379573,"y":44754.593729003034},"targetPosition":{"x":29045.638231103414,"y":44495.9715253245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cb14f97b-80b4-403c-9338-33ff0ee50d54","savedPayload":{"position":{"x":29045.638231103414,"y":44495.9715253245},"targetPosition":{"x":29038.786690773053,"y":44237.11243451953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b3d438af-a983-421f-ad44-1e8e68045bec","savedPayload":{"position":{"x":29041.193004122222,"y":44248.37672997642},"targetPosition":{"x":29027.066555130652,"y":43733.07371506251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at06hs.percentageBandwidth.movingAverage <= 50 * 5 / 200","id":"b4b0a458-6c0d-48ee-8229-16bbbe0d8aab","savedPayload":{"position":{"x":28350.97292530882,"y":45103.039301842044},"targetPosition":{"x":28536.016900799015,"y":44620.71970698076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5fd35821-cdc3-40a5-9c1a-99d6c34ad3a5","savedPayload":{"position":{"x":28536.016900799015,"y":44620.71970698076},"targetPosition":{"x":28720.981680598357,"y":44137.8664669123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","id":"8fc41821-4223-4d62-9c1e-8b8a58b19a64","savedPayload":{"position":{"x":27777.2669807274,"y":44558.416733298676},"targetPosition":{"x":28249.245287566355,"y":44348.24301712329},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65cdb202-4470-4dab-b395-84bf1139ed90","savedPayload":{"position":{"x":28249.245287566355,"y":44348.24301712329},"targetPosition":{"x":28720.981680598357,"y":44137.8664669123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"65998ace-ed44-4b7c-9bac-b41b5dbd91f3","savedPayload":{"position":{"x":28722.664977809065,"y":44152.133085053705},"targetPosition":{"x":29027.066555130652,"y":43733.07371506251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5eb70946-55ab-468d-a1f7-b8489bfd1918","savedPayload":{"position":{"x":29026.25851806721,"y":43732.54526995663},"targetPosition":{"x":29133.83759882158,"y":42706.003235608514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"322e4405-f6d8-4119-8b06-12842394446c","savedPayload":{"position":{"x":29133.83759882158,"y":42706.003235608514},"targetPosition":{"x":28297.391454542332,"y":42098.51226496971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase 3","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.15","id":"7ccb623f-5c4a-4ea4-b9a5-b03915edf701","savedPayload":{"position":{"x":30442.76505686322,"y":43102.81532845912},"targetPosition":{"x":29970.88734908114,"y":43313.29735246427},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at08hs.percentageBandwidth.previous.movingAverage <= 15 * 5 / 200 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >= 5","id":"94d1d02d-44f4-473a-a7b7-de2f1468c057","savedPayload":{"position":{"x":29888.352271297714,"y":45361.270478878745},"targetPosition":{"x":29882.192773915227,"y":45102.69247178304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83e4873c-27af-44af-9073-77ffd7a572f2","savedPayload":{"position":{"x":29882.192773915227,"y":45102.69247178304},"targetPosition":{"x":29875.85041104174,"y":44843.61090659265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a356f8d7-9b7a-426d-be67-94c31110dbe5","savedPayload":{"position":{"x":29875.85041104174,"y":44843.61090659265},"targetPosition":{"x":29862.093623619825,"y":44326.91293823362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at08hs.percentageBandwidth.movingAverage <= 40 * 5 / 200 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >= 3","id":"85d8bc86-36d2-444c-af92-bf65f6e22495","savedPayload":{"position":{"x":29279.967170351716,"y":45469.22859679188},"targetPosition":{"x":29372.666929809657,"y":45227.35545864132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2c1acf3c-eba9-4b8d-b37d-5b39d53b6675","savedPayload":{"position":{"x":29372.666929809657,"y":45227.35545864132},"targetPosition":{"x":29558.181693584735,"y":44745.1276047753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.direction === \"Up\"","id":"2638c79e-6109-44bb-a538-9b6e5be989e6","savedPayload":{"position":{"x":28754.986701051188,"y":45396.309332964716},"targetPosition":{"x":29156.88814103355,"y":45070.69701665891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d888e03a-7cc1-415d-81df-8b65e0352ef0","savedPayload":{"position":{"x":29156.88814103355,"y":45070.69701665891},"targetPosition":{"x":29558.181693584735,"y":44745.1276047753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aea51276-c54c-48c7-83ed-eb7f42194f1f","savedPayload":{"position":{"x":29558.181693584735,"y":44745.1276047753},"targetPosition":{"x":29862.093623619825,"y":44326.91293823362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"e447d90b-6e92-4000-9c25-f106e1bbc311","savedPayload":{"position":{"x":29863.288774002736,"y":44340.20860259425},"targetPosition":{"x":29970.88734908114,"y":43313.29735246427},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"05723b89-c8ed-4d8d-b30f-5fe78c84ebfe","savedPayload":{"position":{"x":29970.88734908114,"y":43313.29735246427},"targetPosition":{"x":29133.83759882158,"y":42706.003235608514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase 4","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.1","id":"9d4d7cf5-c982-4eb2-b532-cf889f16f490","savedPayload":{"position":{"x":31283.448668078945,"y":43711.24136450083},"targetPosition":{"x":30809.565967620572,"y":43920.61129526557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at12hs.percentageBandwidth.previous.movingAverage <= 15* 5 / 200 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >= 15","id":"a76f5183-192b-4959-8e7b-cfd0ec60a531","savedPayload":{"position":{"x":30726.315294401636,"y":45968.44257127543},"targetPosition":{"x":30719.403220930104,"y":45709.65219759063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2eb5d722-b708-47c0-a952-09df9d96110b","savedPayload":{"position":{"x":30719.403220930104,"y":45709.65219759063},"targetPosition":{"x":30713.09778732514,"y":45451.2549074874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"638ae37a-361d-4a11-9c88-3292df00b73a","savedPayload":{"position":{"x":30713.09778732514,"y":45451.2549074874},"targetPosition":{"x":30699.509220993346,"y":44934.228166094734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"(chart.at24hs.percentageBandwidth.movingAverage <= 70 * 5 / 200 || chart.at12hs.percentageBandwidth.movingAverage <= 40 * 5 / 200 ) && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=5","id":"dd4fb83f-cf74-46f8-91e3-ee89ff9d8ce7","savedPayload":{"position":{"x":30117.059948453647,"y":46076.17070114448},"targetPosition":{"x":30209.830813714078,"y":45834.75155622112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ebc92857-50ae-4375-9287-4b5f98294395","savedPayload":{"position":{"x":30209.830813714078,"y":45834.75155622112},"targetPosition":{"x":30395.100812836874,"y":45352.16993193326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","id":"bb3cd9c3-7482-4c8d-b5ed-9ee4f5c41e30","savedPayload":{"position":{"x":29592.089768910646,"y":46002.87543231785},"targetPosition":{"x":29993.63470829312,"y":45677.273213323766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"29c292c8-18a1-4db7-a300-348381a340f5","savedPayload":{"position":{"x":29993.63470829312,"y":45677.273213323766},"targetPosition":{"x":30395.100812836874,"y":45352.16993193326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b0dcc674-ee90-4e04-80e9-47e4654075b1","savedPayload":{"position":{"x":30395.100812836874,"y":45352.16993193326},"targetPosition":{"x":30699.509220993346,"y":44934.228166094734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"084686eb-9896-405a-a232-4845a46cda93","savedPayload":{"position":{"x":30704.17733940086,"y":44951.084373052625},"targetPosition":{"x":30809.748975953848,"y":43920.60002109334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"fec5b7b3-e8d8-4197-9a12-0d24e746c775","savedPayload":{"position":{"x":30807.94629438503,"y":43920.755532910414},"targetPosition":{"x":29970.88734908114,"y":43313.29735246427},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase 5","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation * 1.75","id":"98781ade-0130-4b11-b972-9ea9cd8c8681","savedPayload":{"position":{"x":32116.427373336363,"y":44304.36226927431},"targetPosition":{"x":31643.954044687805,"y":44514.76283542852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.previous.movingAverage <= 30 * 5 / 200 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=10","id":"c857cb76-469a-4610-aae1-c24bea799227","savedPayload":{"position":{"x":31697.92367134093,"y":46563.37866177049},"targetPosition":{"x":31657.69455772915,"y":46308.296408520175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4ec27db1-cfd7-4b0e-a2c7-e24e31fbddd4","savedPayload":{"position":{"x":31657.69455772915,"y":46308.296408520175},"targetPosition":{"x":31617.59940331046,"y":46052.525304911855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ed10b124-3dbf-4263-bdfc-39f83b7bdf46","savedPayload":{"position":{"x":31617.59940331046,"y":46052.525304911855},"targetPosition":{"x":31536.734143167356,"y":45541.767269313095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"(chart.at24hs.percentageBandwidth.movingAverage <= 60 * 5 / 200 || chart.at12hs.percentageBandwidth.movingAverage <= 30* 5 / 200) && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=5","id":"abf5c421-f55f-4357-a0b1-30b057b97563","savedPayload":{"position":{"x":30862.833929281474,"y":46924.718878878266},"targetPosition":{"x":31048.04636218654,"y":46442.27306350962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f43a7856-d53a-4a71-afcd-080570df62e9","savedPayload":{"position":{"x":31048.04636218654,"y":46442.27306350962},"targetPosition":{"x":31233.063670844833,"y":45960.206278213635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","id":"54f755e2-02cb-4301-98eb-52b7a7c856d8","savedPayload":{"position":{"x":30430.55172997686,"y":46611.4083095655},"targetPosition":{"x":30832.14552148268,"y":46285.97291674377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"00d1d808-1757-43a5-9937-1ad755ba0a6d","savedPayload":{"position":{"x":30832.14552148268,"y":46285.97291674377},"targetPosition":{"x":31233.063670844833,"y":45960.206278213635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"12567531-5c2b-4d7d-b7e0-3ac2c28211d8","savedPayload":{"position":{"x":31233.063670844833,"y":45960.206278213635},"targetPosition":{"x":31536.734143167356,"y":45541.767269313095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9abc28a3-70a5-45b3-8b62-5176c2b0dfa4","savedPayload":{"position":{"x":31536.734143167356,"y":45541.767269313095},"targetPosition":{"x":31643.954044687805,"y":44514.76283542852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"07b02430-b413-4c1d-9b30-af6d04b6144d","savedPayload":{"position":{"x":31647.506233883865,"y":44527.49031770047},"targetPosition":{"x":30809.748975953848,"y":43920.60002109334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase 6","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation * 1.25","id":"a5e2d77c-ed6b-47ca-a5d2-dc3331a766aa","savedPayload":{"position":{"x":32952.918656753674,"y":44912.15223866125},"targetPosition":{"x":32480.638558156756,"y":45122.66219214419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.previous.movingAverage <= 30 * 5 / 200 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=10","id":"a738d89d-1f15-4612-a3ec-287c1885a80d","savedPayload":{"position":{"x":32414.618452733845,"y":47699.86678841927},"targetPosition":{"x":32400.91146362946,"y":47183.8403684616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"57616784-efe1-4995-950e-dbfe3045587c","savedPayload":{"position":{"x":32400.91146362946,"y":47183.8403684616},"targetPosition":{"x":32387.27854461963,"y":46666.80260984331},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"754f8a4d-fa40-46b7-88fd-a2e789b6ee2f","savedPayload":{"position":{"x":32387.27854461963,"y":46666.80260984331},"targetPosition":{"x":32373.197733694906,"y":46149.747547597915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"(chart.at24hs.percentageBandwidth.movingAverage <= 50 * 5 / 200 || chart.at12hs.percentageBandwidth.movingAverage <= 17.5 * 5 / 200 ) && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=5","id":"f37841ef-44c1-4344-92a6-c0861dbd3ee8","savedPayload":{"position":{"x":31576.260287312238,"y":47476.95870106165},"targetPosition":{"x":31822.641259590677,"y":47022.75172666923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c1948dae-0bad-4d0d-8fdf-64596c6d8841","savedPayload":{"position":{"x":31822.641259590677,"y":47022.75172666923},"targetPosition":{"x":32068.766941947903,"y":46568.47957469146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","id":"3ab3c1a2-79e6-49f6-a454-d9dce0258e1f","savedPayload":{"position":{"x":31265.517412700217,"y":47219.30533821963},"targetPosition":{"x":31666.95058234024,"y":46893.65746196227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b1effc0-4e42-4982-a107-7c14253a0a91","savedPayload":{"position":{"x":31666.95058234024,"y":46893.65746196227},"targetPosition":{"x":32068.766941947903,"y":46568.47957469146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"53f5eade-6073-48e8-8c7c-eeae6203fe56","savedPayload":{"position":{"x":32068.766941947903,"y":46568.47957469146},"targetPosition":{"x":32373.197733694906,"y":46149.747547597915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"78f56842-1b09-4f95-ab84-40bfc06e9290","savedPayload":{"position":{"x":32373.197733694906,"y":46149.747547597915},"targetPosition":{"x":32480.638558156756,"y":45122.66219214419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"d408f464-44d9-4666-99d4-39923a6f900e","savedPayload":{"position":{"x":32480.638558156756,"y":45122.66219214419},"targetPosition":{"x":31643.954044687805,"y":44514.76283542852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","id":"83e918e2-59fe-417d-8be5-2db6ec8163a4","savedPayload":{"position":{"x":33316.9526979199,"y":45729.69966929474},"targetPosition":{"x":32899.31448818952,"y":45426.07372232443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[],"id":"241b040a-0981-4e3b-8308-e2921bd372b9","savedPayload":{"position":{"x":32899.31448818952,"y":45426.07372232443},"targetPosition":{"x":32480.638558156756,"y":45122.66219214419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b44bba31-b942-4b54-a22a-ea6682dfc3bc","savedPayload":{"position":{"x":27461.018701923105,"y":41490.565943387344},"targetPosition":{"x":26903.026095516023,"y":41084.478988003975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"New Announcement","code":"{ \n\"text\": \"Triggered ON !\"\n}","formula":{"type":"Formula","name":"New Formula","code":"value +\" entered the Manage Stage at rate \" + candle.close + \" \" + quotedAsset + \".\"","id":"541dc8a2-1eaf-4d95-a458-2fc9cbcb7502","savedPayload":{"position":{"x":27441.614524538258,"y":41965.5825289579},"targetPosition":{"x":27261.76775086609,"y":41671.386537634775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"49cb2ebb-6cef-490d-900b-0dc610c4da51","savedPayload":{"position":{"x":27261.76775086609,"y":41671.386537634775},"targetPosition":{"x":26903.026095516023,"y":41084.478988003975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6cb1a8f3-625c-4390-8124-4c4df1896331","savedPayload":{"position":{"x":41614.575702981885,"y":19125.553198461148},"targetPosition":{"x":41045.751931026774,"y":18712.330423882606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","closeExecution":{"type":"Close Execution","id":"9b0fe8f6-e5e9-491f-b554-5b94e8e4d8c9","savedPayload":{"position":{"x":26319.749631135088,"y":41389.93162937928},"targetPosition":{"x":26238.51952416559,"y":41007.15680602576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"New Announcement","code":"{ \n\"text\": \"Triggered ON !\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Close Stage at rate \" + candle.close + \" \" + quotedAsset + \".\" \n+ \" Position Exit Type: \" + value + \".\" \n+ \" ROI: \" + lastTradeROI.toFixed(2) + \" %\"","id":"706da109-1287-4d9c-8458-e527f3db728a","savedPayload":{"position":{"x":25806.183338605897,"y":41396.73215567412},"targetPosition":{"x":25934.3492966588,"y":41281.16692656502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"af0b5d25-3f44-421a-ab2c-9fcdbb58eba1","savedPayload":{"position":{"x":25934.3492966588,"y":41281.16692656502},"targetPosition":{"x":26238.51952416559,"y":41007.15680602576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f8582d0c-5022-451b-82df-a0307d941afb","savedPayload":{"position":{"x":40937.16014794862,"y":19046.729564795714},"targetPosition":{"x":41045.751931026774,"y":18712.330423882606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5272a0f3-ab7d-43a5-8c4a-c8d048535b7d","savedPayload":{"position":{"x":41045.751931026774,"y":18712.330423882606},"targetPosition":{"x":39639.25,"y":18712.33806613947},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8e87715a-d609-4558-b1ee-bb7d6cb00179","savedPayload":{"position":{"x":39639.25,"y":18712.33806613947},"targetPosition":{"x":39639.25,"y":18712.33806613947},"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/Trading-Systems/Sparta-BRR-BTC-USDT.json b/Trading-Systems/Sparta-BRR-BTC-USDT.json deleted file mode 100644 index c9e6e64c7..000000000 --- a/Trading-Systems/Sparta-BRR-BTC-USDT.json +++ /dev/null @@ -1 +0,0 @@ -{"type":"Trading System","name":"Bull Run Rider for BTC/USDT","code":"{ \n\"codeName\": \"Sparta-BRR-BTC-USDT\"\n}","strategies":[{"type":"Strategy","name":"My Strategy","triggerStage":{"type":"Trigger Stage","triggerOn":{"type":"Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max > chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"1e07e38a-c469-4f3f-b7e8-dccd9f94c546","savedPayload":{"position":{"x":32136.28636024774,"y":18006.129040560536},"targetPosition":{"x":32356.411078541598,"y":17994.8611316122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a1c434c4-5787-4906-8157-1e355999bba8","savedPayload":{"position":{"x":32356.411078541598,"y":17994.8611316122},"targetPosition":{"x":32576.81076551354,"y":17983.560786264006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.max > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation\n","id":"3fb95a71-efe8-45cf-be43-8b0d94d2f420","savedPayload":{"position":{"x":32336.278054047183,"y":17613.80662251148},"targetPosition":{"x":32456.46036116711,"y":17798.592583814658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f69f2608-49bd-4b04-b8f8-497675f819fe","savedPayload":{"position":{"x":32456.46036116711,"y":17798.592583814658},"targetPosition":{"x":32576.81076551354,"y":17983.560786264006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1dfb0689-df0c-4184-9c09-683d012c9dfe","savedPayload":{"position":{"x":32576.81076551354,"y":17983.560786264006},"targetPosition":{"x":32773.13118473049,"y":18083.48293309789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"32d2ee8c-71bd-4e4c-8671-04bbc4a16734","savedPayload":{"position":{"x":32773.13118473049,"y":18083.48293309789},"targetPosition":{"x":33165.111331477776,"y":18282.94927462636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage","id":"a1dd4467-b96b-4084-bd9b-056c6495de95","savedPayload":{"position":{"x":32824.239213958535,"y":17235.66806596493},"targetPosition":{"x":32892.45262811099,"y":17445.325022978603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b527026c-4be3-4baf-bbde-83ebfd17e567","savedPayload":{"position":{"x":32892.45262811099,"y":17445.325022978603},"targetPosition":{"x":32960.82113677954,"y":17655.21646975055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"41cbb7ba-020c-4e96-a6a7-c3ef8c25b6fd","savedPayload":{"position":{"x":32960.82113677954,"y":17655.21646975055},"targetPosition":{"x":33029.05799170436,"y":17864.75284364219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1af9fdb8-7316-4374-84f2-1b946741b5c6","savedPayload":{"position":{"x":33029.05799170436,"y":17864.75284364219},"targetPosition":{"x":33165.111331477776,"y":18282.94927462636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.max > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation\n","id":"0c15bd8b-b59c-4a2c-b65a-b063aec45216","savedPayload":{"position":{"x":33171.57121687983,"y":17363.232196850764},"targetPosition":{"x":33314.699085071785,"y":17531.156854636647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e022ab25-c7d3-439b-bfd7-1217c6abfbfe","savedPayload":{"position":{"x":33314.699085071785,"y":17531.156854636647},"targetPosition":{"x":33464.39831864422,"y":17695.493553606346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max > chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"cbce2ad1-a528-444c-9a41-3d592f7260aa","savedPayload":{"position":{"x":33323.92463319635,"y":17272.776882135928},"targetPosition":{"x":33392.10363312081,"y":17482.738587934575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"793426fb-7c1e-40c6-a41e-2acb0943aece","savedPayload":{"position":{"x":33392.10363312081,"y":17482.738587934575},"targetPosition":{"x":33464.39831864422,"y":17695.493553606346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close > chart.at01hs.candle.open","id":"9f72065b-dd6c-4d64-8de5-7fe2110bf66b","savedPayload":{"position":{"x":33497.69267121316,"y":17250.86445462576},"targetPosition":{"x":33480.85017954714,"y":17470.73191146608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"abdce7c6-67e2-4fbf-a4c3-e5526c13b6ca","savedPayload":{"position":{"x":33480.85017954714,"y":17470.73191146608},"targetPosition":{"x":33464.39831864422,"y":17695.493553606346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max-chart.at01hs.candle.min < 500","id":"68d20d82-b34a-49b7-be79-2d859997ec8e","savedPayload":{"position":{"x":33666.197050656265,"y":17297.87877095202},"targetPosition":{"x":33566.359629782004,"y":17494.335615659027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2d4d8745-13d1-47bd-8f42-faace8bfd7cb","savedPayload":{"position":{"x":33566.359629782004,"y":17494.335615659027},"targetPosition":{"x":33464.39831864422,"y":17695.493553606346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","id":"01a5065a-b7af-4cbe-8678-033694f77d69","savedPayload":{"position":{"x":33803.30743500673,"y":17405.68601299266},"targetPosition":{"x":33635.85756294036,"y":17548.855803792325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5f433ebc-f0ae-4095-93f5-6de3e03c0683","savedPayload":{"position":{"x":33635.85756294036,"y":17548.855803792325},"targetPosition":{"x":33464.39831864422,"y":17695.493553606346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at04hs.percentageBandwidth.movingAverage >= 85","id":"98b5b2b2-fbc0-4d1f-af0f-0d7eee6dc94b","savedPayload":{"position":{"x":33888.53632028435,"y":17557.542176570165},"targetPosition":{"x":33679.07051639968,"y":17625.720481419718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7ef29297-9eb3-4b6e-a69e-58e5afbfaff9","savedPayload":{"position":{"x":33679.07051639968,"y":17625.720481419718},"targetPosition":{"x":33464.39831864422,"y":17695.493553606346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"(chart.at12hs.bollingerSubChannel.slope === \"Side\" || chart.at12hs.bollingerSubChannel.slope === \"Gentle\") && (chart.at08hs.bollingerSubChannel.slope === \"Side\" || chart.at08hs.bollingerSubChannel.slope === \"Gentle\") && (chart.at06hs.bollingerSubChannel.slope === \"Side\" || chart.at06hs.bollingerSubChannel.slope === \"Gentle\")","id":"ea3dc59e-40da-4b52-b5d6-2724fb12eb20","savedPayload":{"position":{"x":33904.16275620565,"y":17743.462498734527},"targetPosition":{"x":33684.922059913355,"y":17726.252653307056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"24a4f2dc-268f-4e27-97f7-f4a0cd89e710","savedPayload":{"position":{"x":33684.922059913355,"y":17726.252653307056},"targetPosition":{"x":33464.39831864422,"y":17695.493553606346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c3b9135a-1e58-486e-b444-1bdd743effa5","savedPayload":{"position":{"x":33464.39831864422,"y":17695.493553606346},"targetPosition":{"x":33364.594001174206,"y":17891.460769989226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"830b1089-fef6-4e79-9ad2-a45c14574b84","savedPayload":{"position":{"x":33364.594001174206,"y":17891.460769989226},"targetPosition":{"x":33165.111331477776,"y":18282.94927462636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"8ffee2fe-23fb-4e58-8bb9-09b0c2aaa621","savedPayload":{"position":{"x":33165.111331477776,"y":18282.94927462636},"targetPosition":{"x":33301.07690941218,"y":18701.260324259536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","initialDefinition":{"type":"Initial Definition","stopLoss":{"type":"Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"positionRate - positionRate * 2.5 / 100","id":"5df1f00d-cb38-4ffb-84ac-3ce85f4e23dc","savedPayload":{"position":{"x":40413.063887478034,"y":18623.799058846937},"targetPosition":{"x":40435.48088542664,"y":18410.515570394346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close > positionRate + positionRate * 2 / 100","id":"7aeace08-1969-4deb-aa89-726658f778ba","savedPayload":{"position":{"x":39741.479204493,"y":17906.293834688855},"targetPosition":{"x":39914.97962472641,"y":18032.349268615228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e7ca02e3-34a6-4898-98e7-c44051e3b1a4","savedPayload":{"position":{"x":39914.97962472641,"y":18032.349268615228},"targetPosition":{"x":40088.48004495982,"y":18158.4047025416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9111e54c-f9c1-491c-96c4-0b15f5f46326","savedPayload":{"position":{"x":40088.48004495982,"y":18158.4047025416},"targetPosition":{"x":40261.98046519323,"y":18284.460136467973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"15653ae3-7298-4da5-89a3-6da07b194d05","savedPayload":{"position":{"x":40261.98046519323,"y":18284.460136467973},"targetPosition":{"x":40435.48088542664,"y":18410.515570394346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"c7844fec-1bb6-4412-b95d-f47b437d9a67","savedPayload":{"position":{"x":40435.48088542664,"y":18410.515570394346},"targetPosition":{"x":40631.39830360865,"y":18323.287515868124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2f0906a5-35ac-4681-9a75-d455789d198d","savedPayload":{"position":{"x":34034.380363564116,"y":17731.34601389084},"targetPosition":{"x":34335.182151451816,"y":17597.34504268334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"positionRate * 2","id":"54b0c16e-a747-4e2d-8350-fd147abc9955","savedPayload":{"position":{"x":33571.92767878455,"y":17173.688596070475},"targetPosition":{"x":33894.45112325249,"y":17106.291085106615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[],"announcements":[],"id":"c6bffce6-17a9-484d-a8f7-5a3a4f5bd18d","savedPayload":{"position":{"x":33996.46835932633,"y":16792.00044700848},"targetPosition":{"x":33894.45112325249,"y":17106.291085106615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"73450f7c-f2df-4c92-a14d-e39d460d09c7","savedPayload":{"position":{"x":33894.45112325249,"y":17106.291085106615},"targetPosition":{"x":34114.96821124175,"y":17351.89297465581},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"784fc53e-e6ea-4658-80c7-62139549c49a","savedPayload":{"position":{"x":34114.96821124175,"y":17351.89297465581},"targetPosition":{"x":34335.182151451816,"y":17597.34504268334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"Position Size","formula":{"type":"Formula","code":"balanceQuotedAsset","id":"51c900a5-97d0-4d54-9af2-d2a8b56338ef","savedPayload":{"position":{"x":34665.57343531102,"y":17025.553858351243},"targetPosition":{"x":34500.45317529984,"y":17311.39741068467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31b90dc3-5e56-4485-afd1-7f0017805c7a","savedPayload":{"position":{"x":34500.45317529984,"y":17311.39741068467},"targetPosition":{"x":34335.182151451816,"y":17597.34504268334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"Position Rate","formula":{"type":"Formula","name":"My Formula","code":"chart.at01hs.candle.close","id":"bdd26201-c1e2-403b-afca-7c48da10cd7a","savedPayload":{"position":{"x":34981.10844752096,"y":17733.95901919584},"targetPosition":{"x":34658.1759953963,"y":17665.592044141285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5368a5cc-a6a1-46fa-996c-76a00c003dd1","savedPayload":{"position":{"x":34658.1759953963,"y":17665.592044141285},"targetPosition":{"x":34335.182151451816,"y":17597.34504268334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b0e61bb8-915c-4089-839c-0cbb27143a5a","savedPayload":{"position":{"x":34335.182151451816,"y":17597.34504268334},"targetPosition":{"x":34369.11419237636,"y":17925.674768152858},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","id":"adafb7bb-4f7f-4275-b6dd-36e9d03441ce","savedPayload":{"position":{"x":34970.91407909393,"y":18193.379688664256},"targetPosition":{"x":34369.11419237636,"y":17925.674768152858},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"announcements":[],"id":"4743e572-e0ec-4641-8881-86eef4337ed7","savedPayload":{"position":{"x":34369.11419237636,"y":17925.674768152858},"targetPosition":{"x":33301.07690941218,"y":18701.260324259536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","stopLoss":{"type":"Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 3.5 / 100 > stopLoss) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 3.5 / 100} else {stopLoss}","id":"f8666b4c-a5f5-463f-b358-5e6930274156","savedPayload":{"position":{"x":34083.189959275674,"y":18561.27186019099},"targetPosition":{"x":34059.682856962274,"y":18780.5460861474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[],"announcements":[],"id":"49858221-6783-4a5c-abdd-a715ee64491d","savedPayload":{"position":{"x":34238.67247171901,"y":18910.031257666433},"targetPosition":{"x":34059.682856962274,"y":18780.5460861474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"1c0100eb-a29a-4024-b7b9-d24164bc43eb","savedPayload":{"position":{"x":34059.682856962274,"y":18780.5460861474},"targetPosition":{"x":33857.93951171484,"y":18870.159251221132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"17cd97a5-9ae0-46fb-86a7-a6b2824510c4","savedPayload":{"position":{"x":33857.93951171484,"y":18870.159251221132},"targetPosition":{"x":33656.723298141434,"y":18959.56762011535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 12.5 / 100","id":"77754c17-f3b3-478f-b837-79bd0a2b533b","savedPayload":{"position":{"x":33944.702654384215,"y":19874.728267927403},"targetPosition":{"x":33588.4475878523,"y":19616.28465130713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.min < chart.at01hs.candle.previous.min","id":"8d2df34f-70ab-42e3-a055-c33f1a2e0c33","savedPayload":{"position":{"x":32642.242144725136,"y":20160.194428377745},"targetPosition":{"x":32814.27008689754,"y":20022.158826682076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6b58a29a-27a3-4728-96bf-f1cffc915b93","savedPayload":{"position":{"x":32814.27008689754,"y":20022.158826682076},"targetPosition":{"x":32985.94451109054,"y":19883.94443870979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.min < chart.at01hs.candle.previous.previous.min","id":"b3f4b456-e22f-4461-a912-674d9d59d25e","savedPayload":{"position":{"x":32549.716009927022,"y":19951.774767163657},"targetPosition":{"x":32767.821194354558,"y":19917.688148589335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d6f645b9-dded-4dc8-9361-edbb5e9362d7","savedPayload":{"position":{"x":32767.821194354558,"y":19917.688148589335},"targetPosition":{"x":32985.94451109054,"y":19883.94443870979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"11d3b6ff-1092-4d0c-aee7-06fd7fa1fdd4","savedPayload":{"position":{"x":32985.94451109054,"y":19883.94443870979},"targetPosition":{"x":33187.05314059247,"y":19794.843413175684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"262eb093-e91f-48c0-b975-43b2bb998c3e","savedPayload":{"position":{"x":33187.05314059247,"y":19794.843413175684},"targetPosition":{"x":33588.4475878523,"y":19616.28465130713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"f23e15b8-7fc2-4b64-a091-7a889776d29a","savedPayload":{"position":{"x":33588.4475878523,"y":19616.28465130713},"targetPosition":{"x":33633.98398592257,"y":19178.780444559092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 10 / 100","id":"b99edd1c-9f5b-4024-87cc-5bae52679cc8","savedPayload":{"position":{"x":33899.31786211994,"y":20312.35947761577},"targetPosition":{"x":33543.08088968995,"y":20053.841140463508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.percentageBandwidth.direction === 'Down'","id":"994de580-782e-4e71-ad72-5a78f025e9b4","savedPayload":{"position":{"x":32713.80935872926,"y":20733.646838228065},"targetPosition":{"x":32844.243242986966,"y":20555.474564402964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f3b04fbc-e688-4e48-9d5f-96ea5ef0c8cb","savedPayload":{"position":{"x":32844.243242986966,"y":20555.474564402964},"targetPosition":{"x":32974.06471941221,"y":20376.961716120833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.percentageBandwidth.movingAverage < 70","id":"fe5f5c24-785d-4b05-aa61-50d738d9cd81","savedPayload":{"position":{"x":32570.032267050625,"y":20556.502001638968},"targetPosition":{"x":32771.907099087926,"y":20466.759612479935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6b3364b5-d25b-4e29-b126-b7f85b401c3f","savedPayload":{"position":{"x":32771.907099087926,"y":20466.759612479935},"targetPosition":{"x":32974.06471941221,"y":20376.961716120833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04b8d0ea-5b40-4f88-9482-75170e16b454","savedPayload":{"position":{"x":32974.06471941221,"y":20376.961716120833},"targetPosition":{"x":33142.325975931926,"y":20232.511924634888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close > positionRate + positionRate * 13 / 100","id":"8eb895f9-4d9c-4314-8351-d47d57dea06a","savedPayload":{"position":{"x":32485.646781919662,"y":20329.98725591953},"targetPosition":{"x":32703.844802266467,"y":20295.532023355852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f353c88-8c2e-4bcb-85ce-28276752daeb","savedPayload":{"position":{"x":32703.844802266467,"y":20295.532023355852},"targetPosition":{"x":32922.29632250737,"y":20261.06169432316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f9d261e8-528e-4469-9eb0-1765ec1adea4","savedPayload":{"position":{"x":32922.29632250737,"y":20261.06169432316},"targetPosition":{"x":33142.325975931926,"y":20232.511924634888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"41adecfe-df45-4c0b-a6c6-9af24919657d","savedPayload":{"position":{"x":33142.325975931926,"y":20232.511924634888},"targetPosition":{"x":33543.08088968995,"y":20053.841140463508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"cc74b1fd-2a75-4d59-a30a-070a6f530237","savedPayload":{"position":{"x":33543.08088968995,"y":20053.841140463508},"targetPosition":{"x":33588.4475878523,"y":19616.28465130713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 8.5 / 100","id":"a1a934f5-46c4-4a92-9513-11e3976469d5","savedPayload":{"position":{"x":33853.858623315384,"y":20750.27130156532},"targetPosition":{"x":33497.758248255035,"y":20491.620878414888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","id":"14b2b7a5-bce7-4081-b88f-13b77e46f00f","savedPayload":{"position":{"x":32492.553165785244,"y":20941.867192339025},"targetPosition":{"x":32693.947947708595,"y":20851.935397642123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"63de0e84-99e1-4ebb-a639-070aaec25769","savedPayload":{"position":{"x":32693.947947708595,"y":20851.935397642123},"targetPosition":{"x":32895.64672614131,"y":20761.42915139691},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b2193069-9399-49ef-b0a5-a27cdf12f0f5","savedPayload":{"position":{"x":32895.64672614131,"y":20761.42915139691},"targetPosition":{"x":33096.61682302355,"y":20671.115454471343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"e7f20b10-01fe-4aa8-9857-421f22ea3a4c","savedPayload":{"position":{"x":33096.61682302355,"y":20671.115454471343},"targetPosition":{"x":33497.758248255035,"y":20491.620878414888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"1c5a8e29-6bfc-4010-be09-19c2b96bfe70","savedPayload":{"position":{"x":33497.758248255035,"y":20491.620878414888},"targetPosition":{"x":33543.08088968995,"y":20053.841140463508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 7 / 100","id":"feaaddbf-e88d-4090-a7b2-eb74b86dcd4a","savedPayload":{"position":{"x":33807.97666449916,"y":21188.4754375366},"targetPosition":{"x":33452.216442775745,"y":20929.72185114129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[],"announcements":[],"id":"e39fdef7-ea4f-4b5d-bb01-7edac296c69c","savedPayload":{"position":{"x":33050.47563156183,"y":21109.44644261351},"targetPosition":{"x":33452.216442775745,"y":20929.72185114129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"f9b759a6-ab55-4344-963a-9608c2fbe429","savedPayload":{"position":{"x":33452.216442775745,"y":20929.72185114129},"targetPosition":{"x":33497.758248255035,"y":20491.620878414888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b6bb374a-2c9d-4b84-8ddd-84f075656cca","savedPayload":{"position":{"x":33633.98398592257,"y":19178.780444559092},"targetPosition":{"x":33656.723298141434,"y":18959.56762011535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"1d90afee-eb99-4627-a823-027589c6d2c9","savedPayload":{"position":{"x":33656.723298141434,"y":18959.56762011535},"targetPosition":{"x":33301.07690941218,"y":18701.260324259536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","closeExecution":{"type":"Close Execution","id":"17ad00f9-a9c4-4e9a-b399-39db314232e1","savedPayload":{"position":{"x":33028.56713877728,"y":19537.61740792084},"targetPosition":{"x":33164.83586816252,"y":19119.62154378104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[],"id":"575f8df0-55d4-4e22-a8e0-84b2973be70a","savedPayload":{"position":{"x":33164.83586816252,"y":19119.62154378104},"targetPosition":{"x":33301.07690941218,"y":18701.260324259536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"97bedd6e-ed17-4ea9-a3be-b6cadfea4d4d","savedPayload":{"position":{"x":33301.07690941218,"y":18701.260324259536},"targetPosition":{"x":32420.898649352486,"y":18701.25},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"56432995-eb04-4929-850f-6530233a3be3","savedPayload":{"position":{"x":32420.898649352486,"y":18701.25},"targetPosition":{"x":32420.898649352486,"y":18701.25},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"b"}}} \ No newline at end of file diff --git a/Trading-Systems/Sparta-WHB-BTC-USDT.json b/Trading-Systems/Sparta-WHB-BTC-USDT.json deleted file mode 100644 index 9933ddc6f..000000000 --- a/Trading-Systems/Sparta-WHB-BTC-USDT.json +++ /dev/null @@ -1 +0,0 @@ -{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","code":"{ \n\"codeName\": \"Sparta-WHB-BTC-USDT\"\n}","strategies":[{"type":"Strategy","name":"Steep","triggerStage":{"type":"Trigger Stage","triggerOn":{"type":"Trigger On Event","situations":[{"type":"Situation","name":"Steep","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage && chart.at01hs.candle.previous.close < chart.at01hs.bollingerBand.previous.movingAverage && chart.at01hs.candle.previous.previous.close < chart.at01hs.bollingerBand.previous.previous.movingAverage","id":"04630f48-d984-4e80-ae51-614c9b8d8d4a","savedPayload":{"position":{"x":38654.42937601845,"y":24118.7146096835},"targetPosition":{"x":38896.03793282062,"y":23893.50644952296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"72e53092-78e4-431d-bc2d-7f3079881067","savedPayload":{"position":{"x":38896.03793282062,"y":23893.50644952296},"targetPosition":{"x":39378.570631146256,"y":23443.53261737075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","id":"874e7f12-9a9f-4d01-9b5a-8d45b3244707","savedPayload":{"position":{"x":38467.02147676738,"y":23830.21107095448},"targetPosition":{"x":38771.169126085806,"y":23701.239147931672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"639a3d0f-089c-4a72-bb8a-646a088c827f","savedPayload":{"position":{"x":38771.169126085806,"y":23701.239147931672},"targetPosition":{"x":39378.570631146256,"y":23443.53261737075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","id":"c2044baf-6f85-4b83-9984-efb4e163da43","savedPayload":{"position":{"x":38389.664496650454,"y":23495.04507117375},"targetPosition":{"x":38719.629522672716,"y":23477.904752152226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a182ddc2-c81f-4187-a683-e1eb70d2a073","savedPayload":{"position":{"x":38719.629522672716,"y":23477.904752152226},"targetPosition":{"x":39378.570631146256,"y":23443.53261737075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 200","id":"386c8342-029f-43da-934f-842a63abc4cd","savedPayload":{"position":{"x":38431.586955243925,"y":23154.12292223018},"targetPosition":{"x":38747.56097033524,"y":23250.663790011644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"40bc2e8f-a913-47d3-aedb-6d48c0ba53fa","savedPayload":{"position":{"x":38747.56097033524,"y":23250.663790011644},"targetPosition":{"x":39378.570631146256,"y":23443.53261737075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max - chart.at01hs.candle.min < 750","id":"11ac851b-1b7f-4fd2-99ba-e5b374843f75","savedPayload":{"position":{"x":38587.837841833374,"y":22847.685517901587},"targetPosition":{"x":38851.72572661361,"y":23046.50017712293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ae77e599-0666-4ee2-9ba1-5454122da57e","savedPayload":{"position":{"x":38851.59129412593,"y":23046.46870027089},"targetPosition":{"x":39378.570631146256,"y":23443.53261737075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation < 1000","id":"ce8ed2e0-78f2-4dc5-b67f-7cc0faa6f72d","savedPayload":{"position":{"x":38839.382799047715,"y":22613.10431827154},"targetPosition":{"x":39019.32925227039,"y":22890.193356793647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9bd67f05-1e80-4af4-8b3b-6326aea61169","savedPayload":{"position":{"x":39019.20836123038,"y":22890.163662927203},"targetPosition":{"x":39378.570631146256,"y":23443.53261737075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 30 || chart.at03hs.percentageBandwidth.movingAverage >= 30 || chart.at04hs.percentageBandwidth.movingAverage >= 30 || chart.at06hs.percentageBandwidth.movingAverage >= 30 || chart.at08hs.percentageBandwidth.movingAverage >= 30","id":"5607e471-72db-4adf-b542-5627836b2fc4","savedPayload":{"position":{"x":39156.005778308325,"y":22478.707014444873},"targetPosition":{"x":39230.30291243001,"y":22800.64350413514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"668f372c-b50d-4ad7-bfe1-cb3594d0b1c9","savedPayload":{"position":{"x":39230.18484547141,"y":22800.612491027987},"targetPosition":{"x":39378.570631146256,"y":23443.53261737075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope != \"Extreme\" || (chart.at01hs.bollingerSubChannel.period <=6 && chart.at08hs.bollingerChannel.direction === \"Down\" && chart.at06hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerChannel.direction === \"Down\" && chart.at02hs.bollingerSubChannel.slope === (\"Extreme\" || \"Steep\"))","id":"754d3dcd-a660-4a60-b553-60d4e4828fc2","savedPayload":{"position":{"x":39499.05202984986,"y":22460.737831992745},"targetPosition":{"x":39458.97682702611,"y":22788.66468167322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d54ee343-d311-4d85-a97f-52b1f68af31c","savedPayload":{"position":{"x":39458.86345462394,"y":22788.633396789402},"targetPosition":{"x":39378.570631146256,"y":23443.53261737075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d36638b7-6ffc-4dd8-a0aa-581dc203a3fd","savedPayload":{"position":{"x":39378.570631146256,"y":23443.53261737075},"targetPosition":{"x":39967.429056464694,"y":23743.542886573094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"eb5ec9e9-b915-41db-917b-b3c4084fa2d0","savedPayload":{"position":{"x":39967.429056464694,"y":23743.542886573094},"targetPosition":{"x":40556.1702605225,"y":24043.408960214012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close > chart.at01hs.bollingerBand.movingAverage","id":"04223c33-3fb5-495e-b481-f3f89d19772d","savedPayload":{"position":{"x":38210.648710788475,"y":24781.418713158193},"targetPosition":{"x":38647.010106152025,"y":24587.43993400261},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"06e77d55-6aff-46fb-940d-673fe9c79bd8","savedPayload":{"position":{"x":38647.010106152025,"y":24587.43993400261},"targetPosition":{"x":39083.52651184902,"y":24393.503671421502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8ccdd8c1-1ca7-4746-b504-16ca7dca9164","savedPayload":{"position":{"x":40147.90856068426,"y":22786.295224985486},"targetPosition":{"x":40352.049091964946,"y":23414.93778484698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1b2fd09f-1095-4513-b6cd-18f565a96fd2","savedPayload":{"position":{"x":40352.049091964946,"y":23414.93778484698},"targetPosition":{"x":40556.1702605225,"y":24043.408960214012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","situations":[{"type":"Situation","name":"Steep","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage && chart.at01hs.candle.previous.close < chart.at01hs.bollingerBand.previous.movingAverage && chart.at01hs.candle.previous.previous.close < chart.at01hs.bollingerBand.previous.previous.movingAverage","id":"f72bf18a-b497-46d4-8be0-e327da01a533","savedPayload":{"position":{"x":39240.350911186295,"y":23504.494295275093},"targetPosition":{"x":39478.87025480116,"y":23522.725227223866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8c26040a-2bc1-4227-bede-1970dd8a7d74","savedPayload":{"position":{"x":39478.87025480116,"y":23522.725227223866},"targetPosition":{"x":39955.17846091955,"y":23558.926224459294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","id":"9fdb21ec-7e23-48f2-bcd8-448147ec07e1","savedPayload":{"position":{"x":39284.59696457764,"y":23305.152539451356},"targetPosition":{"x":39508.373518788445,"y":23389.868800061806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9d362d79-a971-4ca6-99db-733d52a345b2","savedPayload":{"position":{"x":39508.373518788445,"y":23389.868800061806},"targetPosition":{"x":39955.17846091955,"y":23558.926224459294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","id":"6c812d60-985b-402b-bd39-adf518b44d7a","savedPayload":{"position":{"x":39383.2217853877,"y":23126.478191715356},"targetPosition":{"x":39574.09296654021,"y":23270.811905752722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b62b951d-9f1d-4ef8-8a1b-8ec6ee301e5e","savedPayload":{"position":{"x":39574.09296654021,"y":23270.811905752722},"targetPosition":{"x":39955.17846091955,"y":23558.926224459294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 200","id":"3c1b1284-cc15-44a0-ad56-152c608873c8","savedPayload":{"position":{"x":39528.19260345359,"y":22982.85266277603},"targetPosition":{"x":39670.68822663726,"y":23175.11183531663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d6a25acf-936d-4839-b8ed-aa1f1c26f283","savedPayload":{"position":{"x":39670.68822663726,"y":23175.11183531663},"targetPosition":{"x":39955.17846091955,"y":23558.926224459294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max - chart.at01hs.candle.min < 750","id":"a9d0ee08-149f-4e02-b913-e31c6a81143c","savedPayload":{"position":{"x":39707.742010433845,"y":22885.903680709336},"targetPosition":{"x":39790.32484971696,"y":23110.517001753822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a1786da7-a63b-4930-a9ac-bde381e03456","savedPayload":{"position":{"x":39790.32484971696,"y":23110.517001753822},"targetPosition":{"x":39955.17846091955,"y":23558.926224459294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation < 1000","id":"03ea81ae-6b27-46e6-8355-98418b3102eb","savedPayload":{"position":{"x":39907.31271552981,"y":22843.480362937433},"targetPosition":{"x":39923.30854888421,"y":23082.253933862172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7293789d-7e2c-4418-91ff-1773f8300504","savedPayload":{"position":{"x":39923.30854888421,"y":23082.253933862172},"targetPosition":{"x":39955.17846091955,"y":23558.926224459294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 30 || chart.at03hs.percentageBandwidth.movingAverage >= 30 || chart.at04hs.percentageBandwidth.movingAverage >= 30 || chart.at06hs.percentageBandwidth.movingAverage >= 30 || chart.at08hs.percentageBandwidth.movingAverage >= 30","id":"1cbf188a-3e7e-486b-97f7-591e2942d4c2","savedPayload":{"position":{"x":40110.33565939289,"y":22859.030126104986},"targetPosition":{"x":40058.66797686181,"y":23092.616084393856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"82ef75a8-d740-4a20-b382-f8a38b67b37f","savedPayload":{"position":{"x":40058.66797686181,"y":23092.616084393856},"targetPosition":{"x":39955.17846091955,"y":23558.926224459294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope != \"Extreme\" || (chart.at01hs.bollingerSubChannel.period <=6 && chart.at08hs.bollingerChannel.direction === \"Down\" && chart.at06hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerChannel.direction === \"Down\" && chart.at02hs.bollingerSubChannel.slope === (\"Extreme\" || \"Steep\"))","id":"390add95-1bf1-4d10-9ce6-6f0adfdeb11d","savedPayload":{"position":{"x":40301.106300854844,"y":22931.31532649044},"targetPosition":{"x":40185.81529016951,"y":23140.7748187153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bad14acd-fac1-47a9-bb8c-35e3fba8017b","savedPayload":{"position":{"x":40185.81529016951,"y":23140.7748187153},"targetPosition":{"x":39955.17846091955,"y":23558.926224459294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at08hs.bollingerBand.deviation < 1575","id":"5916a300-bd02-4d33-bb25-8132bbab6402","savedPayload":{"position":{"x":40463.76971325339,"y":23054.494110751715},"targetPosition":{"x":40294.25413728789,"y":23222.84607488945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"70c87419-dd46-48a9-83df-6394dcdc9f81","savedPayload":{"position":{"x":40294.25413728789,"y":23222.84607488945},"targetPosition":{"x":39955.17846091955,"y":23558.926224459294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.candle.open < chart.at24hs.bollingerBand.movingAverage + chart.at24hs.bollingerBand.deviation || chart.at24hs.candle.close < chart.at24hs.bollingerBand.movingAverage + chart.at24hs.bollingerBand.deviation","id":"485bc3a9-85ce-42a2-8bc8-3fd8c199a153","savedPayload":{"position":{"x":40559.83786637926,"y":23203.596114575474},"targetPosition":{"x":40375.24653894792,"y":23332.286513695442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1dc2cb20-f252-41ac-9617-0ae1115d3883","savedPayload":{"position":{"x":40375.24653894792,"y":23332.286513695442},"targetPosition":{"x":39955.17846091955,"y":23558.926224459294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a77b35ef-82dd-4a0b-858a-a9332e93ffcd","savedPayload":{"position":{"x":40993.44114336273,"y":22808.180948915793},"targetPosition":{"x":40856.13716335811,"y":23454.689439619513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"d5a86e8e-555a-4362-9d2f-d5bdf8a4e637","savedPayload":{"position":{"x":41298.2303357878,"y":22964.61172046955},"targetPosition":{"x":41077.186099344915,"y":23209.857438088973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"207f6150-3902-445b-86c7-1539739421a5","savedPayload":{"position":{"x":41077.15627448108,"y":23209.336531641686},"targetPosition":{"x":40856.13716335811,"y":23454.689439619513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ac645fd1-0e1d-4b12-aaf1-3b8e081e847f","savedPayload":{"position":{"x":40856.13716335811,"y":23454.689439619513},"targetPosition":{"x":40556.1702605225,"y":24043.408960214012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"e4de9514-302c-44e1-a9a6-419e43d5e56f","savedPayload":{"position":{"x":40556.1702605225,"y":24043.408960214012},"targetPosition":{"x":40964.21468152683,"y":25299.495034629625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"openStage":{"type":"Open Stage","initialDefinition":{"type":"Initial Definition","stopLoss":{"type":"Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"if (positionRate + positionRate * 3 / 100 > 150) {positionRate + positionRate * 3 / 100} else {150}","id":"90875495-204f-47d8-b90a-e740b494d1aa","savedPayload":{"position":{"x":41543.57064293352,"y":22327.617504659756},"targetPosition":{"x":42021.77913634585,"y":22455.81161228222},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 5 / 100","id":"f0b676b3-5b9f-4d04-82ae-f9db3029c311","savedPayload":{"position":{"x":40593.55450196466,"y":21938.07510378422},"targetPosition":{"x":40686.19422978413,"y":22284.150080605094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"de58c7ca-47d9-48f7-a7fc-ad576082d89f","savedPayload":{"position":{"x":40686.19422978413,"y":22284.150080605094},"targetPosition":{"x":40778.84533803481,"y":22630.27462019225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"739a79d8-37c4-4add-9a85-f5a56c4b1510","savedPayload":{"position":{"x":40778.84533803481,"y":22630.27462019225},"targetPosition":{"x":40874.1988416803,"y":22986.346465704635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"d0ff413b-dfbc-4f84-a02a-03ab750beea4","savedPayload":{"position":{"x":41893.54634082963,"y":21977.063439550475},"targetPosition":{"x":42021.77913634585,"y":22455.81161228222},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"b3756856-991c-46e9-b8d1-1fd88616b175","savedPayload":{"position":{"x":42021.81316754483,"y":22455.83985723156},"targetPosition":{"x":42372.21439830182,"y":22806.235388260873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0081ab16-4738-40b4-abb6-5e0220b5d3ec","savedPayload":{"position":{"x":42372.21356099864,"y":22806.226453474643},"targetPosition":{"x":42722.450287929445,"y":23156.36027557246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.4","id":"5eed5f84-8951-4768-8ff6-1f7cadff9bc0","savedPayload":{"position":{"x":42256.46443548883,"y":21792.571687125077},"targetPosition":{"x":42567.906061434565,"y":22177.53357490311},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at03hs.percentageBandwidth.previous.movingAverage <= 10","id":"ce100174-38ec-45a1-b30e-b9172449b917","savedPayload":{"position":{"x":41321.10027492377,"y":21724.77294104368},"targetPosition":{"x":41377.02401140234,"y":22078.756166789346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"361254c9-2c48-4971-a21d-a2db49fd6c02","savedPayload":{"position":{"x":41377.02401140234,"y":22078.756166789346},"targetPosition":{"x":41432.96551482378,"y":22432.890715624035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ed006cd1-bf42-46ed-b32b-85206d87cd28","savedPayload":{"position":{"x":41432.96551482378,"y":22432.890715624035},"targetPosition":{"x":41490.569748251975,"y":22796.956822782457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at03hs.percentageBandwidth.movingAverage <= 30","id":"4f0db7ef-3ce2-45b3-ad50-b3a70caa7148","savedPayload":{"position":{"x":42034.085892478375,"y":21895.784268531883},"targetPosition":{"x":41905.6790727935,"y":22230.309567356013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ceb437ce-ce7c-4b40-9c66-76a8510b548f","savedPayload":{"position":{"x":41905.6790727935,"y":22230.309567356013},"targetPosition":{"x":41777.11600709778,"y":22565.015554381593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","id":"703dab03-8dba-4449-ac5d-07237c70801a","savedPayload":{"position":{"x":42485.127772570304,"y":22452.84922303708},"targetPosition":{"x":42131.22517356006,"y":22508.89700539373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9d989c1e-f5ea-4d99-98f4-cb9f7a2dd7f4","savedPayload":{"position":{"x":42131.22517356006,"y":22508.89700539373},"targetPosition":{"x":41777.11600709778,"y":22565.015554381593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0ce6bb24-f168-4aaa-83ed-164c13e57c0d","savedPayload":{"position":{"x":41777.11600709778,"y":22565.015554381593},"targetPosition":{"x":41490.569748251975,"y":22796.956822782457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"faa1df3b-d813-4285-be96-e3f6708ade25","savedPayload":{"position":{"x":42745.46977372124,"y":21714.804795770884},"targetPosition":{"x":42567.906061434565,"y":22177.53357490311},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"1ce94879-9960-47dd-8014-32609b061a2d","savedPayload":{"position":{"x":42568.00695592488,"y":22177.51975436304},"targetPosition":{"x":42645.246053418836,"y":22667.102763559975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e7378dd3-01ab-4cc5-a2b6-158a1d106b8c","savedPayload":{"position":{"x":42645.246522085334,"y":22667.07588906284},"targetPosition":{"x":42722.450287929445,"y":23156.36027557246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"Position Size","formula":{"type":"Formula","code":"balanceBaseAsset","id":"0d807c1a-4d63-4f34-8b21-601fb4bcbfb7","savedPayload":{"position":{"x":43172.29109125882,"y":22274.223797311202},"targetPosition":{"x":42947.393118584485,"y":22715.316464885633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9a47a9fc-fd8b-4ac0-9ab4-fe8105b48742","savedPayload":{"position":{"x":42947.393961295784,"y":22715.289411267244},"targetPosition":{"x":42722.450287929445,"y":23156.36027557246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"Position Rate","formula":{"type":"Formula","name":"My Formula","code":"candle.close","id":"a2b79f22-8024-4357-b21e-a5bb2f06085a","savedPayload":{"position":{"x":43604.59284152999,"y":22707.243882182105},"targetPosition":{"x":43163.40623490247,"y":22931.91537080668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1caf887e-9ef2-4c73-89e3-681501c22f2f","savedPayload":{"position":{"x":43163.40569741022,"y":22931.906398251514},"targetPosition":{"x":42722.450287929445,"y":23156.36027557246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7066a6ba-4707-439c-9f30-d115b7e91587","savedPayload":{"position":{"x":42722.49708483028,"y":23156.165399772814},"targetPosition":{"x":42567.46100856192,"y":24134.750300215164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","id":"12807f32-bcd9-479d-ba07-b4cc6559a788","savedPayload":{"position":{"x":42967.816253548626,"y":23844.006750298126},"targetPosition":{"x":42567.46100856192,"y":24134.750300215164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"b2207d78-4a23-497d-8d5f-9b96578cc2f2","savedPayload":{"position":{"x":43545.39029452099,"y":24289.313990316892},"targetPosition":{"x":43056.470377660335,"y":24212.05286087909},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1d7fbd95-3af3-46ba-be2c-82afa907bafd","savedPayload":{"position":{"x":43056.470377660335,"y":24212.05286087909},"targetPosition":{"x":42567.46100856192,"y":24134.750300215164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"039258ce-13eb-4b32-86ef-201855c44942","savedPayload":{"position":{"x":42567.46100856192,"y":24134.750300215164},"targetPosition":{"x":40964.21468152683,"y":25299.495034629625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","stopLoss":{"type":"Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 5.25 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 5.25 / 100} else {stopLoss}","id":"45d6af45-3e8b-4896-b836-2d83f93e32a7","savedPayload":{"position":{"x":43040.85349551532,"y":24865.41827961376},"targetPosition":{"x":42804.32840344481,"y":25481.304974122737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[],"announcements":[],"id":"17dc17a5-0393-42d9-a481-652f7a81d656","savedPayload":{"position":{"x":43220.02334011708,"y":25994.393030930725},"targetPosition":{"x":42804.32840344481,"y":25481.304974122737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"4f1b38dc-b338-475c-9127-5a9e3fcecc41","savedPayload":{"position":{"x":42804.32840344481,"y":25481.304974122737},"targetPosition":{"x":42151.50515206838,"y":25584.614309622168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"557b2149-e296-4b80-aaf1-370725a83a54","savedPayload":{"position":{"x":42151.50515206838,"y":25584.614309622168},"targetPosition":{"x":41498.80494613707,"y":25687.903975235113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","phases":[{"type":"Phase","name":"P 1","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.15 - chart.at01hs.bollingerBand.deviation * 4 > 1){chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.15 - chart.at01hs.bollingerBand.deviation * 4} else {takeProfit}","id":"21425aee-b9db-4dcc-8857-a2192910d396","savedPayload":{"position":{"x":43554.71815666318,"y":26651.942851303353},"targetPosition":{"x":43102.490029688415,"y":26853.17443468902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at08hs.percentageBandwidth.previous.movingAverage <= 15","id":"b7fe3cd8-6a2b-497f-a55b-790584961b57","savedPayload":{"position":{"x":39076.46058213071,"y":27754.396568633903},"targetPosition":{"x":39257.34107582367,"y":27505.91308833616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a12da025-d126-479e-8557-1eb2822f4f0f","savedPayload":{"position":{"x":39257.34107582367,"y":27505.91308833616},"targetPosition":{"x":39438.07303747677,"y":27257.00491756352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","id":"59701135-40be-49ae-b079-8e4b6310f6ea","savedPayload":{"position":{"x":38913.1938983026,"y":27578.244758070996},"targetPosition":{"x":39175.626335632536,"y":27417.733114613016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f747a40-0047-47f4-8a13-bd0521b95e2b","savedPayload":{"position":{"x":39175.626335632536,"y":27417.733114613016},"targetPosition":{"x":39438.07303747677,"y":27257.00491756352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >= 5","id":"bc4571b1-a0a8-45cf-b77b-14576d3ad21f","savedPayload":{"position":{"x":38830.05510220841,"y":27353.037657790377},"targetPosition":{"x":39134.026162947055,"y":27305.00124396789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fb89b159-fe69-404b-b013-bb82e2fdcfa1","savedPayload":{"position":{"x":39134.026162947055,"y":27305.00124396789},"targetPosition":{"x":39438.07303747677,"y":27257.00491756352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"67030efa-0733-4e0e-a66c-c7dd1c68417f","savedPayload":{"position":{"x":39438.07303747677,"y":27257.00491756352},"targetPosition":{"x":39708.61223080854,"y":27090.915796338108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at08hs.percentageBandwidth.movingAverage <= 40 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >= 3","id":"4bb6b468-bd77-474e-93b2-f86437fd46c7","savedPayload":{"position":{"x":38934.982734317826,"y":27128.807942747462},"targetPosition":{"x":39087.0070867157,"y":27104.959222048245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"95eecb05-95b8-4460-9327-a1b3e42acb6e","savedPayload":{"position":{"x":39087.0070867157,"y":27104.959222048245},"targetPosition":{"x":39390.90528515823,"y":27057.147755850645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.direction === \"Up\"","id":"8b544008-7648-457a-b75e-b4fee8ed097c","savedPayload":{"position":{"x":38816.80662927576,"y":26836.626934486252},"targetPosition":{"x":39103.694982618494,"y":26946.725109026145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7a8ac438-7d80-4cc0-93bb-de47b2fadfd0","savedPayload":{"position":{"x":39103.694982618494,"y":26946.725109026145},"targetPosition":{"x":39390.90528515823,"y":27057.147755850645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d8a07730-dec5-4ebd-8de1-dc60a1197b04","savedPayload":{"position":{"x":39390.90528515823,"y":27057.147755850645},"targetPosition":{"x":39708.61223080854,"y":27090.915796338108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"76c3b030-4744-4005-bcf8-2fe69a68f3ae","savedPayload":{"position":{"x":42999.10513705871,"y":27837.56606790635},"targetPosition":{"x":43102.490029688415,"y":26853.17443468902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"691dde4a-1ec7-4bf7-aa4a-13697345bbff","savedPayload":{"position":{"x":43102.490029688415,"y":26853.17443468902},"targetPosition":{"x":42300.66701596131,"y":26270.601123532455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P 2","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.1 - chart.at01hs.bollingerBand.deviation * 4 > 1){chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.1 - chart.at01hs.bollingerBand.deviation * 4} else {takeProfit}","id":"0126f4db-54fc-4ede-8373-455eb98c02ac","savedPayload":{"position":{"x":44356.46025768742,"y":27234.418120667342},"targetPosition":{"x":43904.27034596599,"y":27435.680274939747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at12hs.percentageBandwidth.previous.movingAverage <= 15","id":"dd2c179d-0f15-4260-807e-926d1af2bb29","savedPayload":{"position":{"x":39020.18668533981,"y":28388.812797834158},"targetPosition":{"x":39185.78202780981,"y":28121.28941849295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65617019-982d-40a3-a086-b31b540babc3","savedPayload":{"position":{"x":39185.78202780981,"y":28121.28941849295},"targetPosition":{"x":39366.632975030356,"y":27872.99503392311},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":" chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","id":"cb1c258b-8d57-4eb9-b912-5c8924cd4d49","savedPayload":{"position":{"x":38841.49821734451,"y":28193.801860912947},"targetPosition":{"x":39104.11952541188,"y":28033.451648490387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"52c0dae3-b8e3-405b-9423-f32913636a57","savedPayload":{"position":{"x":39104.11952541188,"y":28033.451648490387},"targetPosition":{"x":39366.632975030356,"y":27872.99503392311},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >= 15","id":"89d19b8f-d030-46f6-8a98-c2bfa2e1f553","savedPayload":{"position":{"x":38758.59117340723,"y":27968.676415639282},"targetPosition":{"x":39062.50197271419,"y":27920.95845222073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c13131f3-4bfe-43c6-8ed4-7a6fd8a385d1","savedPayload":{"position":{"x":39062.50197271419,"y":27920.95845222073},"targetPosition":{"x":39366.632975030356,"y":27872.99503392311},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"14c028eb-4857-45dd-a5e1-32428d869fc9","savedPayload":{"position":{"x":39366.632975030356,"y":27872.99503392311},"targetPosition":{"x":39644.57846953069,"y":27702.333527444905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"(chart.at24hs.percentageBandwidth.movingAverage <= 70 || chart.at12hs.percentageBandwidth.movingAverage <= 40 ) && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=5","id":"2094c0d3-3283-4228-8b69-8db579c64ed9","savedPayload":{"position":{"x":38849.82406221925,"y":27734.232868776628},"targetPosition":{"x":39002.18453621761,"y":27710.24535513939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"70d80cd1-296e-47b3-b1c1-5b6b7a62bbc6","savedPayload":{"position":{"x":39002.18453621761,"y":27710.24535513939},"targetPosition":{"x":39318.43147689118,"y":27667.80758277534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","id":"b44eb9ba-94f2-4231-88ea-ece9767764d2","savedPayload":{"position":{"x":38743.64438683522,"y":27447.363629044692},"targetPosition":{"x":39031.25127631588,"y":27557.529013013213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"37903197-40db-4925-b0eb-8a5200605fcb","savedPayload":{"position":{"x":39031.25127631588,"y":27557.529013013213},"targetPosition":{"x":39318.43147689118,"y":27667.80758277534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"eb62450a-7c7d-461b-853c-18c9d9256db2","savedPayload":{"position":{"x":39318.43147689118,"y":27667.80758277534},"targetPosition":{"x":39644.57846953069,"y":27702.333527444905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"726e5671-70e4-4489-ba9f-24f19bc3139f","savedPayload":{"position":{"x":43800.89921548829,"y":28419.99703426067},"targetPosition":{"x":43904.27034596599,"y":27435.680274939747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"d465a0e2-291c-44af-a7e7-ab88dfafee33","savedPayload":{"position":{"x":43904.27034596599,"y":27435.680274939747},"targetPosition":{"x":43102.490029688415,"y":26853.17443468902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P 3","formula":{"type":"Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation * 3 > 1){chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation * 3} else {takeProfit}","id":"4229e801-d485-4e90-a57e-14d7401dba6b","savedPayload":{"position":{"x":45158.08957392563,"y":27816.911902414922},"targetPosition":{"x":44705.940105036716,"y":28018.16302825531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.previous.movingAverage <= 20","id":"1d28c26b-838a-45b3-a9ae-dfd0ff517b4e","savedPayload":{"position":{"x":43671.762597188776,"y":28665.652455724376},"targetPosition":{"x":43344.72209039262,"y":28520.953982631425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"435d84a7-18b8-4bdd-ac3e-20ec918972ad","savedPayload":{"position":{"x":43344.72209039262,"y":28520.953982631425},"targetPosition":{"x":43065.015970762935,"y":28352.86106371552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":" chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","id":"532d32c0-8218-46fd-b226-c0d74ffbc59f","savedPayload":{"position":{"x":43597.85750051345,"y":28833.076691652197},"targetPosition":{"x":43331.63332171728,"y":28593.404475720527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ace92aa6-e1ac-4bea-8469-697cf19d9ca4","savedPayload":{"position":{"x":43331.63332171728,"y":28593.404475720527},"targetPosition":{"x":43065.015970762935,"y":28352.86106371552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >=10","id":"4c814ec0-81f5-41d2-b6de-f7518b0b0928","savedPayload":{"position":{"x":43423.46986322124,"y":28974.029351480076},"targetPosition":{"x":43244.43462992984,"y":28663.76906695555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9f704e05-6368-413c-a5cb-9186b17d7c70","savedPayload":{"position":{"x":43244.43462992984,"y":28663.76906695555},"targetPosition":{"x":43065.015970762935,"y":28352.86106371552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.popularEMA.ema20 > chart.at01hs.popularEMA.ema50 || (chart.at01hs.popularEMA.ema50 - chart.at01hs.popularEMA.ema20 < chart.at01hs.popularEMA.previous.ema50 - chart.at01hs.popularEMA.previous.ema20 && chart.at01hs.popularEMA.previous.ema50 - chart.at01hs.popularEMA.previous.ema20 < chart.at01hs.popularEMA.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.ema20 && chart.at01hs.popularEMA.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.ema20 < chart.at01hs.popularEMA.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.ema20 && chart.at01hs.popularEMA.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.ema20 < chart.at01hs.popularEMA.previous.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.previous.ema20 && chart.at01hs.popularEMA.previous.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.previous.ema20 < chart.at01hs.popularEMA.previous.previous.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.previous.previous.ema20)","id":"b62b16a0-a825-4abb-80d4-0c011943738d","savedPayload":{"position":{"x":43213.87457064216,"y":29054.40075981538},"targetPosition":{"x":43139.47701980421,"y":28703.965527094068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"56fcf0d9-017b-481d-906e-1d00909c9707","savedPayload":{"position":{"x":43139.47701980421,"y":28703.965527094068},"targetPosition":{"x":43065.015970762935,"y":28352.86106371552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f896ea80-b7b0-4d72-b19a-512e8656f22b","savedPayload":{"position":{"x":43065.015970762935,"y":28352.86106371552},"targetPosition":{"x":42832.91695479948,"y":28066.793036095227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","id":"bd0bcb72-0dac-41e4-a89c-4c6cd57daf7a","savedPayload":{"position":{"x":43051.07226566322,"y":29103.087301525506},"targetPosition":{"x":42922.883797168666,"y":28768.03131200254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8a601ab7-fee9-49c4-b575-54f33583a59f","savedPayload":{"position":{"x":42922.883797168666,"y":28768.03131200254},"targetPosition":{"x":42794.351374197264,"y":28433.092876235107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","id":"cb5a576f-8a8a-4ee2-94ad-1df17c72b431","savedPayload":{"position":{"x":42831.43358116719,"y":29149.772948459282},"targetPosition":{"x":42812.88744862709,"y":28791.45664511423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ce24e5f1-c2fc-48fe-95c5-653d162f4a6c","savedPayload":{"position":{"x":42812.88744862709,"y":28791.45664511423},"targetPosition":{"x":42794.351374197264,"y":28433.092876235107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >=5","id":"664048a7-6e49-4e70-9778-d20b593e407d","savedPayload":{"position":{"x":42608.719226546105,"y":29126.22083911598},"targetPosition":{"x":42701.44309306069,"y":28779.676316086447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e00c3690-d6dc-4a50-95de-ccd597b7959a","savedPayload":{"position":{"x":42701.44309306069,"y":28779.676316086447},"targetPosition":{"x":42794.351374197264,"y":28433.092876235107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.movingAverage <= 60 || chart.at12hs.percentageBandwidth.movingAverage <= 30","id":"9f61c27b-bcbc-4a78-8f6f-4858c9c48593","savedPayload":{"position":{"x":42403.44799963697,"y":29034.637647296153},"targetPosition":{"x":42598.68106458204,"y":28733.805168060902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"27c9dd7c-0456-4ba1-b544-0b0484f6824f","savedPayload":{"position":{"x":42598.68106458204,"y":28733.805168060902},"targetPosition":{"x":42794.351374197264,"y":28433.092876235107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0f0c037f-31b9-43ed-9597-0afdca8bc238","savedPayload":{"position":{"x":42794.351374197264,"y":28433.092876235107},"targetPosition":{"x":42832.91695479948,"y":28066.793036095227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close <= positionRate * 0.8","id":"76951759-0c59-46ba-b12b-381e7ee76a93","savedPayload":{"position":{"x":41989.1026432755,"y":28749.265422429955},"targetPosition":{"x":42267.24784420857,"y":28524.02504592896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a7b2547e-0b31-42cf-9b0d-689a02f3964e","savedPayload":{"position":{"x":42267.24784420857,"y":28524.02504592896},"targetPosition":{"x":42546.23149631797,"y":28298.292895552117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1283aaed-707c-47fd-af74-1d4d02a872f9","savedPayload":{"position":{"x":42546.23149631797,"y":28298.292895552117},"targetPosition":{"x":42832.91695479948,"y":28066.793036095227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"bb4d9e1b-8f3c-4ee8-82e6-c2b44bec9fdb","savedPayload":{"position":{"x":44602.606609786315,"y":29002.35937458846},"targetPosition":{"x":44705.94006741386,"y":28018.14131654659},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"8ddb340d-921c-4999-a685-d4d345b74c5f","savedPayload":{"position":{"x":44706.012384131885,"y":28018.116420001486},"targetPosition":{"x":43904.27034596599,"y":27435.680274939747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P 4","formula":{"type":"Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation * 1.5 > 1){chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation * 1.5} else {takeProfit}","id":"5b65d305-886b-4244-9d5a-fed743f4429b","savedPayload":{"position":{"x":45999.922327496504,"y":28652.661924257347},"targetPosition":{"x":45108.67865429032,"y":28923.49119666455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.previous.movingAverage <= 10","id":"492361d1-7ffa-4589-becd-8559c94538dd","savedPayload":{"position":{"x":39468.09436374861,"y":29836.027043103848},"targetPosition":{"x":39435.98417813631,"y":29530.098683426906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5f22aa06-b15c-46ae-bc5f-cb01d4786dfe","savedPayload":{"position":{"x":39435.98417813631,"y":29530.098683426906},"targetPosition":{"x":39401.51538741613,"y":29223.881664928525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","id":"a0f575e8-ba84-4fa1-9b8b-5c9b1f78837b","savedPayload":{"position":{"x":39274.52671234616,"y":29826.963021090767},"targetPosition":{"x":39338.40665267933,"y":29526.02554167459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f488cc42-c26f-4881-b7af-33767df2c3ed","savedPayload":{"position":{"x":39338.40665267933,"y":29526.02554167459},"targetPosition":{"x":39401.51538741613,"y":29223.881664928525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >=10","id":"6467a895-b8d3-46f0-8a41-ba3db3134289","savedPayload":{"position":{"x":39097.61406112272,"y":29761.325104994416},"targetPosition":{"x":39251.40258179088,"y":29494.889710785144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e756b47a-49c4-475f-9239-98cc21d001e4","savedPayload":{"position":{"x":39251.40258179088,"y":29494.889710785144},"targetPosition":{"x":39401.51538741613,"y":29223.881664928525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.popularEMA.ema20 > chart.at01hs.popularEMA.ema50 || (chart.at01hs.popularEMA.ema50 - chart.at01hs.popularEMA.ema20 < chart.at01hs.popularEMA.previous.ema50 - chart.at01hs.popularEMA.previous.ema20 && chart.at01hs.popularEMA.previous.ema50 - chart.at01hs.popularEMA.previous.ema20 < chart.at01hs.popularEMA.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.ema20 && chart.at01hs.popularEMA.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.ema20 < chart.at01hs.popularEMA.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.ema20 && chart.at01hs.popularEMA.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.ema20 < chart.at01hs.popularEMA.previous.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.previous.ema20 && chart.at01hs.popularEMA.previous.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.previous.ema20 < chart.at01hs.popularEMA.previous.previous.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.previous.previous.ema20)","id":"3a95c3c9-027f-4b7f-b16e-d4d7e3c61af2","savedPayload":{"position":{"x":38937.35676051016,"y":29629.96983701126},"targetPosition":{"x":39165.96311307189,"y":29424.166464323942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7a0c06a1-a4b2-47e7-a6df-b67d8b3a5ede","savedPayload":{"position":{"x":39165.96311307189,"y":29424.166464323942},"targetPosition":{"x":39401.51538741613,"y":29223.881664928525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b1eaefe0-b666-4703-90d0-3c390c8d244d","savedPayload":{"position":{"x":39401.51538741613,"y":29223.881664928525},"targetPosition":{"x":39516.114415636366,"y":28924.56410175436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","id":"e2ac35ad-181e-4b58-84d6-3d9f1722c5aa","savedPayload":{"position":{"x":38783.25839629824,"y":29550.283067363347},"targetPosition":{"x":38976.78761240302,"y":29311.196837337044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fd88ff7a-6009-4b82-b5a6-af38cf1b7dd3","savedPayload":{"position":{"x":38976.78761240302,"y":29311.196837337044},"targetPosition":{"x":39216.20118961254,"y":29015.61645459315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.movingAverage <= 50 || chart.at12hs.percentageBandwidth.movingAverage <= 17.5","id":"915373e8-78fa-4957-b0d6-8a128722bab2","savedPayload":{"position":{"x":38617.92058663264,"y":29364.980604492466},"targetPosition":{"x":38888.083782832815,"y":29218.185716728876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6ec11da4-1d56-4fd9-8798-d7d1079f4a2d","savedPayload":{"position":{"x":38888.083782832815,"y":29218.185716728876},"targetPosition":{"x":39216.20118961254,"y":29015.61645459315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","id":"035d92fc-2871-4ffc-98c0-bd8bb995d01a","savedPayload":{"position":{"x":38565.3796355632,"y":29255.50956141062},"targetPosition":{"x":38855.60331264063,"y":29152.8843117097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4eb8fa5b-86e5-4e51-94be-cf93bd61e328","savedPayload":{"position":{"x":38855.60331264063,"y":29152.8843117097},"targetPosition":{"x":39216.20118961254,"y":29015.61645459315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >=5","id":"7f7981d8-7b3f-428c-b50b-7dec88963c51","savedPayload":{"position":{"x":38533.54748612064,"y":29109.17600160364},"targetPosition":{"x":38836.05433977321,"y":29053.353120128697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1a1a49bc-3696-453c-b26e-221b2198a725","savedPayload":{"position":{"x":38836.05433977321,"y":29053.353120128697},"targetPosition":{"x":39216.20118961254,"y":29015.61645459315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"35438563-6038-400f-a354-20f7e8d080d7","savedPayload":{"position":{"x":39223.48859763672,"y":29054.74047818931},"targetPosition":{"x":39516.114415636366,"y":28924.56410175436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close <= positionRate * 0.6","id":"c71d184c-dad3-4487-81e6-5f9d1e2ec6f3","savedPayload":{"position":{"x":38641.95400740201,"y":28589.07353652381},"targetPosition":{"x":38929.0535263983,"y":28699.13205164679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9bcabc5a-7a66-4e3e-823d-732c443ae1a6","savedPayload":{"position":{"x":38929.0535263983,"y":28699.13205164679},"targetPosition":{"x":39216.33878579554,"y":28809.305968189135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d60cbb75-bc28-4e8f-b7ea-a35d736a54fa","savedPayload":{"position":{"x":39216.33878579554,"y":28809.305968189135},"targetPosition":{"x":39516.114415636366,"y":28924.56410175436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"45c33f40-81fd-4db2-b218-eb8af83f82f2","savedPayload":{"position":{"x":45403.77606315581,"y":29584.400513497458},"targetPosition":{"x":45507.103578874885,"y":28600.259762022102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"e2fc4f36-4fd8-47b3-853a-986780cedddc","savedPayload":{"position":{"x":45507.67229553253,"y":28600.535617469774},"targetPosition":{"x":44705.94006741386,"y":28018.14131654659},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P 5","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","id":"eacb3d83-4d09-4208-a388-1398be9577e2","savedPayload":{"position":{"x":46308.52299848638,"y":29182.447480972733},"targetPosition":{"x":45908.046683418026,"y":28891.563771160505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"4f569eba-e3b6-49b8-9a09-0b340c93aae5","savedPayload":{"position":{"x":45908.046683418026,"y":28891.563771160505},"targetPosition":{"x":45507.103578874885,"y":28600.259762022102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4bd6d7c6-5f77-4388-b95b-f6de69aaf635","savedPayload":{"position":{"x":42300.66701596131,"y":26270.601123532455},"targetPosition":{"x":41498.80494613707,"y":25687.903975235113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"15dd5086-999b-47bd-bc1b-52d237404446","savedPayload":{"position":{"x":41302.81204154982,"y":26447.212699873733},"targetPosition":{"x":41240.26395076143,"y":26049.428184312597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"874036e1-7a51-4ac3-8b0e-4c9c4b2685d3","savedPayload":{"position":{"x":41601.81126025612,"y":26339.27649608335},"targetPosition":{"x":41498.80494613707,"y":25687.903975235113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9dfe21e5-b773-4d3c-8e32-1aaabcb8b62d","savedPayload":{"position":{"x":41498.80494613707,"y":25687.903975235113},"targetPosition":{"x":40964.21468152683,"y":25299.495034629625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","closeExecution":{"type":"Close Execution","id":"1a51f4d1-0c53-4be4-9a9c-ebc9fe97044a","savedPayload":{"position":{"x":41201.94668943851,"y":26419.243789944743},"targetPosition":{"x":40759.976634935716,"y":25928.030981927273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"66a09bf3-bed1-47e2-ba3a-2726e616b369","savedPayload":{"position":{"x":40320.00785816407,"y":26295.120140331164},"targetPosition":{"x":40539.105344753065,"y":25956.82560373922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"80b2983d-42e3-476d-9aa3-dece6d6098d7","savedPayload":{"position":{"x":40400.71750422938,"y":26481.24829109853},"targetPosition":{"x":40759.976634935716,"y":25928.030981927273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dc69e8b8-3474-4900-8169-ff524674a608","savedPayload":{"position":{"x":40759.976634935716,"y":25928.030981927273},"targetPosition":{"x":40964.21468152683,"y":25299.495034629625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f5eefa19-8d3b-4677-951d-9e8b9381cf09","savedPayload":{"position":{"x":40799.25277624297,"y":25299.475621769012},"targetPosition":{"x":39642.04913415892,"y":25299.5},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"Xtreme","triggerStage":{"type":"Trigger Stage","triggerOn":{"type":"Trigger On Event","situations":[{"type":"Situation","name":"Xtreme","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage && chart.at01hs.candle.previous.close < chart.at01hs.bollingerBand.previous.movingAverage && chart.at01hs.candle.previous.previous.close < chart.at01hs.bollingerBand.previous.previous.movingAverage","id":"3e541a4b-524f-447f-b562-0d95d16367dc","savedPayload":{"position":{"x":38634.2422209234,"y":25114.210476306747},"targetPosition":{"x":38811.7682138299,"y":25265.453656720227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5608edc7-4669-416c-8683-363416f0bbd6","savedPayload":{"position":{"x":38811.7682138299,"y":25265.453656720227},"targetPosition":{"x":39167.33696663251,"y":25567.396941744308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","id":"89919e11-81cf-4229-899f-dc51fee4caa3","savedPayload":{"position":{"x":38783.360000752764,"y":24981.69659794209},"targetPosition":{"x":38911.31594665894,"y":25177.24192909973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e6bdb405-f8a6-49d8-90f9-b571e1f776a2","savedPayload":{"position":{"x":38911.31594665894,"y":25177.24192909973},"targetPosition":{"x":39167.33696663251,"y":25567.396941744308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.previous.previous.previous.deviation > 200","id":"4c3fae0d-e6de-43ec-9cfd-001f23493431","savedPayload":{"position":{"x":38963.49978632944,"y":24896.991012787617},"targetPosition":{"x":39031.45155996245,"y":25120.849731759805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"262623d8-9d87-4af1-972b-cdc7f9f3dabd","savedPayload":{"position":{"x":39031.45155996245,"y":25120.849731759805},"targetPosition":{"x":39167.33696663251,"y":25567.396941744308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","id":"9dc33bbb-b6de-42a3-a2f5-559063a5366d","savedPayload":{"position":{"x":39159.762500636134,"y":24867.2298414088},"targetPosition":{"x":39162.11536447005,"y":25101.444106837534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"450315b6-9cf1-4a21-bd7b-1e22b9e925b2","savedPayload":{"position":{"x":39162.11536447005,"y":25101.444106837534},"targetPosition":{"x":39167.33696663251,"y":25567.396941744308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max - chart.at01hs.candle.min < 750","id":"3d3b51aa-5993-4a61-bfa3-9cfdedd94c98","savedPayload":{"position":{"x":39361.235711126326,"y":24896.513150786956},"targetPosition":{"x":39296.664078886526,"y":25121.972859979345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2e77e2ad-b82f-43aa-b4d4-409159aeae26","savedPayload":{"position":{"x":39296.664078886526,"y":25121.972859979345},"targetPosition":{"x":39167.33696663251,"y":25567.396941744308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation < 1000","id":"71c5e77c-8ba2-4c8c-a034-6bd853c5c896","savedPayload":{"position":{"x":39541.83907151459,"y":24974.451872727255},"targetPosition":{"x":39416.7244549055,"y":25172.407687215775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"14a4c5b3-49bf-4329-bc74-d01161a2753a","savedPayload":{"position":{"x":39416.7244549055,"y":25172.407687215775},"targetPosition":{"x":39167.33696663251,"y":25567.396941744308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 30 || chart.at03hs.percentageBandwidth.movingAverage >= 30 || chart.at04hs.percentageBandwidth.movingAverage >= 30 || chart.at06hs.percentageBandwidth.movingAverage >= 30 || chart.at08hs.percentageBandwidth.movingAverage >= 30","id":"ea735cd1-88f9-4298-9ae2-9194149470d8","savedPayload":{"position":{"x":39693.465873832836,"y":25103.670977960774},"targetPosition":{"x":39517.81721306262,"y":25258.44903153187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d475020d-507d-4b11-959d-139be28e7bb7","savedPayload":{"position":{"x":39517.81721306262,"y":25258.44903153187},"targetPosition":{"x":39167.33696663251,"y":25567.396941744308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"if (chart.at01hs.bollingerSubChannel.slope != \"Extreme\") {true} else {if (chart.at01hs.bollingerSubChannel.period <=7) {true} else {false}}","id":"43e66d7d-4647-4c4a-9184-716fec0da81e","savedPayload":{"position":{"x":39802.62864091867,"y":25270.589574730027},"targetPosition":{"x":39590.60564965547,"y":25369.650068902545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8a0dc00d-c225-4b20-8db7-179f82dd15c0","savedPayload":{"position":{"x":39590.60564965547,"y":25369.650068902545},"targetPosition":{"x":39167.33696663251,"y":25567.396941744308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 70 || chart.at02hs.percentageBandwidth.previous.movingAverage >= 70 || chart.at02hs.percentageBandwidth.previous.previous.movingAverage >= 70 || chart.at02hs.percentageBandwidth.previous.previous.previous.movingAverage >= 70 || chart.at02hs.percentageBandwidth.previous.previous.previous.previous.movingAverage >= 70 || chart.at02hs.percentageBandwidth.previous.previous.previous.previous.previous.movingAverage >= 70","id":"12e94fef-d550-4d40-91b6-7ab599418e2b","savedPayload":{"position":{"x":39860.42814199552,"y":25461.695547089388},"targetPosition":{"x":39629.17175511788,"y":25496.90542877681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f1431d9b-f0ad-4ac2-a389-19aefd45ae65","savedPayload":{"position":{"x":39629.17175511788,"y":25496.90542877681},"targetPosition":{"x":39167.33696663251,"y":25567.396941744308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerBand.deviation > 2000","id":"3ea73407-524a-4d18-8e64-cde594389f1c","savedPayload":{"position":{"x":39862.25228331403,"y":25661.08498035626},"targetPosition":{"x":39630.36845143606,"y":25629.79896218831},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8906bf8b-8852-4ee8-99cf-c7012e501f37","savedPayload":{"position":{"x":39630.36845143606,"y":25629.79896218831},"targetPosition":{"x":39167.33696663251,"y":25567.396941744308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c014c368-926e-40d0-90ac-bc42b4030112","savedPayload":{"position":{"x":39861.42977523583,"y":26842.02189422478},"targetPosition":{"x":39371.93722036876,"y":26592.693171942734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"cc1b7480-4eb6-4e05-97a8-eb0cccf1bec2","savedPayload":{"position":{"x":39371.93722036876,"y":26592.693171942734},"targetPosition":{"x":38882.46479348825,"y":26343.46333561765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close > chart.at01hs.bollingerBand.movingAverage","id":"ac1a8358-509d-4a6b-ae6c-5c089c5b394d","savedPayload":{"position":{"x":39854.427602718395,"y":27081.074015003174},"targetPosition":{"x":39640.56634645905,"y":26985.882462866124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"efdeab3d-33ab-402e-865e-fc74a1f882f3","savedPayload":{"position":{"x":39640.56634645905,"y":26985.882462866124},"targetPosition":{"x":39301.72890316699,"y":26835.062612435067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"31853984-3108-4bd0-aa9a-8b2c3bdbe432","savedPayload":{"position":{"x":39222.01208389953,"y":27388.268767037673},"targetPosition":{"x":39052.21505392141,"y":26865.808845845586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"be56ec91-bf3a-4888-9962-403640a3bc9f","savedPayload":{"position":{"x":39052.21505392141,"y":26865.808845845586},"targetPosition":{"x":38882.46479348825,"y":26343.46333561765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","situations":[{"type":"Situation","name":"Xtreme","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage && chart.at01hs.candle.previous.close < chart.at01hs.bollingerBand.previous.movingAverage && chart.at01hs.candle.previous.previous.close < chart.at01hs.bollingerBand.previous.previous.movingAverage","id":"58ee7e60-f4ae-4b57-b5c6-11aba949230a","savedPayload":{"position":{"x":39154.73823641365,"y":27232.789230778213},"targetPosition":{"x":38922.04306999821,"y":27208.34497137087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a0c2192c-6c72-4c29-b00a-72b7c8cb4d10","savedPayload":{"position":{"x":38922.04306999821,"y":27208.34497137087},"targetPosition":{"x":38553.31459023112,"y":27168.682047000915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","id":"5f3ec561-949c-459e-9463-a9444b112985","savedPayload":{"position":{"x":39105.94680751818,"y":27414.96822571868},"targetPosition":{"x":38892.1048115828,"y":27319.653919703236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d6e21f88-645e-4cbb-8888-233a48c0874e","savedPayload":{"position":{"x":38892.1048115828,"y":27319.653919703236},"targetPosition":{"x":38553.31459023112,"y":27168.682047000915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.previous.previous.previous.deviation > 200","id":"a5dc90e1-f251-403d-901b-4b5f2168671a","savedPayload":{"position":{"x":39002.73281129333,"y":27573.51650874495},"targetPosition":{"x":38829.02746517212,"y":27417.036717538103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7d61e222-4ca9-4269-9ac8-7d3dd5f7abb0","savedPayload":{"position":{"x":38829.02746517212,"y":27417.036717538103},"targetPosition":{"x":38553.31459023112,"y":27168.682047000915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","id":"6f4d0602-2693-4cbd-b9f4-68275f92b000","savedPayload":{"position":{"x":38855.838931195285,"y":27692.77642241698},"targetPosition":{"x":38738.69928780255,"y":27489.843079814895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a32c8be5-7e22-4a0a-85c8-6544fbe89b2e","savedPayload":{"position":{"x":38738.69928780255,"y":27489.843079814895},"targetPosition":{"x":38553.31459023112,"y":27168.682047000915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max - chart.at01hs.candle.min < 750","id":"8a7346fc-2789-42f3-b547-2ec4c51fa8b7","savedPayload":{"position":{"x":38679.100769611716,"y":27760.35658060563},"targetPosition":{"x":38630.465712488534,"y":27531.622673608326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"598028c6-a326-4a56-a26b-0d6dc532b3a4","savedPayload":{"position":{"x":38630.465712488534,"y":27531.622673608326},"targetPosition":{"x":38553.31459023112,"y":27168.682047000915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation < 1000","id":"0f36e63a-b125-4962-93b7-6e9cb43f357b","savedPayload":{"position":{"x":38490.50599310752,"y":27770.532025518165},"targetPosition":{"x":38514.746422009855,"y":27537.45725948166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"45291209-a1e2-4df8-bae6-073206b96243","savedPayload":{"position":{"x":38514.746422009855,"y":27537.45725948166},"targetPosition":{"x":38553.31459023112,"y":27168.682047000915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 30 || chart.at03hs.percentageBandwidth.movingAverage >= 30 || chart.at04hs.percentageBandwidth.movingAverage >= 30 || chart.at06hs.percentageBandwidth.movingAverage >= 30 || chart.at08hs.percentageBandwidth.movingAverage >= 30","id":"3f9094d6-34a5-4575-812d-bb207c2ccc3c","savedPayload":{"position":{"x":38307.75351570131,"y":27721.378871604025},"targetPosition":{"x":38402.60603834086,"y":27507.67418373712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32b9e05f-7b36-4887-9310-0a7afc9585d6","savedPayload":{"position":{"x":38402.60603834086,"y":27507.67418373712},"targetPosition":{"x":38553.31459023112,"y":27168.682047000915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"if (chart.at01hs.bollingerSubChannel.slope != \"Extreme\") {true} else {if (chart.at01hs.bollingerSubChannel.period <=7) {true} else {false}}","id":"03ae74e4-b4da-406b-a35b-73def4da55fc","savedPayload":{"position":{"x":38148.88912355448,"y":27617.89873022396},"targetPosition":{"x":38304.902167953085,"y":27444.315539978747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4a56a1ac-087e-4b3e-8c1d-0cd01de90faf","savedPayload":{"position":{"x":38304.902167953085,"y":27444.315539978747},"targetPosition":{"x":38553.31459023112,"y":27168.682047000915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 70 || chart.at02hs.percentageBandwidth.previous.movingAverage >= 70 || chart.at02hs.percentageBandwidth.previous.previous.movingAverage >= 70 || chart.at02hs.percentageBandwidth.previous.previous.previous.movingAverage >= 70 || chart.at02hs.percentageBandwidth.previous.previous.previous.previous.movingAverage >= 70 || chart.at02hs.percentageBandwidth.previous.previous.previous.previous.previous.movingAverage >= 70","id":"dbf4cb5b-3a7c-45e3-9226-b776dfebd03c","savedPayload":{"position":{"x":38029.99258992764,"y":27470.840781029798},"targetPosition":{"x":38232.099327035125,"y":27354.05074915757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c0b2dd7b-c260-48ae-b748-fad2c2b40e6a","savedPayload":{"position":{"x":38232.099327035125,"y":27354.05074915757},"targetPosition":{"x":38553.31459023112,"y":27168.682047000915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f3c49f4e-bd99-4980-ab18-b99cc12e4880","savedPayload":{"position":{"x":38661.81202607896,"y":27381.320846179507},"targetPosition":{"x":38633.1848732142,"y":26832.729177094534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"97c50b48-5c9a-4294-b058-29ef02d3ae3b","savedPayload":{"position":{"x":38575.52714053305,"y":26906.067731836865},"targetPosition":{"x":38400.22161546643,"y":27100.081102367727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b4fff923-83b3-427d-b750-9291f0ae4008","savedPayload":{"position":{"x":38449.40311308975,"y":27036.797637400912},"targetPosition":{"x":38633.1848732142,"y":26832.729177094534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"267e00cd-81fb-40ac-b287-ce322c3c0a72","savedPayload":{"position":{"x":38633.1848732142,"y":26832.729177094534},"targetPosition":{"x":38882.46479348825,"y":26343.46333561765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"a54033d0-c494-4bb1-9985-f735f9bbdc76","savedPayload":{"position":{"x":38882.46479348825,"y":26343.46333561765},"targetPosition":{"x":38543.28678959614,"y":25299.500783556694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"openStage":{"type":"Open Stage","initialDefinition":{"type":"Initial Definition","stopLoss":{"type":"Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"if (positionRate + positionRate * 3 / 100 > 150) {positionRate + positionRate * 3 / 100} else {150}","id":"0337c80c-4d49-463c-a671-541fbc071998","savedPayload":{"position":{"x":38062.009464331495,"y":27769.222299978934},"targetPosition":{"x":37664.405316160555,"y":27662.580380440922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 4 / 100","id":"3072fb05-b95d-4f59-9798-f43dc9e39c88","savedPayload":{"position":{"x":37929.98129274946,"y":28753.17220326868},"targetPosition":{"x":37839.44752650823,"y":28415.132360582025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bdc0ea0a-76f0-4397-8b81-6eed09dda349","savedPayload":{"position":{"x":37839.44752650823,"y":28415.132360582025},"targetPosition":{"x":37748.755823659034,"y":28076.735371852712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"99059151-79e7-4d4f-a49a-0d2ca95e3fa4","savedPayload":{"position":{"x":37748.755823659034,"y":28076.735371852712},"targetPosition":{"x":37655.04840520232,"y":27727.298505096143},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"99c91cfe-eb1e-423c-b771-2cb019ab972d","savedPayload":{"position":{"x":37771.06077227574,"y":28060.675431141597},"targetPosition":{"x":37664.405316160555,"y":27662.580380440922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"eaca874c-4cde-4941-ab00-766364d335a2","savedPayload":{"position":{"x":37664.224091102864,"y":27662.903849216225},"targetPosition":{"x":37373.030175627486,"y":27371.680921865627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4b526d7b-4fdf-43ca-806a-c7771fe60ec1","savedPayload":{"position":{"x":37373.030175627486,"y":27371.680921865627},"targetPosition":{"x":37081.9249212183,"y":27080.755302498605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.4","id":"8652e61e-34e7-45bd-bba7-5330a3070d92","savedPayload":{"position":{"x":37469.08380820336,"y":28214.300184030468},"targetPosition":{"x":37210.23596307848,"y":27894.118767508924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at03hs.percentageBandwidth.previous.movingAverage <= 10","id":"28c243c3-4b55-4bb4-a594-4c05e05f9d0c","savedPayload":{"position":{"x":37218.208438274334,"y":28962.60975299573},"targetPosition":{"x":37163.60191935214,"y":28616.78876298102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c1a574e0-c584-4a5a-85c4-8273feb81fe0","savedPayload":{"position":{"x":37163.60191935214,"y":28616.78876298102},"targetPosition":{"x":37108.94332779953,"y":28270.718996895914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9cdd45d8-f6c4-4e20-aa65-6a856263e554","savedPayload":{"position":{"x":37108.94332779953,"y":28270.718996895914},"targetPosition":{"x":37052.28832721757,"y":27912.704286551558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at03hs.percentageBandwidth.movingAverage <= 30","id":"bc8ec34b-ca18-42dc-8511-eed81356e134","savedPayload":{"position":{"x":36519.61120085396,"y":28794.624446423844},"targetPosition":{"x":36645.011147517216,"y":28467.775625694398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fbbd2165-081d-45b1-aa19-c424816b4326","savedPayload":{"position":{"x":36645.011147517216,"y":28467.775625694398},"targetPosition":{"x":36770.556087479206,"y":28140.723987238274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","id":"d147395c-8ac0-4a5b-86f4-d013296c62af","savedPayload":{"position":{"x":36078.868902260336,"y":28250.279014350614},"targetPosition":{"x":36424.60756552862,"y":28195.528906634943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b5c33632-4126-495f-8b9f-b0833810a6b6","savedPayload":{"position":{"x":36424.60756552862,"y":28195.528906634943},"targetPosition":{"x":36770.556087479206,"y":28140.723987238274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3d24dd7c-1b0d-4604-ac3d-13b37c021477","savedPayload":{"position":{"x":36770.556087479206,"y":28140.723987238274},"targetPosition":{"x":37052.28832721757,"y":27912.704286551558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4f25e2ba-6306-4d6c-a230-093f16fbaed3","savedPayload":{"position":{"x":37062.584073794125,"y":28278.881608695032},"targetPosition":{"x":37210.23596307848,"y":27894.118767508924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"fcb8e7e9-eab0-41a4-a33d-c9f8fb5177fb","savedPayload":{"position":{"x":37210.024318125805,"y":27894.36667075418},"targetPosition":{"x":37145.96661083353,"y":27487.416603708327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6714ac24-f79f-44b5-924f-8f1f69486b07","savedPayload":{"position":{"x":37145.96661083353,"y":27487.416603708327},"targetPosition":{"x":37081.9249212183,"y":27080.755302498605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"Position Size","formula":{"type":"Formula","code":"balanceBaseAsset","id":"3a4a4b24-af2b-4e3c-b78f-7b67e5c615b2","savedPayload":{"position":{"x":36707.72120868308,"y":27814.114056568513},"targetPosition":{"x":36894.797912171234,"y":27447.398318992065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4a88ee6a-b3a1-4424-8326-2934c76e451a","savedPayload":{"position":{"x":36894.797912171234,"y":27447.398318992065},"targetPosition":{"x":37081.9249212183,"y":27080.755302498605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"Position Rate","formula":{"type":"Formula","name":"My Formula","code":"candle.close","id":"1649c29c-10d2-4766-92e0-d0feedcf24e3","savedPayload":{"position":{"x":36348.37993768211,"y":27454.092178919273},"targetPosition":{"x":36715.21311200159,"y":27267.32295693829},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7fdce54a-55cb-4b4b-8db1-eeafd1028680","savedPayload":{"position":{"x":36715.21311200159,"y":27267.32295693829},"targetPosition":{"x":37081.9249212183,"y":27080.755302498605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bffe2cff-a470-41cd-9424-682cde958799","savedPayload":{"position":{"x":37081.9249212183,"y":27080.755302498605},"targetPosition":{"x":37210.78333675819,"y":26267.55164107282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","id":"6def1ff4-f839-45e1-847e-e5e9d45ddc65","savedPayload":{"position":{"x":36877.83851612586,"y":26509.252362186733},"targetPosition":{"x":37210.78333675819,"y":26267.55164107282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"7c07a075-202b-4958-83a0-b5e598dba4bf","savedPayload":{"position":{"x":37290.63126975661,"y":26145.537201432606},"targetPosition":{"x":36985.03042320477,"y":26097.257521179734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e96b9964-fc96-40ec-b762-f3f7d259ad49","savedPayload":{"position":{"x":36804.1024882504,"y":26203.31469524569},"targetPosition":{"x":37210.78333675819,"y":26267.55164107282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b9054c44-a372-44c6-ad59-45520ac8a9ed","savedPayload":{"position":{"x":37210.78333675819,"y":26267.55164107282},"targetPosition":{"x":38543.28678959614,"y":25299.500783556694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","stopLoss":{"type":"Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 4 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 4 / 100} else {stopLoss}","id":"349bbdc8-b091-4378-bb0a-57537aff415f","savedPayload":{"position":{"x":36817.428085791486,"y":25660.592414338284},"targetPosition":{"x":37014.1484819643,"y":25148.57178806651},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[],"announcements":[],"id":"22ebcfc5-e401-4946-b3e9-4cfb0d667be6","savedPayload":{"position":{"x":36668.500513310195,"y":24722.118116395508},"targetPosition":{"x":37014.1484819643,"y":25148.57178806651},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"c0eddbff-148a-4eb1-b979-e734b2f80b8d","savedPayload":{"position":{"x":37014.1484819643,"y":25148.57178806651},"targetPosition":{"x":37556.71902464847,"y":25062.695102924572},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5355af46-22d9-45b8-9dc2-62db0d70dc22","savedPayload":{"position":{"x":37556.71902464847,"y":25062.695102924572},"targetPosition":{"x":38099.15732398546,"y":24976.757582524697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","phases":[{"type":"Phase","name":"New Phase 1","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.3","id":"56242029-b63d-42a2-af1d-bad6099fc58c","savedPayload":{"position":{"x":36612.39912796038,"y":24336.747274231133},"targetPosition":{"x":36988.52935666488,"y":24169.481133182588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at04hs.percentageBandwidth.previous.movingAverage <= 15","id":"cdbf6c47-8430-4556-8fde-0ef4d71149f8","savedPayload":{"position":{"x":37045.66609825689,"y":23011.079239241615},"targetPosition":{"x":37049.59238641556,"y":23185.938465619744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2479eba5-be67-4727-937b-15860346a7ce","savedPayload":{"position":{"x":37049.59238641556,"y":23185.938465619744},"targetPosition":{"x":37053.798753077754,"y":23361.699146030118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9dad5a0d-5aa2-4f0c-86d7-ee1421a92e22","savedPayload":{"position":{"x":37053.798753077754,"y":23361.699146030118},"targetPosition":{"x":37063.28410709585,"y":23723.567918757064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at04hs.percentageBandwidth.movingAverage <= 50","id":"123f1320-0f5b-4c25-831c-a3c6dde68530","savedPayload":{"position":{"x":37528.16287653762,"y":22776.94520156177},"targetPosition":{"x":37402.33856572435,"y":23103.98069617015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2f7f419b-9b00-466f-908a-31021c5a6f0c","savedPayload":{"position":{"x":37402.33856572435,"y":23103.98069617015},"targetPosition":{"x":37276.72671560257,"y":23430.78943207519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","id":"d58440e5-c014-4484-a7ac-6e4ed9a0c1b3","savedPayload":{"position":{"x":37821.363061400385,"y":22990.24072991842},"targetPosition":{"x":37549.0450213447,"y":23210.690957570576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3b33e925-4371-4070-bfc7-968fc18f04fe","savedPayload":{"position":{"x":37549.0450213447,"y":23210.690957570576},"targetPosition":{"x":37276.72671560257,"y":23430.78943207519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e37f4996-17a5-4846-bd49-cbb1f6b5eb65","savedPayload":{"position":{"x":37276.72671560257,"y":23430.78943207519},"targetPosition":{"x":37063.28410709585,"y":23723.567918757064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"e6acc8e7-001c-4f6a-8a16-a2df63767dd4","savedPayload":{"position":{"x":37074.51419599796,"y":23350.941553342414},"targetPosition":{"x":36988.52935666488,"y":24169.481133182588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"b10e345c-aecf-4562-a85e-c345e6e433e5","savedPayload":{"position":{"x":36988.52935666488,"y":24169.481133182588},"targetPosition":{"x":37654.916260101934,"y":24653.743255781377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase 2","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.2","id":"47ac5c54-bcab-4679-bae3-df48476b2e89","savedPayload":{"position":{"x":35946.1086229054,"y":23852.67639929983},"targetPosition":{"x":36322.16487414663,"y":23685.31432683232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at06hs.percentageBandwidth.previous.movingAverage <= 15","id":"d6b1f3ba-ab79-4f7a-9460-7ad56d2f603c","savedPayload":{"position":{"x":36479.019345974244,"y":22599.411387665285},"targetPosition":{"x":36482.86663384189,"y":22774.409781589235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"af7e89d7-6bf9-45df-a7d6-43a68ab6030f","savedPayload":{"position":{"x":36482.86663384189,"y":22774.409781589235},"targetPosition":{"x":36487.032365404266,"y":22949.976412005042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a7ba56f6-8080-4c78-a5f7-3a8f0c879643","savedPayload":{"position":{"x":36487.032365404266,"y":22949.976412005042},"targetPosition":{"x":36496.58422710869,"y":23312.033653946226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at06hs.percentageBandwidth.movingAverage <= 50","id":"0178806d-1922-4f22-90f4-bad53ec87486","savedPayload":{"position":{"x":36961.61240220812,"y":22365.184631110522},"targetPosition":{"x":36835.65403922743,"y":22692.490754070335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4e7bfa49-fe1b-420e-a0c7-cf2fa021cb29","savedPayload":{"position":{"x":36835.65403922743,"y":22692.490754070335},"targetPosition":{"x":36709.925261896904,"y":23019.437319595327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","id":"1005f00a-fc60-46ed-9148-821f8ae11dac","savedPayload":{"position":{"x":37350.12677311433,"y":22734.148665188153},"targetPosition":{"x":37029.960460867296,"y":22877.023877882995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cc097f0c-d6f0-4604-a6e5-e20bf187950d","savedPayload":{"position":{"x":37029.960460867296,"y":22877.023877882995},"targetPosition":{"x":36709.925261896904,"y":23019.437319595327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"055acccd-9f4a-4061-8450-2542728bea0d","savedPayload":{"position":{"x":36709.925261896904,"y":23019.437319595327},"targetPosition":{"x":36496.58422710869,"y":23312.033653946226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"7c4c75d1-66a7-46fe-9d8b-f59127feb4fb","savedPayload":{"position":{"x":36408.12921121267,"y":22866.886167247496},"targetPosition":{"x":36322.16487414663,"y":23685.31432683232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"d4b86789-6853-4e39-87a2-c0db5ba83b57","savedPayload":{"position":{"x":36322.16487414663,"y":23685.31432683232},"targetPosition":{"x":36988.52935666488,"y":24169.481133182588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase 3","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.15","id":"3f765cfe-7c53-4864-9966-2189a50e67d3","savedPayload":{"position":{"x":35279.80885738757,"y":23368.56838345668},"targetPosition":{"x":35655.83443612933,"y":23201.19255471755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at08hs.percentageBandwidth.previous.movingAverage <= 15 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >= 5","id":"f3eb091e-10d2-42af-a3fd-0f292dd4facd","savedPayload":{"position":{"x":35912.426132011344,"y":22188.02473709919},"targetPosition":{"x":35916.25655923137,"y":22363.348447677257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6bc0645d-3c4b-4f51-b6d4-bf64a18c67ad","savedPayload":{"position":{"x":35916.25655923137,"y":22363.348447677257},"targetPosition":{"x":35920.423785958636,"y":22538.67684374441},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1f70959a-6225-418b-a8c0-9f0eb1b25959","savedPayload":{"position":{"x":35920.423785958636,"y":22538.67684374441},"targetPosition":{"x":35929.99672269212,"y":22900.68593225255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at08hs.percentageBandwidth.movingAverage <= 40 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >= 3","id":"7ea7b4d1-afca-4054-a879-f23b8af5f603","savedPayload":{"position":{"x":36332.45374018306,"y":22117.07062196842},"targetPosition":{"x":36269.12594360673,"y":22281.21403283719},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"46770ee9-f4a5-4954-bba6-a81a98ac170d","savedPayload":{"position":{"x":36269.12594360673,"y":22281.21403283719},"targetPosition":{"x":36143.284821448804,"y":22608.34684277255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.direction === \"Up\"","id":"ef2340f6-814f-4b36-bd7b-dda85145602f","savedPayload":{"position":{"x":36688.35895584827,"y":22167.168535872745},"targetPosition":{"x":36415.90984566528,"y":22387.88368661559},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2bd3230e-6d75-40b8-a21d-ae996c0af609","savedPayload":{"position":{"x":36415.90984566528,"y":22387.88368661559},"targetPosition":{"x":36143.284821448804,"y":22608.34684277255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e6d5b689-a6aa-458d-812c-23aa107070f7","savedPayload":{"position":{"x":36143.284821448804,"y":22608.34684277255},"targetPosition":{"x":35929.99672269212,"y":22900.68593225255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"a6666b42-09ab-4e1d-8496-68d75146df17","savedPayload":{"position":{"x":35741.788301955756,"y":22382.811190232384},"targetPosition":{"x":35655.83443612933,"y":23201.19255471755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"5c382616-0be7-41ce-ba3b-be50f1171cc6","savedPayload":{"position":{"x":35655.83443612933,"y":23201.19255471755},"targetPosition":{"x":36322.16487414663,"y":23685.31432683232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase 4","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.1","id":"f1cba918-c516-4a1b-89c6-0cd41c7c51ba","savedPayload":{"position":{"x":34613.50150082444,"y":22884.621673593494},"targetPosition":{"x":34989.484547146545,"y":22717.228144897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at12hs.percentageBandwidth.previous.movingAverage <= 15 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >= 15","id":"7a388dfb-f8d5-4db5-b23f-5904cf537693","savedPayload":{"position":{"x":35345.54834782866,"y":21776.558779173272},"targetPosition":{"x":35349.45653262655,"y":21951.944394752234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4612914d-6253-478a-9f65-2bb8d6b6b971","savedPayload":{"position":{"x":35349.45653262655,"y":21951.944394752234},"targetPosition":{"x":35353.67262658888,"y":22127.323998231765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"404022c9-8d38-41e3-b54e-440efaf4043e","savedPayload":{"position":{"x":35353.67262658888,"y":22127.323998231765},"targetPosition":{"x":35363.33987740086,"y":22489.365901438257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"(chart.at24hs.percentageBandwidth.movingAverage <= 70 || chart.at12hs.percentageBandwidth.movingAverage <= 40 ) && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=5","id":"1ed19248-d020-48cf-8108-720224f865f7","savedPayload":{"position":{"x":35765.689919450415,"y":21705.61672866174},"targetPosition":{"x":35702.37323616819,"y":21869.870719247032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5ee85058-ba70-4e9f-8edd-b347db3e9d48","savedPayload":{"position":{"x":35702.37323616819,"y":21869.870719247032},"targetPosition":{"x":35576.559391603776,"y":22197.076412807688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","id":"7deb0164-b72a-4a5b-b530-d60ab9d17d64","savedPayload":{"position":{"x":36121.60989343169,"y":21755.73157600969},"targetPosition":{"x":35849.16698062161,"y":21976.524346573085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"13fb342c-0335-40f9-b23d-3db153c33b16","savedPayload":{"position":{"x":35849.16698062161,"y":21976.524346573085},"targetPosition":{"x":35576.559391603776,"y":22197.076412807688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e9d17467-711c-45f7-8a08-f34da5a9d4d5","savedPayload":{"position":{"x":35576.559391603776,"y":22197.076412807688},"targetPosition":{"x":35363.33987740086,"y":22489.365901438257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9963f1b1-f5aa-4cef-b355-1e496edfa9e9","savedPayload":{"position":{"x":35075.55883317493,"y":21898.966732555666},"targetPosition":{"x":34989.61658634904,"y":22717.254029968073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"840184c3-e47a-4a42-a4d6-ceef67383a54","savedPayload":{"position":{"x":34989.447899426006,"y":22717.03424162746},"targetPosition":{"x":35655.83443612933,"y":23201.19255471755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase 5","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation * 1.75","id":"7548b47a-e78d-4679-8187-284a4f662261","savedPayload":{"position":{"x":33947.16212688377,"y":22400.829966740333},"targetPosition":{"x":34323.3327786729,"y":22233.159240527537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.previous.movingAverage <= 30 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=10","id":"ef8a4d0d-b3b8-437b-959a-c963f6c89fe3","savedPayload":{"position":{"x":34686.23734319014,"y":21373.562022389164},"targetPosition":{"x":34712.890400933815,"y":21546.67217851684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"70e23a03-8532-4e6c-a5f7-0532578ee8c4","savedPayload":{"position":{"x":34712.890400933815,"y":21546.67217851684},"targetPosition":{"x":34740.132717953886,"y":21720.801015570323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7691f96d-3dd1-46fd-abd1-a0fa7c2e2457","savedPayload":{"position":{"x":34740.132717953886,"y":21720.801015570323},"targetPosition":{"x":34796.82413534809,"y":22077.91417113042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"(chart.at24hs.percentageBandwidth.movingAverage <= 60 || chart.at12hs.percentageBandwidth.movingAverage <= 30 ) && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=5","id":"5aaa360b-617c-433f-bac0-360722424506","savedPayload":{"position":{"x":35260.930066821624,"y":21131.392613299886},"targetPosition":{"x":35135.5728173172,"y":21458.11081641969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"90f6a6d2-4b9f-47f0-910b-61106d80b107","savedPayload":{"position":{"x":35135.5728173172,"y":21458.11081641969},"targetPosition":{"x":35010.10226864419,"y":21785.087224550778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","id":"a2607c85-5420-444e-9a11-4eedeb76745f","savedPayload":{"position":{"x":35554.276038028744,"y":21344.656009542323},"targetPosition":{"x":35282.35444746537,"y":21564.829089366543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3a75e5f5-3366-4c84-a15d-dc60119e2844","savedPayload":{"position":{"x":35282.35444746537,"y":21564.829089366543},"targetPosition":{"x":35010.10226864419,"y":21785.087224550778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3162a795-144e-419d-9323-d70546393310","savedPayload":{"position":{"x":35010.10226864419,"y":21785.087224550778},"targetPosition":{"x":34796.82413534809,"y":22077.91417113042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"dd63d693-0e99-463a-a988-86287504d827","savedPayload":{"position":{"x":34409.77172681528,"y":21415.162105086772},"targetPosition":{"x":34323.32725745321,"y":22233.14268963072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"65109409-9152-4cc4-93e7-c33301f6d28c","savedPayload":{"position":{"x":34323.33595340725,"y":22233.193086902567},"targetPosition":{"x":34989.61658634904,"y":22717.254029968073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase 6","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation * 1.25","id":"c8800084-2dd6-44b5-b54a-e26a7dd3149a","savedPayload":{"position":{"x":33280.26062062725,"y":21916.058847959946},"targetPosition":{"x":33656.30735592492,"y":21748.61897320079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.previous.movingAverage <= 30 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=10","id":"ea47f887-5722-46b5-9b97-ac7bedb3ee7b","savedPayload":{"position":{"x":34201.77769468176,"y":20604.192116809576},"targetPosition":{"x":34210.8857044323,"y":20953.745286913818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5fa32bce-6d0e-4b93-ab17-dba973cfad1a","savedPayload":{"position":{"x":34210.8857044323,"y":20953.745286913818},"targetPosition":{"x":34220.13697780592,"y":21303.74379169583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1825ef6b-4396-4635-a9da-3652cd510acd","savedPayload":{"position":{"x":34220.13697780592,"y":21303.74379169583},"targetPosition":{"x":34230.265895908764,"y":21666.041457149666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"(chart.at24hs.percentageBandwidth.movingAverage <= 50 || chart.at12hs.percentageBandwidth.movingAverage <= 17.5 ) && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=5","id":"d19aeeec-1ed3-462b-8a55-b9806a17ad77","savedPayload":{"position":{"x":34777.155360963516,"y":20757.357517018118},"targetPosition":{"x":34610.00340944047,"y":21065.513546063103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b731c25b-4899-4198-98bc-a42c5e77cb14","savedPayload":{"position":{"x":34610.00340944047,"y":21065.513546063103},"targetPosition":{"x":34443.29351708951,"y":21373.376150149285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","id":"3a3e404a-06ca-4371-a5e4-f71d0ceab201","savedPayload":{"position":{"x":34987.71386018262,"y":20932.496636578537},"targetPosition":{"x":34715.44143342088,"y":21153.23638102526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"188c7a7f-f9b7-4d4e-9147-065d1aa7a2f4","savedPayload":{"position":{"x":34715.44143342088,"y":21153.23638102526},"targetPosition":{"x":34443.29351708951,"y":21373.376150149285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"869ee575-049f-4759-a498-79647b0ed1a4","savedPayload":{"position":{"x":34443.29351708951,"y":21373.376150149285},"targetPosition":{"x":34230.265895908764,"y":21666.041457149666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"412e8505-aab3-4c3c-8799-dfddc8e879f2","savedPayload":{"position":{"x":33742.19649676662,"y":20930.31632524261},"targetPosition":{"x":33656.34260136011,"y":21748.59492729729},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"34563f7d-9c72-465b-8265-07302e098ff1","savedPayload":{"position":{"x":33657.17038592897,"y":21749.36153835545},"targetPosition":{"x":34323.32725745321,"y":22233.14268963072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","id":"e63d85c1-3f43-4eee-96f2-3db5ae3db60e","savedPayload":{"position":{"x":32990.1264608507,"y":21264.6414477228},"targetPosition":{"x":33323.105667745454,"y":21506.49043771999},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"3f98a4e8-b586-4ffa-9630-86caec6508ff","savedPayload":{"position":{"x":33323.097425587905,"y":21506.467085729528},"targetPosition":{"x":33656.34260136011,"y":21748.59492729729},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a3704633-a258-4bcf-9aef-063f91fe4729","savedPayload":{"position":{"x":37654.916260101934,"y":24653.743255781377},"targetPosition":{"x":38099.15732398546,"y":24976.757582524697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"2c2a8de4-7aef-421d-b0c9-cbfcff444c84","savedPayload":{"position":{"x":38376.81204154982,"y":25097.712699873733},"targetPosition":{"x":38314.26395076143,"y":24699.928184312597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4264495f-73b8-4fb4-a41b-034b0727a9b0","savedPayload":{"position":{"x":38013.68104873196,"y":24434.85298322019},"targetPosition":{"x":38099.15732398546,"y":24976.757582524697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e3e4ef8c-d328-417c-af43-1300f00f674f","savedPayload":{"position":{"x":38099.15732398546,"y":24976.757582524697},"targetPosition":{"x":38543.28678959614,"y":25299.500783556694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","closeExecution":{"type":"Close Execution","id":"0b0c1936-fe07-43b9-80dd-8e8d7cb5e19d","savedPayload":{"position":{"x":38599.14393103092,"y":24239.61963606108},"targetPosition":{"x":38713.07429295899,"y":24777.04968466085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"d97442f9-5c13-4ad6-9151-878e6842fe57","savedPayload":{"position":{"x":38807.00785816407,"y":25105.620140331164},"targetPosition":{"x":39026.105344753065,"y":24767.32560373922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8df754d2-5c34-405b-b7ff-95c5f87083d2","savedPayload":{"position":{"x":39011.80785197776,"y":24317.005110283426},"targetPosition":{"x":38713.07429295899,"y":24777.04968466085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51a105b6-c1a1-4805-b0f0-a4895097f071","savedPayload":{"position":{"x":38713.07429295899,"y":24777.04968466085},"targetPosition":{"x":38543.28678959614,"y":25299.500783556694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3e5c4b18-a27e-4d12-a5d8-9bf44e970f1c","savedPayload":{"position":{"x":38543.28678959614,"y":25299.500783556694},"targetPosition":{"x":39642.04913415892,"y":25299.5},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00","savedPayload":{"position":{"x":39642.04913415892,"y":25299.5},"targetPosition":{"x":39642.04913415892,"y":25299.5},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"w"}}} \ No newline at end of file diff --git a/Workspace - Binance - WHB - BBTB.json b/Workspace - Binance - WHB - BBTB.json deleted file mode 100644 index b8bf85c8d..000000000 --- a/Workspace - Binance - WHB - BBTB.json +++ /dev/null @@ -1 +0,0 @@ -{"type":"Workspace","name":"Binance - WHB - BBTB","rootNodes":[{"type":"Network","name":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","code":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34247\", \n\"webSocketsPort\": \"8080\"\n}","dataStorage":{"type":"Data Storage","name":"New Data Storage","sessionIndependentData":{"type":"Session Independent Data","name":"New Session Independent Data","exchangeDataProducts":[{"type":"Exchange Data Products","name":"Binance","singleMarketData":[{"type":"Single Market Data","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"dd7c8795-bb24-4438-9d77-b37a9000ad7f","savedPayload":{"position":{"x":39655.39345377463,"y":28084.121285348076},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"98e6c917-f4b7-4b71-9215-de3ccaf3dc0c","savedPayload":{"position":{"x":39619.08803001109,"y":27971.34006849996},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"1d7dd537-5f6f-4eb2-8e56-ddba0aef720f","savedPayload":{"position":{"x":39594.11393185164,"y":27855.840877332517},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"221c8d22-8a7f-4014-a7ed-0bafc886b123","savedPayload":{"position":{"x":39580.59887306321,"y":27738.507421368748},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"6929ebe7-6486-4299-add5-ed0282500d91","savedPayload":{"position":{"x":39578.655464896365,"y":27620.63069875915},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"4a3ed8eb-a73e-4fb4-835a-681cf47d7373","savedPayload":{"position":{"x":39588.297198778826,"y":27502.946480135615},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"5ffc6a67-e33b-422b-8e36-f9711f93c723","savedPayload":{"position":{"x":39609.428887621216,"y":27386.77785099828},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"48f7953c-f62d-4292-b042-d1ac05f8f80f","savedPayload":{"position":{"x":39641.84608404141,"y":27273.24280350331},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"3b9a3c93-6d41-440e-89a2-2fd1b2dde603","savedPayload":{"position":{"x":39685.2360649887,"y":27163.433854438405},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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","id":"70401ea0-3fed-4e40-8bba-a1e5adce9b8c","savedPayload":{"position":{"x":39739.18066448831,"y":27058.407968059906},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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","id":"06ac8eb7-8b14-42b1-9e2e-466280ade032","savedPayload":{"position":{"x":39803.16019594351,"y":26959.1762369918},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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":"Popular EMAs","id":"014bba70-64d4-4035-b06d-145ee9b4c54c","savedPayload":{"position":{"x":39876.55840037216,"y":26866.694054096202},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"768cc06c-6fdf-491a-a741-5e08f0e25e38","savedPayload":{"position":{"x":39958.66834477317,"y":26781.851861425766},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"40794460-b815-498f-a245-e677de0eed86","savedPayload":{"position":{"x":40048.69920292061,"y":26705.466552453436},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"7ccbd0c1-c804-47e3-9314-14cbb756c806","savedPayload":{"position":{"x":40145.78385240617,"y":26638.273605375165},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"728d6f08-086f-41ba-9126-30ec56a45ea5","savedPayload":{"position":{"x":40248.98721974834,"y":26580.920017944973},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"1510fd36-633e-40a7-adbe-680660d64bd0","savedPayload":{"position":{"x":40357.31529765827,"y":26533.95809992029},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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":"Base5 SMAs","id":"2404b1eb-c7c9-46e7-b22a-93cfcc3739f4","savedPayload":{"position":{"x":40469.72474382882,"y":26497.840166222424},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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":"Bollinger Channels","id":"d83476c3-2f0b-4d4a-abb2-0e47ed0a421d","savedPayload":{"position":{"x":40585.132955318084,"y":26472.914171771416},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"0428f20b-9620-480e-a531-dbb2e5f59ef4","savedPayload":{"position":{"x":40702.42850753783,"y":26459.42033593334},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"fcfec9fa-1a0d-4285-9fad-4a23409f88ed","savedPayload":{"position":{"x":40820.28557415008,"y":26457.488926076465},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"08f223a8-9707-4c45-b638-1fe0e4a2b053","savedPayload":{"position":{"x":40937.95845139182,"y":26467.13880986452},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"66f1a9be-fe96-48c3-91e4-500c6e246423","savedPayload":{"position":{"x":41054.120384899,"y":26488.277064496815},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"e432c706-cbcd-4af0-b23c-b18e5b29377a","savedPayload":{"position":{"x":41167.65178678811,"y":26520.700545782674},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"7f2dfd8e-de4a-4bd1-8d34-27581f1a3ed8","savedPayload":{"position":{"x":41277.4594798642,"y":26564.097566374792},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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","id":"595d148f-6cdf-48d3-ab8f-23fba0052631","savedPayload":{"position":{"x":41382.48641024106,"y":26618.051155654128},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"2045098a-e9b4-4409-9fd9-ee7285d9b7cf","savedPayload":{"position":{"x":41481.72199276818,"y":26682.043494609432},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"295bd09d-e868-4e8b-9944-39bf6e0d7951","savedPayload":{"position":{"x":41574.21247985582,"y":26755.461785010735},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"ba6f23d4-c2e7-41b4-88a0-e14ebb34e21c","savedPayload":{"position":{"x":41659.072595416554,"y":26837.602086697607},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"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"}}},{"type":"Data Product","name":"Resistances","id":"0669d924-aace-46d1-b126-ccced8fd33cf","savedPayload":{"position":{"x":41734.78246123321,"y":26926.742016325188},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Resistances","id":"7a734501-a0fb-4305-803e-7e95d477c513"}}},{"type":"Data Product","name":"Supports","id":"5e7a0e50-e6ed-4106-8025-8b35ad6c597c","savedPayload":{"position":{"x":41803.59685318991,"y":27026.194745818015},"targetPosition":{"x":40780.996436099675,"y":27659.843516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Supports","id":"bc3c43de-6312-47d4-ae3d-0c95c1b039e0"}}}],"id":"cbdd3605-b905-453f-9ecb-e986cb2729f9","savedPayload":{"position":{"x":24207.999751769254,"y":28942.4248575682},"targetPosition":{"x":25074.611669244932,"y":29722.715919865514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}}],"id":"7f87ecc6-8dd3-42e9-9217-1579b64aae75","savedPayload":{"position":{"x":25074.725705182926,"y":29722.361915324287},"targetPosition":{"x":25508.405506167062,"y":30112.915970947008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"bf04ccea-266d-4115-b50e-fefdf29b873a","savedPayload":{"position":{"x":25508.405506167062,"y":30112.915970947008},"targetPosition":{"x":25942.043094058594,"y":30503.50687445451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"i"}}},"sessionBasedData":{"type":"Session Based Data","name":"New Session Based Data","exchangeSessions":[{"type":"Exchange Sessions","name":"Binance","sessionReferences":[{"type":"Session Reference","name":"Back WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"573fb46f-78d2-4bf3-ad11-e42d2531d53e","savedPayload":{"position":{"x":40971.62547458223,"y":28704.67815778764},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"39d7a06d-5aad-4b03-8778-e4df8dacc825","savedPayload":{"position":{"x":40739.2805936536,"y":28612.68448755448},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"7af9d35c-7464-4ed5-9ee6-ccf7a9943894","savedPayload":{"position":{"x":40648.47472250254,"y":28380.33960662585},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"82b46974-7a93-4066-a3b7-378b42710364","savedPayload":{"position":{"x":40749.374350272024,"y":28158.088482315645},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"109e30d5-c839-4e20-8744-2e4dc002f3a8","savedPayload":{"position":{"x":40971.62547458223,"y":28380.33960662585},"targetPosition":{"x":41034.51136563778,"y":28696.544935681453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"3792a579-2f2c-4c29-9cb1-05e2683db5da","savedPayload":{"position":{"x":25442.41940134145,"y":28898.292141318674},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"f32f1cdc-425f-4193-a43b-be9312c74234"}}},{"type":"Session Reference","name":"Paper WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"63636068-307e-4cea-b31f-f47e106cea2c","savedPayload":{"position":{"x":41557.474267378886,"y":28704.538380895512},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"20848048-8efb-47b1-aaf0-789d2f6c5b1d","savedPayload":{"position":{"x":41328.36437304013,"y":28614.669001956987},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"87b74841-4f6a-4658-b01b-7feb254b5d2f","savedPayload":{"position":{"x":41238.701960314706,"y":28385.55910761823},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"5e28998c-b35f-4cc0-9fd6-8ee5f5714545","savedPayload":{"position":{"x":41328.657032916315,"y":28156.74187315566},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"12cd1cb4-f163-4d1b-8955-cae6904831c7","savedPayload":{"position":{"x":41557.474267378886,"y":28385.55910761823},"targetPosition":{"x":41536.37709492533,"y":28707.266395142844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"5f2e9d8a-f1df-4efd-8232-718818cab630","savedPayload":{"position":{"x":25645.811186643416,"y":28672.384434673422},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"2198ec50-3d31-43b7-a57d-e386bef38a93"}}},{"type":"Session Reference","name":"Live Trading WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"af19e56c-eaf1-4b0b-93f9-74b9ac1843c2","savedPayload":{"position":{"x":42124.2954678251,"y":28863.166820214137},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"30ac52a8-ee50-439c-83c8-df75ab49374a","savedPayload":{"position":{"x":41899.82203310804,"y":28765.34236295704},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"c35fa0be-6e51-4d14-9a52-6b0174cc1aab","savedPayload":{"position":{"x":41803.41381185934,"y":28540.86892823998},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"6a059555-2555-4c7f-a722-2ab4ca0440c5","savedPayload":{"position":{"x":41897.44019113757,"y":28314.01365155245},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"863885a8-2351-4b29-9f2e-ae3aeda223fc","savedPayload":{"position":{"x":42124.2954678251,"y":28540.86892823998},"targetPosition":{"x":42020.66210112073,"y":28846.1629818523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"ee314903-8ee9-4068-8a90-9452c460b910","savedPayload":{"position":{"x":25914.176401881115,"y":28529.692846346756},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"5335fd67-ebdc-4cfd-936d-b76af957713e"}}},{"type":"Session Reference","name":"Fwd WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"5919a710-a950-4049-9605-3f127b7fac6b","savedPayload":{"position":{"x":42492.63963403888,"y":28500.7397102676},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"c7030a88-152f-421c-8b32-66f3c222286a","savedPayload":{"position":{"x":42710.36396962775,"y":28492.07047492605},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"f4b18249-5044-4b34-83f7-3cedbbe939c5","savedPayload":{"position":{"x":42891.7169300037,"y":28613.377753949273},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"25db80e6-c4cf-4568-98d3-0cba83625ece","savedPayload":{"position":{"x":42967.139262708275,"y":28818.147267745622},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"9b6e94d5-442d-4882-beb6-6b616adb24a7","savedPayload":{"position":{"x":42636.198275976094,"y":28799.555013396635},"targetPosition":{"x":42436.14135357761,"y":29099.04809298164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"3892574a-ebe9-4d4d-8e79-02e6f0900c44","savedPayload":{"position":{"x":26214.957290034235,"y":28487.39268280673},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Forward Testing Session","name":"Fwd WHB","id":"0e7edb98-38ff-4516-89a1-188030989ddc"}}},{"type":"Session Reference","name":"Back BBTB Binance BTC/USDT","singleMarketData":{"type":"Single Market Data","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"653622df-b35b-4c72-9b1d-cbbea2d45a93","savedPayload":{"position":{"x":26455.573591725715,"y":27743.761762864735},"targetPosition":{"x":26685.903141314688,"y":28119.50039190219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"bcd39fee-3584-4e3a-b524-05ecb62d4582","savedPayload":{"position":{"x":26718.02998233403,"y":27678.207255468882},"targetPosition":{"x":26685.903141314688,"y":28119.50039190219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"aa60feec-3e11-4509-ab4f-5eac17ea7d3b","savedPayload":{"position":{"x":26969.002379074984,"y":27779.578235462006},"targetPosition":{"x":26685.903141314688,"y":28119.50039190219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"d6a48300-ab24-4b7b-8fb1-b431e389c7d1","savedPayload":{"position":{"x":27112.390627347257,"y":28009.145745126465},"targetPosition":{"x":26685.903141314688,"y":28119.50039190219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"1a28b5a4-fd4e-4911-a195-3a27cac67cd9","savedPayload":{"position":{"x":26685.903141314688,"y":28119.50039190219},"targetPosition":{"x":26511.90768779935,"y":28550.735424728384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"894fe28c-55f0-4ce7-a61f-31b7a58036b0","savedPayload":{"position":{"x":26512.25277222365,"y":28550.5818725418},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"Back BBTB","id":"5d72321e-97e7-404f-8272-809dbbf4db35"}}},{"type":"Session Reference","name":"Paper BBTB Binance BTC/USDT","singleMarketData":{"type":"Single Market Data","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"2004d488-ba55-478c-afa4-c00a555bf34c","savedPayload":{"position":{"x":26971.216338450067,"y":27957.810135682634},"targetPosition":{"x":27062.315598951875,"y":28386.268950715483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"7859d024-817a-4059-8a17-86690194f9de","savedPayload":{"position":{"x":27240.2554163473,"y":27986.018658800323},"targetPosition":{"x":27062.315598951875,"y":28386.268950715483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"11af0867-3396-48d4-b794-9d133d2d2416","savedPayload":{"position":{"x":27441.353895746524,"y":28167.02459841552},"targetPosition":{"x":27062.315598951875,"y":28386.268950715483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"dd541e63-8071-4b0f-8eb8-5fd50ef3eb82","savedPayload":{"position":{"x":27497.330846318662,"y":28431.383320855293},"targetPosition":{"x":27062.315598951875,"y":28386.268950715483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"778e7f94-7cf1-43a2-8843-2faca50fd6b2","savedPayload":{"position":{"x":27062.315598951875,"y":28386.268950715483},"targetPosition":{"x":26769.67959034035,"y":28711.749779677113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"fdfa0714-e7cc-4833-8623-2366fc36e275","savedPayload":{"position":{"x":26770.006560596325,"y":28711.63882050236},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Paper Trading Session","name":"Paper BBTB","id":"a70b66f2-4d79-4ab0-8a84-cb47fd872b79"}}},{"type":"Session Reference","name":"Live Trading BBTB Binance BTC/USDT","singleMarketData":{"type":"Single Market Data","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"84c5619b-c379-4bed-bd1c-3dccfc840fa7","savedPayload":{"position":{"x":27403.685124941287,"y":28311.811214135712},"targetPosition":{"x":27342.982549435495,"y":28745.594465055852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"9cd0c0da-e0df-4b83-a7f5-7e503f050020","savedPayload":{"position":{"x":27646.983850070956,"y":28430.393602867665},"targetPosition":{"x":27342.982549435495,"y":28745.594465055852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"8681f8d9-c6fa-4966-aa76-e627000962cb","savedPayload":{"position":{"x":27773.915926630965,"y":28669.291142164537},"targetPosition":{"x":27342.982549435495,"y":28745.594465055852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"05aa1029-fde5-4240-b5ef-31636ed817ee","savedPayload":{"position":{"x":27735.959746783006,"y":28937.181489181425},"targetPosition":{"x":27342.982549435495,"y":28745.594465055852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"c966a877-9552-4b7c-9b12-f6cbf5e631d6","savedPayload":{"position":{"x":27342.982549435495,"y":28745.594465055852},"targetPosition":{"x":26956.711147228187,"y":28951.208113208817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"9576879e-2a52-4224-b082-6d8f0a25424f","savedPayload":{"position":{"x":26957.130045686332,"y":28951.141808070486},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Live Trading Session","name":"Live Trading BBTB","id":"ef82a64d-7c70-48d5-868a-09acf97e5289"}}},{"type":"Session Reference","name":"Fwd BBTB Binance BTC/USDT","singleMarketData":{"type":"Single Market Data","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"3713af17-7ed8-4d32-abbb-66be7ba3d95b","savedPayload":{"position":{"x":27689.20756476676,"y":28792.01762932115},"targetPosition":{"x":27483.76587740709,"y":29178.885493436097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"8206a3c4-7a92-4f52-aa29-d0b912511e94","savedPayload":{"position":{"x":27877.30263666776,"y":28986.652324934446},"targetPosition":{"x":27483.76587740709,"y":29178.885493436097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"35c51f59-d967-4fb9-bf3d-ebef155fe90a","savedPayload":{"position":{"x":27914.92862485214,"y":29254.298693059718},"targetPosition":{"x":27483.76587740709,"y":29178.885493436097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"82cb4b63-c7ed-4e1c-b558-5caf08e7840e","savedPayload":{"position":{"x":27787.524400010894,"y":29492.93889701325},"targetPosition":{"x":27483.76587740709,"y":29178.885493436097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"b07b8215-91b7-4cdf-b0c9-f6de319d98af","savedPayload":{"position":{"x":27483.76587740709,"y":29178.885493436097},"targetPosition":{"x":27050.43363927934,"y":29240.015942621932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"f28418b1-30c9-4f12-9162-b483ed79adf9","savedPayload":{"position":{"x":27051.047858882026,"y":29240.240033953312},"targetPosition":{"x":26184.51447943233,"y":29361.966590854634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Forward Testing Session","name":"Fwd BBTB","id":"7b91c25c-ac96-4c3c-9e79-17c262f17180"}}}],"id":"5b3343c9-3fab-46ec-92e3-9c074759a112","savedPayload":{"position":{"x":26184.524152752183,"y":29361.71743417283},"targetPosition":{"x":26063.272886633127,"y":29932.60782590063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"29ca14e5-dabe-470a-be64-ed7996bd1e55","savedPayload":{"position":{"x":26063.272886633127,"y":29932.60782590063},"targetPosition":{"x":25942.043094058594,"y":30503.50687445451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0726a9e4-23b6-4d27-a8de-e91a9665a8ba","savedPayload":{"position":{"x":25941.944960467765,"y":30503.547160259044},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"d"}}},"dataMining":{"type":"Data Mining","name":"New Data Mining","exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Masters BTC/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"b1a110d4-ac93-402d-8465-a35a835d0c22","savedPayload":{"position":{"x":26295.776593937757,"y":28781.36401676669},"targetPosition":{"x":26497.181368080222,"y":28993.314045627245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"fa3aae08-61b3-4a35-af20-c1242b9954c8","savedPayload":{"position":{"x":26497.181368080222,"y":28993.314045627245},"targetPosition":{"x":26698.745648170545,"y":29205.196033081145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"e61db3ab-b80d-4575-8da1-5598e0b1b525","savedPayload":{"position":{"x":26698.745648170545,"y":29205.196033081145},"targetPosition":{"x":26900.64484115142,"y":29417.1103410173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"160f8edd-29cf-40c2-bb21-5f569d97f9d1","savedPayload":{"position":{"x":26900.64484115142,"y":29417.1103410173},"targetPosition":{"x":27303.642788619873,"y":29839.997018774087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"22df3948-2a73-4ca6-a927-4b722dbb27dc","savedPayload":{"position":{"x":26644.79038090263,"y":28548.29577551908},"targetPosition":{"x":26816.76829379165,"y":28784.96123948801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"5324b18d-e2b0-495e-94a0-cfc3f3473766","savedPayload":{"position":{"x":26816.76829379165,"y":28784.96123948801},"targetPosition":{"x":26988.793025211893,"y":29021.546670103362},"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","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"d7e0c235-4024-4888-86ba-32cf5c73b852","savedPayload":{"position":{"x":26896.951155637144,"y":28149.592406858952},"targetPosition":{"x":26942.81353308944,"y":28585.46723817298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"02adb2d3-1740-4f42-975e-e0365e308b97","savedPayload":{"position":{"x":26942.81353308944,"y":28585.46723817298},"targetPosition":{"x":26988.793025211893,"y":29021.546670103362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"ccf1813f-31d2-4359-88ce-8c8e6132f222","savedPayload":{"position":{"x":26988.793025211893,"y":29021.546670103362},"targetPosition":{"x":27093.923115202073,"y":29294.80421308715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b55a2f7e-354e-47ce-8986-a4a0079efe2b","savedPayload":{"position":{"x":27093.923115202073,"y":29294.80421308715},"targetPosition":{"x":27303.642788619873,"y":29839.997018774087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"89bf947b-a245-4aad-a2fa-472ad6f8fd2e","savedPayload":{"position":{"x":27189.754505576493,"y":28394.19710240186},"targetPosition":{"x":27257.861597975232,"y":28678.7864774289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"df74508f-a106-4190-83ae-8c43455cd889","savedPayload":{"position":{"x":27257.861597975232,"y":28678.7864774289},"targetPosition":{"x":27326.013193344465,"y":28963.273945892004},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"441d958c-4ebf-4cc5-b49e-cdaf3802efc3","savedPayload":{"position":{"x":27574.559572441973,"y":28122.40215659922},"targetPosition":{"x":27450.305086678956,"y":28542.72094770502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"daf27799-58cb-480a-832b-4e3404882961","savedPayload":{"position":{"x":27450.305086678956,"y":28542.72094770502},"targetPosition":{"x":27326.013193344465,"y":28963.273945892004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"b1b31e7e-12f8-45fd-9508-cb82030d7507","savedPayload":{"position":{"x":27326.013193344465,"y":28963.273945892004},"targetPosition":{"x":27318.591273474813,"y":29256.0297430117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"52b4b8db-0336-423c-9343-5353225b4bfb","savedPayload":{"position":{"x":27318.591273474813,"y":29256.0297430117},"targetPosition":{"x":27303.642788619873,"y":29839.997018774087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f7457cf6-bcdc-48e1-b6e2-b45de382bc37","savedPayload":{"position":{"x":27751.8331614713,"y":28460.835841190503},"targetPosition":{"x":27706.012054908566,"y":28749.870177439392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"5a6b7843-090c-4b3b-9be4-ed8c8d1f6935","savedPayload":{"position":{"x":27706.012054908566,"y":28749.870177439392},"targetPosition":{"x":27660.23614278188,"y":29038.812455756783},"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":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"e78c5425-7d77-47c5-bb63-db88cad6e060","savedPayload":{"position":{"x":28211.83015890913,"y":28357.252260215242},"targetPosition":{"x":27936.11776415758,"y":28697.938136515048},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"4c5ed30f-d600-44e2-ac14-33ce0528178e","savedPayload":{"position":{"x":27936.11776415758,"y":28697.938136515048},"targetPosition":{"x":27660.23614278188,"y":29038.812455756783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"b4fb4df9-2d6e-4c0a-8eb5-d1bd78232d0d","savedPayload":{"position":{"x":27660.23614278188,"y":29038.812455756783},"targetPosition":{"x":27541.161002138204,"y":29306.33835211767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"aacffa8c-5a19-423f-b551-0f9a5c46a628","savedPayload":{"position":{"x":27541.161002138204,"y":29306.33835211767},"targetPosition":{"x":27303.642788619873,"y":29839.997018774087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"7af918d3-d9a4-4553-9b3d-12224b4ad938","savedPayload":{"position":{"x":28246.09248316529,"y":28737.939326780328},"targetPosition":{"x":28093.06415879192,"y":28987.2949110211},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"0d8ca3f1-31af-40e4-8f43-4dacc8950dff","savedPayload":{"position":{"x":28093.06415879192,"y":28987.2949110211},"targetPosition":{"x":27940.057991958874,"y":29236.559755396884},"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":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f11fe52f-ba3f-486d-93f2-a6b82fa67c2d","savedPayload":{"position":{"x":28710.63353519865,"y":28818.37666235774},"targetPosition":{"x":28325.531920669902,"y":29027.44452475342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"ba74160c-2b59-497a-b895-4ddade53f72e","savedPayload":{"position":{"x":28325.531920669902,"y":29027.44452475342},"targetPosition":{"x":27940.057991958874,"y":29236.559755396884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"3a93a6a1-0d2e-475b-874e-8784dc4b6c78","savedPayload":{"position":{"x":27940.057991958874,"y":29236.559755396884},"targetPosition":{"x":27727.493045084848,"y":29438.01514560189},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"9843b9dd-ff8e-4cef-b063-730b0317420d","savedPayload":{"position":{"x":27727.493045084848,"y":29438.01514560189},"targetPosition":{"x":27303.642788619873,"y":29839.997018774087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"da37aa9d-a68c-49eb-be66-5fcc1a13ab69","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"abae0d8d-c44c-4825-b6ad-aabad604ba2d","savedPayload":{"position":{"x":28396.037566708925,"y":29421.614584380517},"targetPosition":{"x":28122.746782236274,"y":29526.34159600593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"f33858b9-8561-4f70-ba70-d8d168786321","savedPayload":{"position":{"x":28122.746782236274,"y":29526.34159600593},"targetPosition":{"x":27849.20316575137,"y":29631.049785901763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"64e8f70e-829c-47cd-b933-f4e4dd0c90fc","savedPayload":{"position":{"x":27849.20316575137,"y":29631.049785901763},"targetPosition":{"x":27303.642788619873,"y":29839.997018774087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Resistances & Supports","bot":{"type":"Indicator Bot Instance","name":"Resistances & Supports","code":" {\n \"repo\": \"\"\n }","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"5e0f86e6-2a43-49c2-a347-7203f0867c2d","savedPayload":{"position":{"x":29032.650008520504,"y":29659.7209500006},"targetPosition":{"x":28606.58515022879,"y":29761.864642359356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"f9f341a9-ba04-4c03-8f3b-249e72681562","savedPayload":{"position":{"x":28606.58515022879,"y":29761.864642359356},"targetPosition":{"x":28180.254520845563,"y":29864.051049529597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"5d9b2729-43fb-4e7e-aa4f-b8477c424e51"}}},{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"9974d57e-33ac-4fcf-ad75-35a8c4dc549e","savedPayload":{"position":{"x":28740.96463022337,"y":30030.055359108075},"targetPosition":{"x":28460.59045635442,"y":29947.10439692041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"9c93e98f-e166-4c8d-a9d7-08ada9c68eeb","savedPayload":{"position":{"x":28460.59045635442,"y":29947.10439692041},"targetPosition":{"x":28180.254520845563,"y":29864.051049529597},"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":"be19d91b-9337-4f84-96b3-f4e54ea12df5"}}}],"id":"88a4c3b6-e148-47e8-91b2-bf72bb167dc5","savedPayload":{"position":{"x":28180.254520845563,"y":29864.051049529597},"targetPosition":{"x":27887.623437774728,"y":29856.170560424096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c9dc449-6a37-4f34-8984-13aafed439fc","savedPayload":{"position":{"x":27887.623437774728,"y":29856.170560424096},"targetPosition":{"x":27303.642788619873,"y":29839.997018774087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ea242bf3-f7e6-431a-ab41-e022cb3ac6df","savedPayload":{"position":{"x":27304.278949288993,"y":29839.129992092854},"targetPosition":{"x":27066.853530706274,"y":30372.59375201423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta BTC/USDT","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"08b275d2-c921-49d0-a88d-5669df5c17e0","savedPayload":{"position":{"x":28228.72521288214,"y":28715.602115489775},"targetPosition":{"x":28228.861792805477,"y":29007.980855807735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"a5449b25-a98e-4fa4-87eb-5f60b967770a","savedPayload":{"position":{"x":28228.861792805477,"y":29007.980855807735},"targetPosition":{"x":28228.923628084704,"y":29300.06686932012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"287d4ba4-1404-4256-bdbb-cf2c970e5269","savedPayload":{"position":{"x":29238.98710680755,"y":28716.3520201579},"targetPosition":{"x":28734.144403315004,"y":29007.919913068403},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"05fb2b7e-6704-4f05-b12b-b590101e5ca9","savedPayload":{"position":{"x":28734.144403315004,"y":29007.919913068403},"targetPosition":{"x":28228.923628084704,"y":29300.06686932012},"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":"f6dc278d-5a5c-4cba-b513-f0660a9f492d","savedPayload":{"position":{"x":28228.923628084704,"y":29300.06686932012},"targetPosition":{"x":27937.314391482443,"y":29805.71391222206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a15b5f86-52c2-4a22-9dd9-311d981601ba","savedPayload":{"position":{"x":27937.314391482443,"y":29805.71391222206},"targetPosition":{"x":27645.47604026171,"y":30311.719439667875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f8ea11d8-7b32-4ed0-968d-a20df0b49d7f","savedPayload":{"position":{"x":29055.03074232478,"y":29364.155049541812},"targetPosition":{"x":28883.181776512578,"y":29600.02418722641},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"e32509df-e962-4760-991e-6533a398c58e","savedPayload":{"position":{"x":28883.181776512578,"y":29600.02418722641},"targetPosition":{"x":28711.92860225306,"y":29835.824880290023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"0d4140a1-5e1f-4e2e-b540-582474e41889","savedPayload":{"position":{"x":29873.1235953913,"y":29957.84157849362},"targetPosition":{"x":29292.744441948304,"y":29896.70128328085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"96466f5a-6dd9-4db9-b30c-1c4622076d8a","savedPayload":{"position":{"x":29292.744441948304,"y":29896.70128328085},"targetPosition":{"x":28711.92860225306,"y":29835.824880290023},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"fffaf3df-a88c-4d45-bb52-d02b818502b5","savedPayload":{"position":{"x":28711.92860225306,"y":29835.824880290023},"targetPosition":{"x":28178.856365881307,"y":30073.59601068226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"53fd5de3-7d70-4eb7-8dd6-976d1e188d12","savedPayload":{"position":{"x":28178.856365881307,"y":30073.59601068226},"targetPosition":{"x":27645.47604026171,"y":30311.719439667875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"78a80ff6-f4f2-4680-9a7b-65225144dd94","savedPayload":{"position":{"x":29343.123990290904,"y":30372.959616137443},"targetPosition":{"x":29064.777283488427,"y":30463.487094555752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"301a8d2c-f659-4d4b-9906-40177bdc1256","savedPayload":{"position":{"x":29064.777283488427,"y":30463.487094555752},"targetPosition":{"x":28787.38048108401,"y":30553.17433174999},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"a9291a08-1ba1-436b-b491-e759cc8fb7d1","savedPayload":{"position":{"x":29655.246962702226,"y":31333.244849074097},"targetPosition":{"x":29221.491214867103,"y":30943.007309836925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"19fff031-07c3-4836-9bca-1570eb69a931","savedPayload":{"position":{"x":29221.491214867103,"y":30943.007309836925},"targetPosition":{"x":28787.38048108401,"y":30553.17433174999},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"a81bcaf4-6c99-4b6a-8291-5fa657ae2c17","savedPayload":{"position":{"x":28787.38048108401,"y":30553.17433174999},"targetPosition":{"x":28216.87537107575,"y":30432.41340723835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e2997a2-13ae-464c-b980-9ec46584db3b","savedPayload":{"position":{"x":28216.87537107575,"y":30432.41340723835},"targetPosition":{"x":27645.47604026171,"y":30311.719439667875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f6802028-335d-4e31-90a7-9d608199aafb","savedPayload":{"position":{"x":28980.915039741532,"y":31358.998224580246},"targetPosition":{"x":28703.237872801612,"y":31269.241992275245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"8540fa7a-f4b2-4e97-923c-e8acd00bbb9f","savedPayload":{"position":{"x":28703.237872801612,"y":31269.241992275245},"targetPosition":{"x":28425.94036742731,"y":31179.220069122053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"51d58c12-ad1f-450e-94fd-ea0f8ad08769","savedPayload":{"position":{"x":28668.892311218562,"y":32320.886124995297},"targetPosition":{"x":28548.162305811125,"y":31749.536588300653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"c655562c-3839-42e0-9ea6-982629405d33","savedPayload":{"position":{"x":28548.162305811125,"y":31749.536588300653},"targetPosition":{"x":28425.94036742731,"y":31179.220069122053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"f84cf5d6-034c-42db-b197-e95c0228efc9","savedPayload":{"position":{"x":28425.94036742731,"y":31179.220069122053},"targetPosition":{"x":28035.898569423418,"y":30746.03018721756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"385443d2-f17f-459c-b603-58f42e5c366f","savedPayload":{"position":{"x":28035.898569423418,"y":30746.03018721756},"targetPosition":{"x":27645.47604026171,"y":30311.719439667875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"2a5cc26f-cb88-4743-b412-c33acb6aa0fb","savedPayload":{"position":{"x":27647.58213866322,"y":30311.62037098606},"targetPosition":{"x":27066.853530706274,"y":30372.59375201423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}}],"id":"b1c93d10-5dd9-4b3f-9662-b9bf7850b81a","savedPayload":{"position":{"x":27066.853530706274,"y":30372.59375201423},"targetPosition":{"x":26594.641092308266,"y":30715.716199742572},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"7449a608-32ca-4285-94d1-c96791e2817f","savedPayload":{"position":{"x":26594.641092308266,"y":30715.716199742572},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"testingEnvironment":{"type":"Testing Environment","name":"New Testing Environment","exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Paper & Backtesting Sessions WHB","tasks":[{"type":"Task","name":"Paper Trading WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Paper Trading Session","name":"Paper WHB","code":"{\n\"folderName\": \"Paper-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"34d3f232-9fb1-47e1-97be-9233ef34db93","savedPayload":{"position":{"x":29053.725088200696,"y":31178.296562237272},"targetPosition":{"x":29338.31751661565,"y":31241.600647628944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"969cd1c0-1d6d-4667-a810-d18369410d94","savedPayload":{"position":{"x":29210.35538322298,"y":30979.009544966942},"targetPosition":{"x":29338.31751661565,"y":31241.600647628944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"4af996da-6714-41ac-ad51-5706f41b40f0","savedPayload":{"position":{"x":29463.747814775626,"y":30977.168763636604},"targetPosition":{"x":29338.31751661565,"y":31241.600647628944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"963db77e-0405-4fc4-8780-1b7fa93f41a6","savedPayload":{"position":{"x":29623.382855600412,"y":31174.253015538645},"targetPosition":{"x":29338.31751661565,"y":31241.600647628944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"cd125f30-93e7-4786-b1e1-33274bd2877c","savedPayload":{"position":{"x":29568.897659271563,"y":31421.634654659032},"targetPosition":{"x":29338.31751661565,"y":31241.600647628944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"f8fcac2e-2a52-4189-a95d-77e83b5a6f98","savedPayload":{"position":{"x":29341.37131237591,"y":31533.232063703043},"targetPosition":{"x":29338.31751661565,"y":31241.600647628944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b5ba0c98-c052-4195-92c2-119652d91c32","savedPayload":{"position":{"x":29338.31751661565,"y":31241.600647628944},"targetPosition":{"x":29111.892718961364,"y":31425.413997491076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2198ec50-3d31-43b7-a57d-e386bef38a93","savedPayload":{"position":{"x":29111.892718961364,"y":31425.413997491076},"targetPosition":{"x":28884.86637869949,"y":31609.204020240253},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"06c8bcea-4122-4a35-8db3-a1ddc7657e4b","savedPayload":{"position":{"x":29157.7130474397,"y":31713.580683385073},"targetPosition":{"x":28884.86637869949,"y":31609.204020240253},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"731abb89-b672-41b1-b403-2932226d3df7","savedPayload":{"position":{"x":28884.86637869949,"y":31609.204020240253},"targetPosition":{"x":28597.236018489682,"y":31654.818135175123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"4f784203-664a-4791-9e3a-7565f0a11e79","savedPayload":{"position":{"x":28597.236018489682,"y":31654.818135175123},"targetPosition":{"x":28223.59351783207,"y":31714.150551638733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"e04e8948-849d-4161-af18-4644990d0b49","savedPayload":{"position":{"x":28224.00121827715,"y":31714.071305608257},"targetPosition":{"x":27647.265651821617,"y":31805.707696108428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Backtesting WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Backtesting Session","name":"Back WHB","code":"{\n\"folderName\": \"Back-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.01\n}","id":"48e2c5e0-8f9e-40f0-8ab6-2ecc57aa3039","savedPayload":{"position":{"x":29098.521240698683,"y":31935.837896810688},"targetPosition":{"x":29313.788737704406,"y":32133.090191232022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{}","id":"e8703a6e-e6c0-485f-a27d-a9e60a57a0a6","savedPayload":{"position":{"x":29333.60045158225,"y":31841.528891470996},"targetPosition":{"x":29313.788737704406,"y":32133.090191232022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"initialDatetime\": \"2020-01-01\",\n\"finalDatetime\": \"2020-12-31\"\n}","id":"08815e4e-c066-4914-85b7-a4f7ce4748a5","savedPayload":{"position":{"x":29554.12040583563,"y":31966.726866778834},"targetPosition":{"x":29313.788737704406,"y":32133.090191232022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"805c356b-4a05-424e-ba29-260e35c11943","savedPayload":{"position":{"x":29593.792554270374,"y":32217.03197190166},"targetPosition":{"x":29313.788737704406,"y":32133.090191232022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"bcccd1fd-188c-43e4-abfc-4bc89d6adecc","savedPayload":{"position":{"x":29422.750242737053,"y":32404.255370212486},"targetPosition":{"x":29313.788737704406,"y":32133.090191232022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"ae594b88-e40b-408b-8082-3ba92ffc2c8c","savedPayload":{"position":{"x":29170.090126600204,"y":32387.269880544263},"targetPosition":{"x":29313.788737704406,"y":32133.090191232022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c220646b-827b-43c8-ab7e-5ecd53b4070a","savedPayload":{"position":{"x":29313.788737704406,"y":32133.090191232022},"targetPosition":{"x":29025.31293273882,"y":32178.657096794905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f32f1cdc-425f-4193-a43b-be9312c74234","savedPayload":{"position":{"x":29025.31293273882,"y":32178.657096794905},"targetPosition":{"x":28737.221554705564,"y":32224.198135620758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"02fe6309-40c0-4e31-9aed-fbf8f434bfa9","savedPayload":{"position":{"x":28920.753410397992,"y":32451.342700608282},"targetPosition":{"x":28737.221554705564,"y":32224.198135620758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"dd22d90b-5a91-4723-9f65-17eb94fb4d9d","savedPayload":{"position":{"x":28737.221554705564,"y":32224.198135620758},"targetPosition":{"x":28464.92149864101,"y":32119.615983291988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"0942010b-12f0-4be9-979d-c3e1bbc4eb74","savedPayload":{"position":{"x":28464.92149864101,"y":32119.615983291988},"targetPosition":{"x":28192.294080840293,"y":32015.004524724474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a8ff6583-b710-44b1-8768-d8a70bdf22c9","savedPayload":{"position":{"x":28192.294080840293,"y":32015.004524724474},"targetPosition":{"x":27647.265651821617,"y":31805.707696108428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"caed4703-e134-4a48-9062-fe5277b7d95f","savedPayload":{"position":{"x":27647.68008682938,"y":31806.089399124143},"targetPosition":{"x":27066.93653612294,"y":31745.128408313474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task Manager","name":"Paper & Backtesting Sessions BBBT","tasks":[{"type":"Task","name":"Paper Trading BBTB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Paper Trading Session","name":"Paper BBTB","code":"{\n\"folderName\": \"Paper-BBTB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"413c658b-ecb1-412a-ad17-dd21a6cf9edf","savedPayload":{"position":{"x":28547.296798710377,"y":33177.96229954759},"targetPosition":{"x":28634.427840137847,"y":33455.84621878164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"937d18df-32f8-4619-93a0-df66d785f502","savedPayload":{"position":{"x":28798.054551794612,"y":33214.03895615387},"targetPosition":{"x":28634.427840137847,"y":33455.84621878164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"8d7017e0-2478-4f6f-9a06-97e02f485e0d","savedPayload":{"position":{"x":28926.486196501322,"y":33432.7626298793},"targetPosition":{"x":28634.427840137847,"y":33455.84621878164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"fbd66c8d-fb89-41ef-a7d8-ddc1892ea0b7","savedPayload":{"position":{"x":28835.59826260729,"y":33669.30171995318},"targetPosition":{"x":28634.427840137847,"y":33455.84621878164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"71601678-f7fe-4093-81a7-2e7c4f15b36c","savedPayload":{"position":{"x":28594.239704828236,"y":33745.92582152021},"targetPosition":{"x":28634.427840137847,"y":33455.84621878164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"77080ae1-9bce-474f-b5b6-31c227d35298","savedPayload":{"position":{"x":28383.66380482646,"y":33604.43183203189},"targetPosition":{"x":28634.427840137847,"y":33455.84621878164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6681be32-37aa-4703-8cbe-3766844aba04","savedPayload":{"position":{"x":28634.427840137847,"y":33455.84621878164},"targetPosition":{"x":28361.98242638787,"y":33351.540739306445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a70b66f2-4d79-4ab0-8a84-cb47fd872b79","savedPayload":{"position":{"x":28361.98242638787,"y":33351.540739306445},"targetPosition":{"x":28089.249807050834,"y":33246.86525910501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"BB Top Bounce","id":"3313017d-fdce-481b-9679-fe8e4f67cd45"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"53fd90cb-3efc-47b2-90f5-0f8010fc6ef9","savedPayload":{"position":{"x":28135.05824489568,"y":33535.273720009944},"targetPosition":{"x":28089.249807050834,"y":33246.86525910501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"b3dec672-be14-4dca-8be4-5b495373b662","savedPayload":{"position":{"x":28089.249807050834,"y":33246.86525910501},"targetPosition":{"x":27905.73457118441,"y":33020.46078156538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"4315bf06-ef80-490e-af6f-d00b72bfa20d","savedPayload":{"position":{"x":27905.73457118441,"y":33020.46078156538},"targetPosition":{"x":27671.388877466165,"y":32731.347316341966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"b55596f0-998c-4efa-ae49-4645b999dc38","savedPayload":{"position":{"x":27671.879214452627,"y":32731.820272532263},"targetPosition":{"x":27304.185851097416,"y":32278.232903734217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Backtesting BBTB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Backtesting Session","name":"Back BBTB","code":"{\n\"folderName\": \"Back-BBTB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.01\n}","id":"11c310f7-a52f-467f-afbc-57c04639a979","savedPayload":{"position":{"x":27916.481652102262,"y":33599.759613970455},"targetPosition":{"x":27853.396917158356,"y":33884.860845262934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{}","id":"208693a0-838b-4992-9344-4b798acce6c2","savedPayload":{"position":{"x":28115.803205617383,"y":33756.36682725557},"targetPosition":{"x":27853.396917158356,"y":33884.860845262934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"initialDatetime\": \"2020-01-01\",\n\"finalDatetime\": \"2020-12-31\"\n}","id":"48fa15e9-aff6-4521-b5e3-a45e1a01d9b1","savedPayload":{"position":{"x":28117.64356204215,"y":34009.74185363862},"targetPosition":{"x":27853.396917158356,"y":33884.860845262934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"d3a5cba8-3272-43c9-89d7-a40de0f49045","savedPayload":{"position":{"x":27920.53622822488,"y":34169.34774106237},"targetPosition":{"x":27853.396917158356,"y":33884.860845262934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"b764240b-aec9-4ddc-bac7-99bb34bc2163","savedPayload":{"position":{"x":27673.06943323524,"y":34114.826515846355},"targetPosition":{"x":27853.396917158356,"y":33884.860845262934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"e233bb2d-080c-4f2e-9188-edba85ae74d9","savedPayload":{"position":{"x":27561.340560759694,"y":33887.34654210748},"targetPosition":{"x":27853.396917158356,"y":33884.860845262934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e3473182-57b9-41f8-8d5a-1bb13c8b5441","savedPayload":{"position":{"x":27853.396917158356,"y":33884.860845262934},"targetPosition":{"x":27669.659067037686,"y":33657.986030898595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5d72321e-97e7-404f-8272-809dbbf4db35","savedPayload":{"position":{"x":27669.659067037686,"y":33657.986030898595},"targetPosition":{"x":27486.17259995275,"y":33431.36437316124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"BB Top Bounce","id":"3313017d-fdce-481b-9679-fe8e4f67cd45"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"eb149e85-7202-4f3f-832f-0b25c4d97b0b","savedPayload":{"position":{"x":27381.235995861578,"y":33703.88093424843},"targetPosition":{"x":27486.17259995275,"y":33431.36437316124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"919e2ba3-4089-4729-add5-0be715c27ceb","savedPayload":{"position":{"x":27486.17259995275,"y":33431.36437316124},"targetPosition":{"x":27440.76951082649,"y":33143.27963697891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"a1d698ca-cc6f-4ba2-8a19-c72a1fda3547","savedPayload":{"position":{"x":27440.76951082649,"y":33143.27963697891},"targetPosition":{"x":27395.257815099696,"y":32854.88507673065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"648b9d39-4e74-4c95-8ad6-8fd048e86a51","savedPayload":{"position":{"x":27395.257815099696,"y":32854.88507673065},"targetPosition":{"x":27304.185851097416,"y":32278.232903734217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"e5b805c8-a056-4356-894f-2dbc5af0e663","savedPayload":{"position":{"x":27304.393574237776,"y":32278.584805397666},"targetPosition":{"x":27066.93653612294,"y":31745.128408313474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"f69b2c23-ccc5-47fb-9945-9b7badcea636","savedPayload":{"position":{"x":27066.93653612294,"y":31745.128408313474},"targetPosition":{"x":26594.684467703388,"y":31402.038080606744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"2ae685a1-25c6-4bd5-b559-d83e373e8d45","savedPayload":{"position":{"x":26594.684467703388,"y":31402.038080606744},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"productionEnvironment":{"type":"Production Environment","name":"New Production Environment","exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Fwd & Live Sessions WHB","tasks":[{"type":"Task","name":"Fwd Testing WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Forward Testing Session","name":"Fwd WHB","code":"{\n\"folderName\": \"Fwd-WHB\",\n\"balancePercentage\": 10\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"079cdfaf-2d41-4fa3-a68d-9e2620de0cdd","savedPayload":{"position":{"x":26911.904805688697,"y":33877.83855353868},"targetPosition":{"x":26939.935482060053,"y":34168.99628679548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"5f5ec9f1-c4e2-4ca7-94c4-bad619511e5c","savedPayload":{"position":{"x":27149.637533721845,"y":33965.224707654976},"targetPosition":{"x":26939.935482060053,"y":34168.99628679548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"d5fda5e7-7571-41e7-b19a-a721d73fd8f5","savedPayload":{"position":{"x":27229.75293966923,"y":34205.63875066876},"targetPosition":{"x":26939.935482060053,"y":34168.99628679548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"f6ed8468-7fd1-4aac-848b-647973e41b04","savedPayload":{"position":{"x":27091.64777386982,"y":34418.36410683359},"targetPosition":{"x":26939.935482060053,"y":34168.99628679548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"da2d51df-7c40-4bf0-80ec-63a38992fcfe","savedPayload":{"position":{"x":26839.557822966337,"y":34443.054925326855},"targetPosition":{"x":26939.935482060053,"y":34168.99628679548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"4e1b48a9-df71-402e-9159-66c49cdc08b3","savedPayload":{"position":{"x":26663.129332876793,"y":34261.13999235772},"targetPosition":{"x":26939.935482060053,"y":34168.99628679548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b9e7a071-26dd-4796-8704-2314f6c2c603","savedPayload":{"position":{"x":26939.935482060053,"y":34168.99628679548},"targetPosition":{"x":26694.69931299244,"y":34009.65498125702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0e7edb98-38ff-4516-89a1-188030989ddc","savedPayload":{"position":{"x":26694.69931299244,"y":34009.65498125702},"targetPosition":{"x":26450.063508544084,"y":33851.28856320041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"WHB","id":"8d9b39d4-b764-486d-a2f6-e84391bbd818","savedPayload":{"position":{"x":26420.314627516196,"y":34434.593343237946},"targetPosition":{"x":26434.78623833593,"y":34142.32253952669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"WHB","id":"88eab4e5-3be4-4982-93fa-e95bcb1ab559"}}},"id":"f122bd16-0c85-43d1-932a-57a710db8013","savedPayload":{"position":{"x":26434.78623833593,"y":34142.32253952669},"targetPosition":{"x":26450.063508544084,"y":33851.28856320041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"a034c52a-8924-4e60-9653-f6da1ea6f8b5","savedPayload":{"position":{"x":26450.063508544084,"y":33851.28856320041},"targetPosition":{"x":26317.467045407157,"y":33591.29206771532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"74f70f20-305b-4e90-aad6-1bcd2ff8ee1c","savedPayload":{"position":{"x":26317.467045407157,"y":33591.29206771532},"targetPosition":{"x":26148.41132254964,"y":33259.9228469287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"749d6eaf-1548-47ca-901d-1cfc1a21b0a5","savedPayload":{"position":{"x":26148.582891049457,"y":33260.12541562256},"targetPosition":{"x":25883.19291210899,"y":32739.964712038032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Live Trading WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Live Trading Session","name":"Live Trading WHB","code":"{\n\"folderName\": \"Live-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"166cdb09-90e0-49a1-9c38-b57364287620","savedPayload":{"position":{"x":26208.050966274,"y":34160.35107907078},"targetPosition":{"x":26087.003052429103,"y":34426.05688773178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"5bf43efd-3dd2-44f2-b25e-f6c7a5fda17e","savedPayload":{"position":{"x":26370.44612361169,"y":34354.97447991964},"targetPosition":{"x":26087.003052429103,"y":34426.05688773178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"88d7104b-7925-408a-b490-bbbaaafd7a5f","savedPayload":{"position":{"x":26319.520337146398,"y":34603.19178088377},"targetPosition":{"x":26087.003052429103,"y":34426.05688773178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"1c158006-c3c1-4157-8ad6-f08ee2b769d6","savedPayload":{"position":{"x":26093.53679007253,"y":34718.334497108015},"targetPosition":{"x":26087.003052429103,"y":34426.05688773178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"01064db9-f153-4d30-a26c-d9d339e7a856","savedPayload":{"position":{"x":25862.827742163376,"y":34613.525587935794},"targetPosition":{"x":26087.003052429103,"y":34426.05688773178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"06f7cc4e-6112-4ac8-9f20-610b357a58d2","savedPayload":{"position":{"x":25800.863411804872,"y":34367.99372771353},"targetPosition":{"x":26087.003052429103,"y":34426.05688773178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b86ce81f-5084-48d1-8a45-8f45fbe97891","savedPayload":{"position":{"x":26087.003052429103,"y":34426.05688773178},"targetPosition":{"x":25954.493008998666,"y":34165.81355967171},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5335fd67-ebdc-4cfd-936d-b76af957713e","savedPayload":{"position":{"x":25954.493008998666,"y":34165.81355967171},"targetPosition":{"x":25822.10614182093,"y":33905.93151002576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"WHB","id":"a0061ba6-2359-4c5c-822d-1e17aaf7c2fd","savedPayload":{"position":{"x":25503.68561078083,"y":34395.51789659483},"targetPosition":{"x":25662.836299118742,"y":34150.682880165485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"WHB","id":"88eab4e5-3be4-4982-93fa-e95bcb1ab559"}}},"id":"954b1896-121c-41e2-9608-5b46a70082fb","savedPayload":{"position":{"x":25662.836299118742,"y":34150.682880165485},"targetPosition":{"x":25822.10614182093,"y":33905.93151002576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"8cb4d9af-0f53-4b33-9174-330da87b166c","savedPayload":{"position":{"x":25822.10614182093,"y":33905.93151002576},"targetPosition":{"x":25837.378672600596,"y":33614.63794897366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"8b30643a-eb54-4d6f-958d-8393f9a1e5f4","savedPayload":{"position":{"x":25837.378672600596,"y":33614.63794897366},"targetPosition":{"x":25852.58903231585,"y":33323.01040905266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"52ec5181-d057-42e3-a6e8-407d20d4e641","savedPayload":{"position":{"x":25852.58903231585,"y":33323.01040905266},"targetPosition":{"x":25883.19291210899,"y":32739.964712038032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1bbb36fe-edbf-49d8-9827-85a1345c0289","savedPayload":{"position":{"x":25882.950110399604,"y":32740.499766863533},"targetPosition":{"x":25761.61231198653,"y":32169.326697958408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"l"}}},{"type":"Task Manager","name":"Fwd & Live Sessions BBTB","tasks":[{"type":"Task","name":"Fwd Testing BBTB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Forward Testing Session","name":"Fwd BBTB","code":"{\n\"folderName\": \"Fwd-BBTB\",\n\"balancePercentage\": 10\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"3a75a6ee-f188-4bd1-81ff-8018094d1eb0","savedPayload":{"position":{"x":24857.094321966553,"y":34017.30375601778},"targetPosition":{"x":24619.145851955524,"y":34187.288899821026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"b0d3da2f-f67f-473e-9f61-1296a9bfd952","savedPayload":{"position":{"x":24900.379262240484,"y":34266.88105509463},"targetPosition":{"x":24619.145851955524,"y":34187.288899821026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"6b4f8416-a9ec-47f5-ac7b-3c5005733328","savedPayload":{"position":{"x":24732.106855452465,"y":34456.57555177858},"targetPosition":{"x":24619.145851955524,"y":34187.288899821026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"ab1e8a12-e834-4062-b411-dbf174dcee6d","savedPayload":{"position":{"x":24479.061255754154,"y":34443.320476277215},"targetPosition":{"x":24619.145851955524,"y":34187.288899821026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"97669707-03fd-488c-bb1d-1ee4cafcf93a","savedPayload":{"position":{"x":24331.540268704146,"y":34237.15844285456},"targetPosition":{"x":24619.145851955524,"y":34187.288899821026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"e92c18cc-6c10-4231-bd61-ec3561875ff6","savedPayload":{"position":{"x":24400.852816728264,"y":33993.59591676479},"targetPosition":{"x":24619.145851955524,"y":34187.288899821026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"231917f8-cc46-4f5b-834c-0b0ff89dd932","savedPayload":{"position":{"x":24619.145851955524,"y":34187.288899821026},"targetPosition":{"x":24634.678502791634,"y":33895.04800320409},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7b91c25c-ac96-4c3c-9e79-17c262f17180","savedPayload":{"position":{"x":24634.678502791634,"y":33895.04800320409},"targetPosition":{"x":24649.52986998621,"y":33604.070042960644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading System","name":"BB Top Bounce","id":"3313017d-fdce-481b-9679-fe8e4f67cd45"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"BBTB","id":"98b73dbc-52e7-4292-9051-d0cb41db5f72","savedPayload":{"position":{"x":24129.27847262082,"y":33869.54908085728},"targetPosition":{"x":24389.757289928526,"y":33736.110358887185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"BBTB","id":"bfea6ed0-673c-4245-9b5e-7837785a63c9"}}},"id":"ea2bb934-5c1f-4006-87af-865cf23f968c","savedPayload":{"position":{"x":24389.757289928526,"y":33736.110358887185},"targetPosition":{"x":24649.52986998621,"y":33604.070042960644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"c639e264-5ac1-41d3-8b56-c4c4cd46af16","savedPayload":{"position":{"x":24649.52986998621,"y":33604.070042960644},"targetPosition":{"x":24808.52711960168,"y":33359.15206815564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"e6d0e073-c898-41ec-9f84-611faf9732fa","savedPayload":{"position":{"x":24808.52711960168,"y":33359.15206815564},"targetPosition":{"x":25009.92952810802,"y":33048.84834292683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"29dd451d-55ac-4d0c-9b16-7e0da9bcd453","savedPayload":{"position":{"x":25010.208411201253,"y":33049.58289830841},"targetPosition":{"x":25327.94689250348,"y":32559.706659848987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Live Trading BBTB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Live Trading Session","name":"Live Trading BBTB","code":"{\n\"folderName\": \"Live-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"d5a1b4b6-2bfc-4772-9c60-0c55f2abb0b1","savedPayload":{"position":{"x":24260.538987280175,"y":33550.71216075862},"targetPosition":{"x":23969.86888522787,"y":33578.648957530306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"7354aa3e-f4a4-47b2-a709-50cc86d27d9d","savedPayload":{"position":{"x":24173.18724052507,"y":33788.4722661596},"targetPosition":{"x":23969.86888522787,"y":33578.648957530306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"de6e1749-8ecd-4cae-8a14-c2e51040ee7c","savedPayload":{"position":{"x":23932.791102038387,"y":33868.58195880339},"targetPosition":{"x":23969.86888522787,"y":33578.648957530306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"a9e15ef3-5525-4394-b2df-27ca00c3d946","savedPayload":{"position":{"x":23720.08635822111,"y":33730.444354486164},"targetPosition":{"x":23969.86888522787,"y":33578.648957530306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"d4e3d01f-dd4f-4e1d-a19f-309b3e06b627","savedPayload":{"position":{"x":23695.402964957855,"y":33478.2594087949},"targetPosition":{"x":23969.86888522787,"y":33578.648957530306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"9f20c206-6968-406a-b3ea-fe7279839093","savedPayload":{"position":{"x":23877.23148842474,"y":33301.720315558065},"targetPosition":{"x":23969.86888522787,"y":33578.648957530306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c1085d75-2c80-4b85-937c-fd9d0bda0569","savedPayload":{"position":{"x":23969.86888522787,"y":33578.648957530306},"targetPosition":{"x":24128.83067051651,"y":33333.74258625553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ef82a64d-7c70-48d5-868a-09acf97e5289","savedPayload":{"position":{"x":24128.83067051651,"y":33333.74258625553},"targetPosition":{"x":24287.611744709568,"y":33089.16432250978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"BB Top Bounce","id":"3313017d-fdce-481b-9679-fe8e4f67cd45"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"BBTB","id":"93b6328f-bf96-4ee9-95de-ef6dcc2f0d16","savedPayload":{"position":{"x":23704.39354899768,"y":33058.19754916051},"targetPosition":{"x":23996.014700634343,"y":33073.6088902628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"BBTB","id":"bfea6ed0-673c-4245-9b5e-7837785a63c9"}}},"id":"e5be2d9b-1d10-4752-8dda-3bd86a1d2e87","savedPayload":{"position":{"x":23996.014700634343,"y":33073.6088902628},"targetPosition":{"x":24287.611744709568,"y":33089.16432250978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"51e40ee6-299f-4916-b55b-2d5bb47f9c9d","savedPayload":{"position":{"x":24287.611744709568,"y":33089.16432250978},"targetPosition":{"x":24547.509731220285,"y":32956.940681014414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"d5320e1e-a4eb-4900-a6fc-8de4467e4363","savedPayload":{"position":{"x":24547.509731220285,"y":32956.940681014414},"targetPosition":{"x":24807.68666804564,"y":32824.52558922391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e3796688-b650-45cd-a0c0-24fe3a2e0d74","savedPayload":{"position":{"x":24807.68666804564,"y":32824.52558922391},"targetPosition":{"x":25327.94689250348,"y":32559.706659848987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0357b28b-fc1c-47aa-9b37-1106936ea9b2","savedPayload":{"position":{"x":25327.665600422843,"y":32560.01470501415},"targetPosition":{"x":25761.61231198653,"y":32169.326697958408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"l"}}}],"id":"fa859e89-960f-4fe1-8e68-1e41b0ea80ec","savedPayload":{"position":{"x":25761.61231198653,"y":32169.326697958408},"targetPosition":{"x":25941.970816779165,"y":31614.148425508283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}}],"id":"32656457-f603-416a-b805-546642094dc4","savedPayload":{"position":{"x":25941.970816779165,"y":31614.148425508283},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"u"}}},"id":"ce601334-52c5-4ffb-ab61-49ca1943a15a","savedPayload":{"position":{"x":26122.378344035824,"y":31058.919069244217},"targetPosition":{"x":24954.356993272086,"y":31057.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"r"}}}],"id":"efbbc81b-93c8-4ce0-873e-675f39d333e8","savedPayload":{"position":{"x":24954.356993272086,"y":31057.918778615294},"targetPosition":{"x":24954.356993272086,"y":31057.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"n"}}},{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","cryptoExchanges":[{"type":"Crypto Exchanges","name":"Tested","exchanges":[{"type":"Crypto Exchange","name":"Binance","code":"{\n \"codeName\": \"binance\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"EUR\"} \n}","assets":[{"type":"Asset","name":"Bitcoin","code":"{ \n\"codeName\": \"BTC\"\n}","id":"b2814a75-fd57-45c4-a3cb-af276793e573","savedPayload":{"position":{"x":14195.09373519908,"y":30498.57953967648},"targetPosition":{"x":14305.025652484152,"y":30812.79046466984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","code":"{ \n\"codeName\": \"USDT\"\n}","id":"04c5f172-6976-4557-b95f-38004b5201a6","savedPayload":{"position":{"x":14342.003487956641,"y":30482.411278035917},"targetPosition":{"x":14305.025652484152,"y":30812.79046466984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Ether","code":"{ \n\"codeName\": \"ETH\"\n}","id":"4175d47c-e12c-4902-b026-f4999a6d07a4","savedPayload":{"position":{"x":14481.605152989256,"y":30531.154856472},"targetPosition":{"x":14305.025652484152,"y":30812.79046466984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Monero","code":"{ \n\"codeName\": \"XMR\"\n}","id":"e3b61070-77b9-4dcf-9862-7f05ffa237f3","savedPayload":{"position":{"x":14586.128143352431,"y":30635.66020347477},"targetPosition":{"x":14305.025652484152,"y":30812.79046466984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Stellar","code":"{ \n\"codeName\": \"XLM\"\n}","id":"6dee1e7e-80f3-4597-a28a-881af206ec14","savedPayload":{"position":{"x":14635.380023465843,"y":30775.418809131024},"targetPosition":{"x":14305.025652484152,"y":30812.79046466984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Ethereum Classic","code":"{ \n\"codeName\": \"ETC\"\n}","id":"59378d33-4833-495a-89bb-f739710be7d9","savedPayload":{"position":{"x":14618.714156215316,"y":30922.740363095792},"targetPosition":{"x":14305.025652484152,"y":30812.79046466984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"f4451bbc-50ea-4558-9b3c-abd3e757a76e","savedPayload":{"position":{"x":14305.17360826227,"y":30812.68986934228},"targetPosition":{"x":14079.894884165275,"y":31038.166461562458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"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}","markets":[{"type":"Market","name":"BTC/USDT","code":"{ \n\"codeName\": \"BTC/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","id":"07b514a4-3ea2-4ab7-aeb0-07b48acb6f8d","savedPayload":{"position":{"x":15236.371832479537,"y":30780.053229243735},"targetPosition":{"x":15049.153562663865,"y":31038.131226693393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b2814a75-fd57-45c4-a3cb-af276793e573"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"61e7d2b5-1672-4e11-8380-345a4fe4a991","savedPayload":{"position":{"x":15352.419771068837,"y":30939.69858316036},"targetPosition":{"x":15049.153562663865,"y":31038.131226693393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"04c5f172-6976-4557-b95f-38004b5201a6"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"a174a91f-0818-4fdc-88cd-20dbdf45c548","savedPayload":{"position":{"x":15352.36057193139,"y":31136.524172911017},"targetPosition":{"x":15049.153562663865,"y":31038.131226693393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"11beab3d-d894-4d20-9940-f864ba957f91","savedPayload":{"position":{"x":15236.806192935961,"y":31295.59566491682},"targetPosition":{"x":15049.153562663865,"y":31038.131226693393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"5489751f-5ce4-40d0-9854-5bcfdc810269","savedPayload":{"position":{"x":15049.153562663865,"y":31038.131226693393},"targetPosition":{"x":14716.990761953079,"y":31038.17830230591},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0e1257c5-49b1-4b52-8942-9bdef72854d2","savedPayload":{"position":{"x":14716.843959091762,"y":31038.024738221364},"targetPosition":{"x":14079.894884165275,"y":31038.166461562458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b","savedPayload":{"position":{"x":15045.552221144293,"y":31329.003976386983},"targetPosition":{"x":14837.69016883917,"y":31570.65978539939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b2814a75-fd57-45c4-a3cb-af276793e573"}}},{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da","savedPayload":{"position":{"x":15129.925421763637,"y":31443.234588877498},"targetPosition":{"x":14837.69016883917,"y":31570.65978539939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"04c5f172-6976-4557-b95f-38004b5201a6"}}},{"type":"Exchange Account Asset","name":"Ether","id":"b3d0800f-f430-4549-86e9-68001c43fa1f","savedPayload":{"position":{"x":15156.324673396291,"y":31582.493916797535},"targetPosition":{"x":14837.69016883917,"y":31570.65978539939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4175d47c-e12c-4902-b026-f4999a6d07a4"}}},{"type":"Exchange Account Asset","name":"Monero","id":"ee25ff6a-8b3d-4f30-8acf-71ca4b186195","savedPayload":{"position":{"x":15119.60270103622,"y":31719.58562930427},"targetPosition":{"x":14837.69016883917,"y":31570.65978539939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Monero","id":"e3b61070-77b9-4dcf-9862-7f05ffa237f3"}}},{"type":"Exchange Account Asset","name":"Stellar","id":"5716ea79-1392-4f6d-a46e-dba38ab9b39e","savedPayload":{"position":{"x":15027.042577031634,"y":31827.16324834079},"targetPosition":{"x":14837.69016883917,"y":31570.65978539939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Stellar","id":"6dee1e7e-80f3-4597-a28a-881af206ec14"}}},{"type":"Exchange Account Asset","name":"Ethereum Classic","id":"d9d0d41c-67a9-42ea-8c64-067647ee53a4","savedPayload":{"position":{"x":14896.892806780692,"y":31883.891480137856},"targetPosition":{"x":14837.69016883917,"y":31570.65978539939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ethereum Classic","id":"59378d33-4833-495a-89bb-f739710be7d9"}}}],"id":"f7bbfcc0-2359-4de1-8ddc-5e117bde0c52","savedPayload":{"position":{"x":14837.69016883917,"y":31570.65978539939},"targetPosition":{"x":14529.97816888475,"y":31488.389186969194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"WHB","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"88eab4e5-3be4-4982-93fa-e95bcb1ab559","savedPayload":{"position":{"x":14771.379005546727,"y":32072.350747523094},"targetPosition":{"x":14612.113800977872,"y":31796.265546651335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Exchange Account Key","name":"BBTB","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"bfea6ed0-673c-4245-9b5e-7837785a63c9","savedPayload":{"position":{"x":14612.064462876144,"y":32115.0038323965},"targetPosition":{"x":14612.113800977872,"y":31796.265546651335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"cf3895fd-4f0c-4bd8-8afb-886a718cc891","savedPayload":{"position":{"x":14612.113800977872,"y":31796.265546651335},"targetPosition":{"x":14529.97816888475,"y":31488.389186969194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a718949a-e315-4bda-8523-b0b03e3ca507","savedPayload":{"position":{"x":14529.97816888475,"y":31488.389186969194},"targetPosition":{"x":14305.012345932206,"y":31263.313648257546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a913b30b-17d3-4b2b-9c39-9c7dc67f0000","savedPayload":{"position":{"x":14305.012345932206,"y":31263.313648257546},"targetPosition":{"x":14079.894884165275,"y":31038.166461562458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"22d2b36e-7a77-40a6-8948-b7d0fb744923","savedPayload":{"position":{"x":14079.894884165275,"y":31038.166461562458},"targetPosition":{"x":13442.879291220586,"y":31038.17362849701},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"c16f8dd4-05f5-45db-8a47-713eb1116f72","savedPayload":{"position":{"x":13442.879291220586,"y":31038.17362849701},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"signalsProviders":[],"superActions":{"type":"Super Actions","name":"New Super Actions","superActions":[{"type":"Super Action","name":"Install Market","id":"2cd8e9dd-02a8-40b5-8979-108491309697","savedPayload":{"position":{"x":13596.796537982185,"y":29900.600915146206},"targetPosition":{"x":13238.769838624787,"y":30494.890822183912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"d103d8f7-8b21-436a-a0cf-8244b3dcb756","savedPayload":{"position":{"x":13738.553946135695,"y":30013.646249280533},"targetPosition":{"x":13238.769838624787,"y":30494.890822183912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"c934df8f-d942-4723-ad44-f187e5df4351","savedPayload":{"position":{"x":12166.581869182457,"y":31038.25465749285},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9f4e7bfb-ea29-47cd-92bd-11f31d177ff8","savedPayload":{"position":{"x":12805.301618063546,"y":31038.2348844148},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"e"}}},{"type":"Charting Space","name":"New Charting Space","viewport":{"type":"Viewport","name":"New Viewport","code":"{\"zoom\":\"0.00\"}","id":"c3db9bcf-39ee-47d1-ab4f-14bd5de815da","savedPayload":{"position":{"x":13421.60994808922,"y":24983.353401471086},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"frame":{"position":{"x":-105.87179487179515,"y":64.6875}}}},"dashboards":[{"type":"Dashboard","name":"Super Action Generated","timeMachines":[{"type":"Time Machine","name":"WHB Binance BTC/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-05-18T06:17:05.470Z\",\n \"toDate\": \"2020-05-27T22:57:28.511Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"9368d644-21cd-4be9-bb36-df83b66c67d1","savedPayload":{"position":{"x":11611.720379074248,"y":26036.808408556513},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 8468.468050704952,\n \"maxValue\": 10604.90816010915,\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"7242faad-e2a0-4dd2-8016-bd4448a3b61c","savedPayload":{"position":{"x":11472.84821627644,"y":26143.60061063287},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"cddfbb92-c310-477a-9c66-b2a38ff8309f","savedPayload":{"position":{"x":11311.376506720255,"y":26210.551198106474},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"09e91fb3-cdff-4c0c-b320-417aeb4f2538","savedPayload":{"position":{"x":45798.08358329995,"y":30783.47112133315},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"dd7c8795-bb24-4438-9d77-b37a9000ad7f"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"2b8f6dec-a712-4716-88d8-a33c01398956","savedPayload":{"position":{"x":45898.37673360377,"y":30788.25119234455},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"6929ebe7-6486-4299-add5-ed0282500d91"}}},{"type":"Layer","name":"Resistances","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"57d807c2-eeac-46a5-bd07-6f630a578562","savedPayload":{"position":{"x":45996.05938571397,"y":30809.588522972816},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Resistances","id":"0669d924-aace-46d1-b126-ccced8fd33cf"}}},{"type":"Layer","name":"Supports","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9a035c82-60cb-4ab4-b4f8-e40b0dde7c2c","savedPayload":{"position":{"x":46088.671022938994,"y":30846.72421469604},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Supports","id":"5e7a0e50-e6ed-4106-8025-8b35ad6c597c"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"25363a67-bcaf-4392-9ed8-2b6c99fb31c8","savedPayload":{"position":{"x":46173.797322491286,"y":30898.58369972401},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"1d7dd537-5f6f-4eb2-8e56-ddba0aef720f"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"63dbae3f-cebc-4587-9b9c-60ffe83e4143","savedPayload":{"position":{"x":46249.17664768098,"y":30963.730987652525},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"221c8d22-8a7f-4014-a7ed-0bafc886b123"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"2203bc66-a385-438b-8050-0b812b655d0a","savedPayload":{"position":{"x":46312.78393052083,"y":31040.384533238812},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"d83476c3-2f0b-4d4a-abb2-0e47ed0a421d"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ea4ce55e-855e-4a61-ad12-222a0077e51e","savedPayload":{"position":{"x":46362.900460538505,"y":31126.454059169817},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"5ffc6a67-e33b-422b-8e36-f9711f93c723"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"e9272caf-38f8-44de-a698-13f8b19b50c3","savedPayload":{"position":{"x":46398.167326095994,"y":31219.59432824167},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"0428f20b-9620-480e-a531-dbb2e5f59ef4"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"a9fcfaea-cd50-464e-aa65-1f2a3e98633d","savedPayload":{"position":{"x":46417.62588351845,"y":31317.267577006704},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"48f7953c-f62d-4292-b042-d1ac05f8f80f"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\"\n}","id":"8c1e005a-c340-4850-9de2-900a4cfc44bb","savedPayload":{"position":{"x":46420.70567572493,"y":31416.809466474464},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"3b9a3c93-6d41-440e-89a2-2fd1b2dde603"}}},{"type":"Layer","name":"Base5 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"6223f2d7-bdb4-474a-9e60-b54dc00680ea","savedPayload":{"position":{"x":46407.31337137963,"y":31515.483822428057},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"2404b1eb-c7c9-46e7-b22a-93cfcc3739f4"}}},{"type":"Layer","name":"Base6 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"a71c4fa6-d034-499c-9b30-7a46378cadc0","savedPayload":{"position":{"x":46377.87367543775,"y":31610.607629023725},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"1510fd36-633e-40a7-adbe-680660d64bd0"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"53c4ff8b-f3c5-4329-8fe4-6209c0ffb9f1","savedPayload":{"position":{"x":46333.185880681754,"y":31699.591341637817},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"70401ea0-3fed-4e40-8bba-a1e5adce9b8c"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"09cbb1f5-edad-4f9f-ab1c-7f9b0a0d8f7c","savedPayload":{"position":{"x":46274.467312818415,"y":31780.011584392756},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"06ac8eb7-8b14-42b1-9e2e-466280ade032"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"88466a0a-b385-417f-9efa-8c0139e05a5e","savedPayload":{"position":{"x":46203.31676678368,"y":31849.67669835976},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"014bba70-64d4-4035-b06d-145ee9b4c54c"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6564d574-c6fd-4ee0-96ab-0e7c62e1cd7c","savedPayload":{"position":{"x":46121.67361107911,"y":31906.68977984249},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"768cc06c-6fdf-491a-a741-5e08f0e25e38"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"941fef87-83dd-457f-818c-71745fa1692a","savedPayload":{"position":{"x":46028.33674024209,"y":31950.48529383432},"targetPosition":{"x":45819.36840869368,"y":31385.419815840156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"40794460-b815-498f-a245-e677de0eed86"}}}],"id":"1c96281c-523a-4597-b9b2-2db3d880ff49","savedPayload":{"position":{"x":45819.36840869368,"y":31385.419815840156},"targetPosition":{"x":45228.931388073186,"y":31502.74417203152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"ff535c6b-411f-4790-ab2b-c755c74de1b9","savedPayload":{"position":{"x":11138.25130732125,"y":26233.38907834376},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 2109149.343784579,\n \"maxValue\": 2118053.365048354,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"9ee722c6-095f-4f4a-b8b2-9cb9bca115aa","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c4041768-1a6e-4f5b-8d7b-b681a175f27a","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"98e6c917-f4b7-4b71-9215-de3ccaf3dc0c"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"e9404a3f-2768-4b17-ac7a-8b11e1a1957c","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"858fd2be-abef-4173-abef-dedf17f00d47","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"8411d061-e010-4d33-b35c-e71d743fd403","savedPayload":{"position":{"x":10965.194408624708,"y":26210.60036281255},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 25826.74987533423,\n \"maxValue\": 25961.190304401338,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"60aaeaeb-2247-4536-a1a2-cf7d731b6fc5","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"c230772e-ca08-45df-bad6-4b72be44d9a5","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"4a3ed8eb-a73e-4fb4-835a-681cf47d7373"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"f9435119-1d3f-4106-9c78-531f6ef4714f","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"728d6f08-086f-41ba-9126-30ec56a45ea5"}}}],"id":"acbd2ecb-2f75-44b8-8659-26482cb6fb0b","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"a7f9fef6-c3f9-4e17-b894-9a5e154ccbbe","savedPayload":{"position":{"x":10803.78018262477,"y":26143.752131657493},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 943.9334763368367,\n \"maxValue\": 947.9334763368367,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"1415a288-9d79-45c9-a55c-9991e8b6953b","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"33e885d3-27f0-4ff7-8715-bc2f945e698e","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"7ccbd0c1-c804-47e3-9314-14cbb756c806"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f3cd6f15-98f5-4165-b6c3-04b8796fb43d","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"08f223a8-9707-4c45-b638-1fe0e4a2b053"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"66440f58-8741-4b22-8146-00f772837545","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"66f1a9be-fe96-48c3-91e4-500c6e246423"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"3ba14173-bac8-4013-9a5c-b8aecd05e0ae","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"e432c706-cbcd-4af0-b23c-b18e5b29377a"}}}],"id":"ab7c3367-a36e-4a78-b43b-bfeea5fc5201","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"156b9564-14a5-4148-8ca6-1e7b98d4189d","savedPayload":{"position":{"x":10665.17152728171,"y":26037.402405028162},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"4978dec9-1374-421a-865e-9e0d30682f65","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"93d62cc0-6914-411e-bf9f-008271cd2965","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"573fb46f-78d2-4bf3-ad11-e42d2531d53e"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"on\"\n}","id":"cbb41381-e76d-44f5-8dd3-f9a8c0c0379f","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"39d7a06d-5aad-4b03-8778-e4df8dacc825"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"88471305-9c12-4caf-856b-675fb2db2db3","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"82b46974-7a93-4066-a3b7-378b42710364"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"8cb92f6b-8ede-44ef-928a-36f4ec022af8","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"7af9d35c-7464-4ed5-9ee6-ccf7a9943894"}}}],"id":"3ec4f352-fb06-4ade-8393-7a5a83765773","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1770,"y":80},"width":150,"height":330,"radius":0}}},"id":"ac6929d9-238c-4689-b2ee-3cc001be578b","savedPayload":{"position":{"x":10558.81501585983,"y":25898.797450091883},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"d7c6c5e8-82d8-4f2a-a07e-66c3498d1fe5","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"b978b005-7bc2-4246-b4d9-5fcfc463eacf","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"63636068-307e-4cea-b31f-f47e106cea2c"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"1ca55ee3-231b-41ad-9acd-24f043e8aa01","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"20848048-8efb-47b1-aaf0-789d2f6c5b1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"52850e27-6287-4005-ba6e-66f5b193e3ad","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"5e28998c-b35f-4cc0-9fd6-8ee5f5714545"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"46bd81b8-5b9f-4c5f-89bb-149e19bd0267","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"87b74841-4f6a-4658-b01b-7feb254b5d2f"}}}],"id":"0cf47550-1612-4cd7-8fdd-a68014bd52cc","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1620,"y":80},"width":150,"height":40,"radius":0}}},"id":"c285480b-3a39-4dd0-be1d-6470a97d22a7","savedPayload":{"position":{"x":10491.96325073248,"y":25737.373898896472},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"b10a1160-3d9b-44a5-97e9-dbfdc9f103b6","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"b4fb2c12-42e4-496d-aea2-ccf8c90c2e6a","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"5919a710-a950-4049-9605-3f127b7fac6b"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"fc3d15bc-ac9c-4150-9a26-4c8baef90266","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"c7030a88-152f-421c-8b32-66f3c222286a"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"c749facc-4350-43c1-b881-72c781475f56","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"25db80e6-c4cf-4568-98d3-0cba83625ece"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"30fa6c26-bdbb-4a70-a917-f42d99583938","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"f4b18249-5044-4b34-83f7-3cedbbe939c5"}}}],"id":"c689ea14-8d8b-4482-9cf3-c652904ebd27","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1470,"y":80},"width":150,"height":40,"radius":0}}},"id":"fabbc9b6-b752-4ba6-80a4-835eaa856948","savedPayload":{"position":{"x":10469.194131114753,"y":25564.28586691085},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"eb70203f-383c-4227-8b82-64458c8ceb62","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"3a82f6d9-2063-4fd7-aa79-dedc4222c58c","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"af19e56c-eaf1-4b0b-93f9-74b9ac1843c2"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"605b9ea8-5ed1-4750-8921-88bc481ffbc4","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"30ac52a8-ee50-439c-83c8-df75ab49374a"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"3e97cb0b-80dd-4d12-8205-852c759a3f55","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"6a059555-2555-4c7f-a722-2ab4ca0440c5"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"76a918d5-1242-4b97-a252-550200546f5c","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"c35fa0be-6e51-4d14-9a52-6b0174cc1aab"}}}],"id":"8658198e-ea8a-45ef-b05f-b2810aa3e015","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1320,"y":80},"width":150,"height":40,"radius":0}}},"id":"6616907b-5ec0-4c2d-b47b-885343226b81","savedPayload":{"position":{"x":10492.226838547804,"y":25390.75587290283},"targetPosition":{"x":11138.236958169193,"y":25564.296880103568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a9786387-316d-4b02-a53a-60187e2e17ed","savedPayload":{"position":{"x":11138.236958169193,"y":25564.296880103568},"targetPosition":{"x":11472.267056451483,"y":24985.351675411093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":1135,"y":395},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"BBTB Binance BTC/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-05-20T06:57:25.096Z\",\n \"toDate\": \"2020-05-28T23:36:50.667Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"28d6f2c6-d921-4bc6-a262-f9d432e43a75","savedPayload":{"position":{"x":10492.140742264783,"y":24579.9362145769},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 8539.15569832808,\n \"maxValue\": 10398.820427646755,\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"305a3f31-2554-45f4-9a5a-063087eade65","savedPayload":{"position":{"x":10469.108817024662,"y":24406.41410216667},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"af0e57b5-269b-4d97-ac21-76195ede4cd6","savedPayload":{"position":{"x":10491.878304594275,"y":24233.318318413578},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"8b7edeec-2998-4877-95d6-4bc85a91f199","savedPayload":{"position":{"x":46248.05137575185,"y":30539.981477083165},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"dd7c8795-bb24-4438-9d77-b37a9000ad7f"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"2360e8bf-a667-40b9-ad6e-84bca97a4c90","savedPayload":{"position":{"x":46348.34452605566,"y":30544.761548094564},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"6929ebe7-6486-4299-add5-ed0282500d91"}}},{"type":"Layer","name":"Resistances","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f2d657ea-cfc5-47d7-9a00-b1c1ebc61e3f","savedPayload":{"position":{"x":46446.02717816587,"y":30566.09887872283},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Resistances","id":"0669d924-aace-46d1-b126-ccced8fd33cf"}}},{"type":"Layer","name":"Supports","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5f830182-98fa-4e85-b66b-f1e240d821c9","savedPayload":{"position":{"x":46538.63881539089,"y":30603.234570446057},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Supports","id":"5e7a0e50-e6ed-4106-8025-8b35ad6c597c"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ae39c816-1963-4071-af1d-22d6cf94041e","savedPayload":{"position":{"x":46623.76511494318,"y":30655.094055474026},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"1d7dd537-5f6f-4eb2-8e56-ddba0aef720f"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"84a553d0-1d85-4164-8a7e-f583326a807d","savedPayload":{"position":{"x":46699.14444013288,"y":30720.24134340254},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"221c8d22-8a7f-4014-a7ed-0bafc886b123"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"c2fde932-5320-4d26-a998-4a4f5bf4d847","savedPayload":{"position":{"x":46762.751722972724,"y":30796.894888988827},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"d83476c3-2f0b-4d4a-abb2-0e47ed0a421d"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"986d6828-d93c-4eba-9ac2-c2c94d90582e","savedPayload":{"position":{"x":46812.8682529904,"y":30882.964414919832},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"5ffc6a67-e33b-422b-8e36-f9711f93c723"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"90090b4c-f6bb-465f-8240-1ff1b829503d","savedPayload":{"position":{"x":46848.135118547885,"y":30976.104683991685},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"0428f20b-9620-480e-a531-dbb2e5f59ef4"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"3100c7a8-46ce-4713-bb6c-4a90bf09dcbc","savedPayload":{"position":{"x":46867.59367597035,"y":31073.77793275672},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"48f7953c-f62d-4292-b042-d1ac05f8f80f"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\"\n}","id":"534a2350-9486-4c2b-8e42-0988e56d4a6e","savedPayload":{"position":{"x":46870.67346817683,"y":31173.31982222448},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"3b9a3c93-6d41-440e-89a2-2fd1b2dde603"}}},{"type":"Layer","name":"Base5 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"948561ae-efea-46e1-9667-5c4817118eca","savedPayload":{"position":{"x":46857.28116383152,"y":31271.994178178073},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"2404b1eb-c7c9-46e7-b22a-93cfcc3739f4"}}},{"type":"Layer","name":"Base6 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"49e73773-8345-4e59-9fed-0cf16c82be08","savedPayload":{"position":{"x":46827.84146788965,"y":31367.11798477374},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"1510fd36-633e-40a7-adbe-680660d64bd0"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"0f88f124-bb93-4bac-918e-fd11496d1a76","savedPayload":{"position":{"x":46783.15367313365,"y":31456.101697387832},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"70401ea0-3fed-4e40-8bba-a1e5adce9b8c"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"5fcb4df6-3903-4e0a-b29d-4ca52ca10f40","savedPayload":{"position":{"x":46724.43510527031,"y":31536.52194014277},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"06ac8eb7-8b14-42b1-9e2e-466280ade032"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"b9c8e51c-82eb-4dc5-9b12-01a5c660e27d","savedPayload":{"position":{"x":46653.28455923557,"y":31606.187054109774},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"014bba70-64d4-4035-b06d-145ee9b4c54c"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e101b9b9-54f7-4450-b658-41d428fe98b3","savedPayload":{"position":{"x":46571.641403531,"y":31663.200135592506},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"768cc06c-6fdf-491a-a741-5e08f0e25e38"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"7f4a8c67-cfb0-4370-a7d1-3dbb51a4200a","savedPayload":{"position":{"x":46478.30453269399,"y":31706.995649584336},"targetPosition":{"x":46269.336201145576,"y":31141.93017159017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"40794460-b815-498f-a245-e677de0eed86"}}}],"id":"4ecd5f52-f81e-456c-9497-9c1d2fe4c659","savedPayload":{"position":{"x":46269.336201145576,"y":31141.93017159017},"targetPosition":{"x":45678.899180525084,"y":31259.254527781533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"6916ddb0-8156-49b5-a37b-16818ad780fd","savedPayload":{"position":{"x":10558.729861137988,"y":24071.895181337284},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 2042396.836815424,\n \"maxValue\": 2051300.858079199,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"fea71c82-c589-4e2b-9a23-a9f90a980a5c","savedPayload":{"position":{"x":44405.55033743636,"y":31261.51022477371},"targetPosition":{"x":44080.414675039254,"y":31287.13850027945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0358d7fb-73e1-4099-bbad-672d80f35e8e","savedPayload":{"position":{"x":44612.89390157048,"y":31479.949969919875},"targetPosition":{"x":44401.28500610063,"y":31441.688531642707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"98e6c917-f4b7-4b71-9215-de3ccaf3dc0c"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"1647ec62-daa0-4985-ae3d-9ad7b3222397","savedPayload":{"position":{"x":44564.361174041755,"y":31581.712327942194},"targetPosition":{"x":44401.28500610063,"y":31441.688531642707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"111f471b-a72c-4330-97b0-3f2b310f3c55","savedPayload":{"position":{"x":44401.28500610063,"y":31441.688531642707},"targetPosition":{"x":44080.414675039254,"y":31287.13850027945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"237e33ff-32f9-4f45-bb51-b42e93d4f2e3","savedPayload":{"position":{"x":10665.086276963259,"y":23933.289816556313},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 24818.86417825609,\n \"maxValue\": 24953.3046073232,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"9294ac73-b348-4f8c-aa4b-a98e72b643ce","savedPayload":{"position":{"x":44361.21664273736,"y":31366.73167335227},"targetPosition":{"x":44060.4423815896,"y":31347.32101223103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"e8cef08c-fcbb-4430-8a2f-825d101f44e3","savedPayload":{"position":{"x":44529.19471727387,"y":31592.619948516272},"targetPosition":{"x":44324.99063603653,"y":31523.731134007154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"4a3ed8eb-a73e-4fb4-835a-681cf47d7373"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"ce432b11-fd42-4bbb-be67-be70436e1935","savedPayload":{"position":{"x":44467.06932232549,"y":31685.848244771263},"targetPosition":{"x":44324.99063603653,"y":31523.731134007154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"728d6f08-086f-41ba-9126-30ec56a45ea5"}}}],"id":"40c545c9-8f6e-4777-a5b7-6386c382d0ef","savedPayload":{"position":{"x":44324.99063603653,"y":31523.731134007154},"targetPosition":{"x":44060.4423815896,"y":31347.32101223103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"3b7bd98c-c062-412b-8efc-b6943b0c57c4","savedPayload":{"position":{"x":10803.694986500428,"y":23826.93951465946},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 913.9458988180226,\n \"maxValue\": 917.9458988180226,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"33fca6f7-ae02-4d47-987b-6d4cdd54d7dc","savedPayload":{"position":{"x":44290.58808276839,"y":31546.332726046596},"targetPosition":{"x":44008.67786449814,"y":31450.627230444796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3f2dd6ab-cbb0-47d4-bcc0-4c65a6a26bbf","savedPayload":{"position":{"x":44413.860692334245,"y":31705.270868973323},"targetPosition":{"x":44217.224018592766,"y":31688.7983598539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"7ccbd0c1-c804-47e3-9314-14cbb756c806"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6970ee87-56eb-42e1-a7f5-e8496ae7c14e","savedPayload":{"position":{"x":44370.6894603055,"y":31786.435037256044},"targetPosition":{"x":44217.224018592766,"y":31688.7983598539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"08f223a8-9707-4c45-b638-1fe0e4a2b053"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"8467da0c-25b2-4471-8a51-d10e22c09575","savedPayload":{"position":{"x":44303.94190533702,"y":31846.937174734503},"targetPosition":{"x":44217.224018592766,"y":31688.7983598539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"66f1a9be-fe96-48c3-91e4-500c6e246423"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"538dc51b-9d04-4064-8997-7c2cfd01def4","savedPayload":{"position":{"x":44207.172795775405,"y":31883.5736299024},"targetPosition":{"x":44217.224018592766,"y":31688.7983598539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"e432c706-cbcd-4af0-b23c-b18e5b29377a"}}}],"id":"413ae363-1475-4fb5-918f-607c5ee50198","savedPayload":{"position":{"x":44217.224018592766,"y":31688.7983598539},"targetPosition":{"x":44008.67786449814,"y":31450.627230444796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"6fbb972a-6cb6-479d-bbd8-20d96f997ec7","savedPayload":{"position":{"x":10965.11030574667,"y":23760.090535827057},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"c0059d35-5a9a-4569-9384-72e2e15f134d","savedPayload":{"position":{"x":27557.63582153647,"y":27912.736751977856},"targetPosition":{"x":27650.227157061017,"y":28257.50773383182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"1ab2b96f-e3d5-46a0-9be0-2f2b76209ea2","savedPayload":{"position":{"x":27665.65594917696,"y":27585.32604165042},"targetPosition":{"x":27743.053578769875,"y":27912.28127902672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"653622df-b35b-4c72-9b1d-cbbea2d45a93"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"3d8a3ad2-2047-4906-b695-5336d5d7c98a","savedPayload":{"position":{"x":27773.681834722982,"y":27575.417965010536},"targetPosition":{"x":27743.053578769875,"y":27912.28127902672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"bcd39fee-3584-4e3a-b524-05ecb62d4582"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"75f4bc8d-ba22-4a6e-a8c2-2c384ef2b98c","savedPayload":{"position":{"x":27879.136658694806,"y":27601.456940514337},"targetPosition":{"x":27743.053578769875,"y":27912.28127902672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"d6a48300-ab24-4b7b-8fb1-b431e389c7d1"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"db1b234c-5cba-4b03-8572-755e2af13f73","savedPayload":{"position":{"x":27979.473145949694,"y":27672.59337035246},"targetPosition":{"x":27743.053578769875,"y":27912.28127902672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"aa60feec-3e11-4509-ab4f-5eac17ea7d3b"}}}],"id":"ce11bc60-a642-46e6-ab04-99b6835f22d3","savedPayload":{"position":{"x":27743.053578769875,"y":27912.28127902672},"targetPosition":{"x":27650.227157061017,"y":28257.50773383182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1770,"y":80},"width":150,"height":330,"radius":0}}},"id":"d3f769da-9958-4549-b2d9-7eb8582f94c2","savedPayload":{"position":{"x":11138.157252601008,"y":23737.30184414623},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"4c7c5182-d380-459d-aaf3-27cf75fff424","savedPayload":{"position":{"x":28262.385658877018,"y":28130.53416813641},"targetPosition":{"x":28262.41822833366,"y":28486.384792584635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"8c3a6cb3-9c1c-4a56-8e45-34da3b7211a5","savedPayload":{"position":{"x":28447.69443236196,"y":27841.456778292883},"targetPosition":{"x":28440.385696197893,"y":28177.98107529941},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"2004d488-ba55-478c-afa4-c00a555bf34c"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"f6941192-1842-4fa5-9963-3d82963ccf8f","savedPayload":{"position":{"x":28557.462280733387,"y":27859.50803963232},"targetPosition":{"x":28440.385696197893,"y":28177.98107529941},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"7859d024-817a-4059-8a17-86690194f9de"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"dbc9d245-aa65-4b6e-bed2-43a76dd4c5f6","savedPayload":{"position":{"x":28655.050318792713,"y":27915.11964276374},"targetPosition":{"x":28440.385696197893,"y":28177.98107529941},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"dd541e63-8071-4b0f-8eb8-5fd50ef3eb82"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"d4c540d0-ef98-40c5-8b3b-401a36d97a35","savedPayload":{"position":{"x":28729.501541674534,"y":28006.267495681434},"targetPosition":{"x":28440.385696197893,"y":28177.98107529941},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"11af0867-3396-48d4-b794-9d133d2d2416"}}}],"id":"848138ac-75f4-4f45-9d75-5f3efd1b1851","savedPayload":{"position":{"x":28440.385696197893,"y":28177.98107529941},"targetPosition":{"x":28262.41822833366,"y":28486.384792584635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1620,"y":80},"width":150,"height":40,"radius":0}}},"id":"7e78029b-0e92-4aca-b46e-b0abd6a9efc1","savedPayload":{"position":{"x":11311.290953212665,"y":23760.139397561445},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"30f19a00-1682-4e5b-bbf1-038de1e095a0","savedPayload":{"position":{"x":28472.766660410845,"y":29349.031832198143},"targetPosition":{"x":28472.716345933826,"y":29707.546693237375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"55f431d8-2f2b-4a23-8918-c7e648f501f4","savedPayload":{"position":{"x":28819.954200077675,"y":29131.835390461678},"targetPosition":{"x":28725.76222074944,"y":29454.779651892102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"3713af17-7ed8-4d32-abbb-66be7ba3d95b"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"352896a0-4682-4e04-b63a-8c449e290e3c","savedPayload":{"position":{"x":28923.00109202421,"y":29179.54612793986},"targetPosition":{"x":28725.76222074944,"y":29454.779651892102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"8206a3c4-7a92-4f52-aa29-d0b912511e94"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"ad636a90-0f4f-4851-8ac4-f1d8f62db35f","savedPayload":{"position":{"x":28999.37401037677,"y":29254.845401658935},"targetPosition":{"x":28725.76222074944,"y":29454.779651892102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"82cb4b63-c7ed-4e1c-b558-5caf08e7840e"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"46e22bd5-7a0a-4cf4-a07a-ffb56e480b13","savedPayload":{"position":{"x":29049.875305170575,"y":29364.278029383444},"targetPosition":{"x":28725.76222074944,"y":29454.779651892102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"35c51f59-d967-4fb9-bf3d-ebef155fe90a"}}}],"id":"b3fbff56-9599-4434-b850-ecde29200a93","savedPayload":{"position":{"x":28725.76222074944,"y":29454.779651892102},"targetPosition":{"x":28472.716345933826,"y":29707.546693237375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1470,"y":80},"width":150,"height":40,"radius":0}}},"id":"6a6e8794-41f5-43a6-afd2-7e46272b49f6","savedPayload":{"position":{"x":11472.759865802207,"y":23827.087856289705},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-min\"}","id":"0e5d370a-9170-44e8-870a-20dcc784a793","savedPayload":{"position":{"x":28317.561321721798,"y":28460.143313868284},"targetPosition":{"x":28139.557768239833,"y":28769.97071387159},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"d4b2f167-9859-46d5-a98f-18ce9b8c2c37","savedPayload":{"position":{"x":28624.627247902066,"y":28305.973052222267},"targetPosition":{"x":28447.39063058376,"y":28591.244910585203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"84c5619b-c379-4bed-bd1c-3dccfc840fa7"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"303943c9-fa32-4510-abdb-59c743008a7a","savedPayload":{"position":{"x":28705.758217764087,"y":28373.020535680873},"targetPosition":{"x":28447.39063058376,"y":28591.244910585203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"9cd0c0da-e0df-4b83-a7f5-7e503f050020"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"09bd756c-955e-40c3-b093-f5bd16a47d94","savedPayload":{"position":{"x":28763.500035918594,"y":28466.28104399784},"targetPosition":{"x":28447.39063058376,"y":28591.244910585203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"05aa1029-fde5-4240-b5ef-31636ed817ee"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"7baed766-dcbe-4ca9-a45c-f09d5e1f0c0c","savedPayload":{"position":{"x":28784.40971720822,"y":28589.492110455},"targetPosition":{"x":28447.39063058376,"y":28591.244910585203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"8681f8d9-c6fa-4966-aa76-e627000962cb"}}}],"id":"73aed3a7-3c46-4847-85a8-1da38a836b75","savedPayload":{"position":{"x":28447.39063058376,"y":28591.244910585203},"targetPosition":{"x":28139.557768239833,"y":28769.97071387159},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1320,"y":80},"width":150,"height":40,"radius":0}}},"id":"0440d6cc-9623-40ab-b3fd-b6fc234d2550","savedPayload":{"position":{"x":11611.635854119537,"y":23933.882953163084},"targetPosition":{"x":11138.15835124918,"y":24406.41899509399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f2065c00-1afb-40e3-937c-fa4046f388a2","savedPayload":{"position":{"x":11138.15835124918,"y":24406.41899509399},"targetPosition":{"x":11472.267056451483,"y":24985.351675411093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":725,"y":395},"width":240,"height":113.625,"radius":0}}}],"id":"64fa2a31-21ea-4b56-a625-dc4082876a89","savedPayload":{"position":{"x":11472.267056451483,"y":24985.351675411093},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":0,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"t"}}}],"id":"c53a4385-3fb3-49d5-b506-99bcaef2c141","savedPayload":{"position":{"x":12809.806237131383,"y":24985.35640053908},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":0,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"c"}}},{"type":"Trading System","name":"BB Top Bounce","code":"{ \n\"codeName\": \"\"\n}","strategies":[{"type":"Strategy","name":"S1 - 3H Down","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"99948a6e-e866-4339-86ba-eac367226312","savedPayload":{"position":{"x":31745.87792199155,"y":30844.340258645996},"targetPosition":{"x":32052.38122416619,"y":30583.023145060495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f0534c68-ab47-4370-b1fd-b3be4c1c262f","savedPayload":{"position":{"x":32052.38122416619,"y":30583.023145060495},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"d3bd1690-1f94-484b-ac3c-7be2c7be85ed","savedPayload":{"position":{"x":31605.618112221746,"y":30565.806770971594},"targetPosition":{"x":31989.318028702757,"y":30441.460815337527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2d7334d-cf52-44d9-a20e-5be201ca6799","savedPayload":{"position":{"x":31989.318028702757,"y":30441.460815337527},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"d1fa707f-eb75-4b1c-8117-688b9b94e539","savedPayload":{"position":{"x":31554.61755893405,"y":30257.172197674274},"targetPosition":{"x":31956.687749228324,"y":30288.882416651897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fb71bcfb-2a40-4e8a-b8e8-b492128350a0","savedPayload":{"position":{"x":31956.687749228324,"y":30288.882416651897},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","id":"8c8c5128-b88b-44a5-8e36-d5c61127404f","savedPayload":{"position":{"x":31639.94576021355,"y":29954.803831254892},"targetPosition":{"x":31999.203547395213,"y":30137.794869043297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22246178-a8f9-4ec8-b55b-36cf7a24fbff","savedPayload":{"position":{"x":31999.203547395213,"y":30137.794869043297},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Medium, Steep or Extreme","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Medium\" || chart.at03hs.bollingerSubChannel.slope === \"Steep\" || chart.at03hs.bollingerSubChannel.slope === \"Extreme\" ","id":"bf8df41c-c62f-4cd6-840e-1dd538359c3b","savedPayload":{"position":{"x":31834.655620259655,"y":29707.873760246843},"targetPosition":{"x":32096.553555740164,"y":30014.31400704127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9dba774d-1afa-40dd-b5ec-8f4029824473","savedPayload":{"position":{"x":32096.553555740164,"y":30014.31400704127},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope === \"Gentle\"","id":"c4428437-7308-46f3-884e-22d2aac8d1a0","savedPayload":{"position":{"x":32109.03084733644,"y":29554.180048988066},"targetPosition":{"x":32233.790964800362,"y":29937.452098557496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7766453d-73ca-46f7-a39c-00f4f11af05e","savedPayload":{"position":{"x":32233.790964800362,"y":29937.452098557496},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"eac9b2d4-4364-4116-9d99-e92b8bbce5e7","savedPayload":{"position":{"x":32420.849012406088,"y":29517.112042973775},"targetPosition":{"x":32389.86788822145,"y":29918.98295933012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40cb1853-f93e-4023-8d45-708376281bde","savedPayload":{"position":{"x":32389.86788822145,"y":29918.98295933012},"targetPosition":{"x":32358.475513276375,"y":30321.19625417135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8d558598-60b5-4104-9a84-1773b125c509","savedPayload":{"position":{"x":32358.475513276375,"y":30321.19625417135},"targetPosition":{"x":32756.369395728692,"y":30473.2782041962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3afd4ef5-2175-48fa-844f-e4e4ed775b26","savedPayload":{"position":{"x":32756.369395728692,"y":30473.2782041962},"targetPosition":{"x":33115.49575849726,"y":30655.993268223905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"0fb11814-5ba2-4c23-86b0-e6f8c01363e6","savedPayload":{"position":{"x":32617.29250092579,"y":29121.850815516915},"targetPosition":{"x":32741.838475650537,"y":29505.18938868129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32415e55-51cb-44cf-a0d9-9de73b946da8","savedPayload":{"position":{"x":32741.838475650537,"y":29505.18938868129},"targetPosition":{"x":32866.375295950726,"y":29888.60205395678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"317dd29a-db32-4f10-bee0-325b7a7c816c","savedPayload":{"position":{"x":32866.375295950726,"y":29888.60205395678},"targetPosition":{"x":32991.015860687716,"y":30271.979726021065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"547d578f-4568-4b1f-965d-1d598b7b67bb","savedPayload":{"position":{"x":32991.015860687716,"y":30271.979726021065},"targetPosition":{"x":33115.49575849726,"y":30655.993268223905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"903651ac-50d3-44ea-aae2-0b6bbe43b989","savedPayload":{"position":{"x":32519.153930150867,"y":29623.888173680094},"targetPosition":{"x":32898.8713319454,"y":29758.68564157265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4c4c6084-bebe-46ce-a12f-68924568c81d","savedPayload":{"position":{"x":32898.8713319454,"y":29758.68564157265},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"b16e3f56-5a3f-4af9-a9d1-ff3bbf9ca0b8","savedPayload":{"position":{"x":32679.72474976604,"y":29354.39087414772},"targetPosition":{"x":32979.10492621333,"y":29624.347968493967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c4e1f247-db57-4488-81e9-c7602562b8f3","savedPayload":{"position":{"x":32979.10492621333,"y":29624.347968493967},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"34452811-c161-4b33-8335-bc996a8638ad","savedPayload":{"position":{"x":32931.691553348195,"y":29166.564159994483},"targetPosition":{"x":33105.053842370166,"y":29530.40381131325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"db35b110-1991-4e3d-a1bd-04b0d1bad669","savedPayload":{"position":{"x":33105.053842370166,"y":29530.40381131325},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","id":"8fcf0aed-cd6b-4df9-8ec4-4511fcde66d8","savedPayload":{"position":{"x":33236.37478842459,"y":29089.384601838196},"targetPosition":{"x":33257.444177016405,"y":29491.79286529503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48bd56ea-0d5a-404d-a887-061493bebbcf","savedPayload":{"position":{"x":33257.444177016405,"y":29491.79286529503},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Medium, Steep or Extreme","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Medium\" || chart.at03hs.bollingerSubChannel.slope === \"Steep\" || chart.at03hs.bollingerSubChannel.slope === \"Extreme\" ","id":"40b36ec9-ebf1-43fe-8003-f0d130b7cb36","savedPayload":{"position":{"x":33547.15819738872,"y":29134.731069626498},"targetPosition":{"x":33412.887765036874,"y":29514.443714403056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c90a754-52bd-47cf-a3b5-95ad037bbb62","savedPayload":{"position":{"x":33412.887765036874,"y":29514.443714403056},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope === \"Gentle\"","id":"3f28257c-cc33-4c59-b40b-85bc88821f96","savedPayload":{"position":{"x":33817.50271555692,"y":29295.712530312267},"targetPosition":{"x":33548.076869473945,"y":29594.931818674166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fc2fb509-2854-4359-aa1e-b32a2174bd35","savedPayload":{"position":{"x":33548.076869473945,"y":29594.931818674166},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"5226a3d7-c8f8-41bd-9b45-f6238576628f","savedPayload":{"position":{"x":34005.82672873455,"y":29547.817722630363},"targetPosition":{"x":33642.2312063245,"y":29721.07059078792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b38876e-bcad-4cec-90e2-c2e358723d29","savedPayload":{"position":{"x":33642.2312063245,"y":29721.07059078792},"targetPosition":{"x":33278.333917070595,"y":29894.451567060434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"46e2ecf6-82ae-435d-a3a0-d5e2903404fd","savedPayload":{"position":{"x":33278.333917070595,"y":29894.451567060434},"targetPosition":{"x":33299.00147256256,"y":30297.01571488586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"c296b2ce-4039-48ec-b8bb-99c9d96853eb","savedPayload":{"position":{"x":33609.682057130776,"y":29953.38300829202},"targetPosition":{"x":33434.376532064154,"y":30147.396378822883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d0dbc486-d195-4db3-b895-385088b800ba","savedPayload":{"position":{"x":33434.475794635255,"y":30147.282072860846},"targetPosition":{"x":33299.00147256256,"y":30297.01571488586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"93418d2a-3047-4f80-aa59-0c6fdb35ad43","savedPayload":{"position":{"x":33299.00147256256,"y":30297.01571488586},"targetPosition":{"x":33115.49575849726,"y":30655.993268223905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"1055a2cc-e93a-4dd8-a992-f56553527ddd","savedPayload":{"position":{"x":33115.49575849726,"y":30655.993268223905},"targetPosition":{"x":33239.48474341851,"y":31038.643250235426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"853852d1-d2fa-4e32-a891-e98ca52a556e","savedPayload":{"position":{"x":33687.32525899127,"y":28630.28850235298},"targetPosition":{"x":33979.54395432601,"y":28708.55040929766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"3bdebe73-3546-43f3-b644-73ec62086c66","savedPayload":{"position":{"x":33666.51804208801,"y":27539.983917204023},"targetPosition":{"x":33744.69548060642,"y":27832.06710596675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"36615e86-2c8e-4182-ab3e-5c263c44fcb1","savedPayload":{"position":{"x":33744.70691352631,"y":27832.134330548877},"targetPosition":{"x":33822.954696502624,"y":28124.404333447008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6aae47da-70b4-4fd3-b2da-65a1d645b915","savedPayload":{"position":{"x":33822.86695788699,"y":28124.39717183063},"targetPosition":{"x":33901.15598726982,"y":28416.52491269287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"18261801-3d1b-4dfe-872c-019fff59db4d","savedPayload":{"position":{"x":33901.15572942444,"y":28416.51381216433},"targetPosition":{"x":33979.54395432601,"y":28708.55040929766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"678cc7e5-c7cf-48e5-beee-37455617aa15","savedPayload":{"position":{"x":33979.616026972566,"y":28708.527885863212},"targetPosition":{"x":34193.31786858143,"y":28922.065415950765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a57d76af-2d34-41a0-b68b-a5dda59436b4","savedPayload":{"position":{"x":34193.31786858143,"y":28922.065415950765},"targetPosition":{"x":34406.84857131276,"y":29135.252280701574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"f191391f-f798-4819-b46b-8ae9538ff71f","savedPayload":{"position":{"x":34123.43694196574,"y":28303.266547138595},"targetPosition":{"x":34313.34298525399,"y":28538.488004355862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"65b73feb-09e0-491d-99fd-30f331acac97","savedPayload":{"position":{"x":34436.073537225195,"y":27376.24000730662},"targetPosition":{"x":34483.20864925244,"y":27674.87599559046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fa12e6f8-f9d6-4eb7-9e3b-1e0f17581548","savedPayload":{"position":{"x":34483.301676393894,"y":27675.108504545075},"targetPosition":{"x":34530.31165278271,"y":27973.96671756476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"2eff0ccd-bf54-4456-aff5-9f46cf1469ff","savedPayload":{"position":{"x":35000.38389861486,"y":27593.093039459363},"targetPosition":{"x":34765.46226665505,"y":27783.35172716299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a4af8e92-a505-48fd-8080-8a715cd856dc","savedPayload":{"position":{"x":34765.43852093076,"y":27783.562045970917},"targetPosition":{"x":34530.31165278271,"y":27973.96671756476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ef07d7e4-53c0-4746-a1a2-4b4856cba9df","savedPayload":{"position":{"x":34530.30099769694,"y":27973.974792996265},"targetPosition":{"x":34421.88845899308,"y":28256.249074095707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"2484f7be-38df-4139-94b4-d753e6d50eed","savedPayload":{"position":{"x":34421.82014227279,"y":28256.221955834993},"targetPosition":{"x":34313.34298525399,"y":28538.488004355862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"8ba924d4-3ac9-41de-ba03-02368b3bde5a","savedPayload":{"position":{"x":34313.4187637897,"y":28538.448023932728},"targetPosition":{"x":34360.1918698118,"y":28837.00124492984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8c2601bb-ff4c-4947-b514-96f43313e134","savedPayload":{"position":{"x":34360.1600707038,"y":28837.029615626387},"targetPosition":{"x":34406.84857131276,"y":29135.252280701574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"058068ed-ad77-4574-b61b-58e54f0db35b","savedPayload":{"position":{"x":34682.314020993916,"y":28597.031066228574},"targetPosition":{"x":34544.60399635092,"y":28866.212135868725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9ba67283-694d-42a9-995f-19e53d5519d0","savedPayload":{"position":{"x":34544.60399635092,"y":28866.212135868725},"targetPosition":{"x":34406.84857131276,"y":29135.252280701574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"bd3b401d-5b77-43ba-87e1-c4f9552bf56f","savedPayload":{"position":{"x":34946.04548109355,"y":28861.386648858126},"targetPosition":{"x":34676.46337129765,"y":28998.42894504949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4938fc97-68bf-490e-85a0-66254b98bbac","savedPayload":{"position":{"x":34676.46337129765,"y":28998.42894504949},"targetPosition":{"x":34406.84857131276,"y":29135.252280701574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3f9517c2-52d1-4922-a838-1aacf268bcc7","savedPayload":{"position":{"x":34406.84857131276,"y":29135.252280701574},"targetPosition":{"x":34217.642980461096,"y":30328.208176155946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"97162469-0f8d-4710-81e1-1a1f3070a5ac","savedPayload":{"position":{"x":34462.41262967484,"y":30150.616620789337},"targetPosition":{"x":34217.642980461096,"y":30328.208176155946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"b23bab61-270d-4e0e-bcdc-f57457942e30","savedPayload":{"position":{"x":34822.17690991721,"y":30423.728911300397},"targetPosition":{"x":34516.57606336537,"y":30375.449231047525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a92fd7c1-db55-485b-bb59-7894f339959d","savedPayload":{"position":{"x":34516.582487985164,"y":30375.451352699893},"targetPosition":{"x":34217.642980461096,"y":30328.208176155946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e35699bc-1fe9-4cdc-b029-6361f0ce8592","savedPayload":{"position":{"x":34217.642980461096,"y":30328.208176155946},"targetPosition":{"x":33239.48474341851,"y":31038.643250235426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Standard Run","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"0e9e87f6-4636-4f1f-8091-d1c3090ee345","savedPayload":{"position":{"x":34864.4258519058,"y":31073.451873580834},"targetPosition":{"x":34461.11172798981,"y":31137.136196285086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"4a44eb01-4bb2-4b85-bd64-cab1b6a4678f","savedPayload":{"position":{"x":34461.11172798981,"y":31137.136196285086},"targetPosition":{"x":33939.89373966002,"y":31219.42301087441},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a9042fd2-0f05-4208-91b7-81e00b6493fb","savedPayload":{"position":{"x":33964.17199362247,"y":31212.629100310176},"targetPosition":{"x":33565.701923404486,"y":31275.6154406843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"aadae3ad-5cf1-4417-baad-c6e8b0ab8f31","savedPayload":{"position":{"x":34479.54862907233,"y":31441.47133565945},"targetPosition":{"x":34242.223416518915,"y":31767.17190193582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"bfc7fa92-c54c-43e7-8a6d-f89572d1fee2","savedPayload":{"position":{"x":35534.17506364013,"y":32601.01834737772},"targetPosition":{"x":35227.57871058723,"y":32377.80094191258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5ea229bf-a68c-40f9-a6ac-8bae8171ecda","savedPayload":{"position":{"x":35227.57871058723,"y":32377.80094191258},"targetPosition":{"x":34900.77194830591,"y":32141.7292100267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"585c2f06-93d7-403f-ab70-0aab9c936f72","savedPayload":{"position":{"x":34900.77194830591,"y":32141.7292100267},"targetPosition":{"x":34573.63535245736,"y":31912.267182708572},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"cddeb772-d0f7-4ba8-b303-b623746f3f6e","savedPayload":{"position":{"x":34573.63535245736,"y":31912.267182708572},"targetPosition":{"x":34242.223416518915,"y":31767.17190193582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"4862beb3-990c-43ba-a21b-93ce1227d060","savedPayload":{"position":{"x":34095.983992917565,"y":33156.25692616599},"targetPosition":{"x":33932.40423152793,"y":32787.97422544229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dc6ade59-03df-4aa5-a892-5e225a38cb35","savedPayload":{"position":{"x":33932.40423152793,"y":32787.97422544229},"targetPosition":{"x":33768.76262490215,"y":32419.670081760734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"54428b89-eb5f-4844-9fec-b049f074b3c8","savedPayload":{"position":{"x":33684.54360513825,"y":33221.50127229437},"targetPosition":{"x":33726.58189119683,"y":32820.64500846274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"81b0626e-e4c7-40dc-ae8d-ec5603067461","savedPayload":{"position":{"x":33726.58189119683,"y":32820.64500846274},"targetPosition":{"x":33768.76262490215,"y":32419.670081760734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"05867691-257f-4795-b70f-180ef26713fd","savedPayload":{"position":{"x":33295.15009910802,"y":33072.03862949453},"targetPosition":{"x":33531.844828303714,"y":32745.9038412817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2d354bdf-7142-4921-aec4-60a295569584","savedPayload":{"position":{"x":33531.844828303714,"y":32745.9038412817},"targetPosition":{"x":33768.76262490215,"y":32419.670081760734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"74adc18a-fcb8-47ad-a447-1595f16cc7f6","savedPayload":{"position":{"x":33032.65657548499,"y":32747.964707298193},"targetPosition":{"x":33400.58073167286,"y":32583.817208006196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c760094-3830-48d3-a97c-a9dee27f3c7e","savedPayload":{"position":{"x":33400.58073167286,"y":32583.817208006196},"targetPosition":{"x":33768.76262490215,"y":32419.670081760734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"45a3f428-25a5-4cf2-a13f-08bf3bbc4972","savedPayload":{"position":{"x":32967.43396894057,"y":32336.52703312829},"targetPosition":{"x":33367.984332677246,"y":32377.98795861293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6106746d-8995-425e-8dd9-009894a5dd07","savedPayload":{"position":{"x":33367.984332677246,"y":32377.98795861293},"targetPosition":{"x":33768.76262490215,"y":32419.670081760734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"61a873ab-dc8f-4023-93cd-a861bd965858","savedPayload":{"position":{"x":33768.76262490215,"y":32419.670081760734},"targetPosition":{"x":34005.569456507634,"y":32093.444793007522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"aa98a93e-c928-4900-854a-97b3750182d2","savedPayload":{"position":{"x":34005.569456507634,"y":32093.444793007522},"targetPosition":{"x":34242.223416518915,"y":31767.17190193582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"83f85765-e13b-406a-bd56-7fd820eebc16"}}}],"announcements":[],"id":"e3b43a25-cbb0-4ebc-ac2f-148a56d7d934","savedPayload":{"position":{"x":34242.223416518915,"y":31767.17190193582},"targetPosition":{"x":33891.42358861794,"y":31512.39396500924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"e603a735-7a74-4654-b0bb-50bee2d1e307","savedPayload":{"position":{"x":34965.37684662937,"y":31962.859663977957},"targetPosition":{"x":34566.985205192934,"y":32026.856287734012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"12b3cadf-b8f9-4f43-8799-40c1509f8d07","savedPayload":{"position":{"x":35934.15152043711,"y":32273.569658836277},"targetPosition":{"x":35565.78497710967,"y":32437.163554507133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d45aa91c-a153-4311-8403-8e4492ffcc95","savedPayload":{"position":{"x":35565.78497710967,"y":32437.163554507133},"targetPosition":{"x":35196.94350553596,"y":32600.98818807042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"47191a8e-485b-4f11-be05-c1b6253da95e","savedPayload":{"position":{"x":36019.79323488345,"y":32698.898330709257},"targetPosition":{"x":35618.76476118394,"y":32656.59127038628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a6eff46-6a7b-4a29-81a4-93a751a056bf","savedPayload":{"position":{"x":35618.76476118394,"y":32656.59127038628},"targetPosition":{"x":35196.94350553596,"y":32600.98818807042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"e9cfe84c-e144-4e95-88ce-8bfdffd42f89","savedPayload":{"position":{"x":35850.04803078668,"y":33074.805375387914},"targetPosition":{"x":35523.743612251135,"y":32837.93392343165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9dfa9604-bc08-4df3-980d-2f8b06185031","savedPayload":{"position":{"x":35523.743612251135,"y":32837.93392343165},"targetPosition":{"x":35196.94350553596,"y":32600.98818807042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"8c332bfe-ab0c-4905-9440-86091b7040b1","savedPayload":{"position":{"x":35526.96283562273,"y":33337.71267605346},"targetPosition":{"x":35362.78202114205,"y":32969.172911299174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e358399e-001d-4d07-83e4-2bf9d65ed1bd","savedPayload":{"position":{"x":35362.78202114205,"y":32969.172911299174},"targetPosition":{"x":35196.94350553596,"y":32600.98818807042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"51ec782d-f54f-46b5-b45a-9db5cf7a380e","savedPayload":{"position":{"x":35078.386460330876,"y":33413.44311371471},"targetPosition":{"x":35120.761185118834,"y":33012.25356399207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c64c6aff-2525-4e58-9e27-ac7a8b3dc8cb","savedPayload":{"position":{"x":35120.761185118834,"y":33012.25356399207},"targetPosition":{"x":35196.94350553596,"y":32600.98818807042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08f82342-86ce-4222-b954-968397dd2d33","savedPayload":{"position":{"x":35196.94350553596,"y":32600.98818807042},"targetPosition":{"x":34870.15982787527,"y":32364.087714314013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"170cad22-eef5-48c3-b5d9-fae484dab493","savedPayload":{"position":{"x":34870.15982787527,"y":32364.087714314013},"targetPosition":{"x":34566.985205192934,"y":32026.856287734012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"83f85765-e13b-406a-bd56-7fd820eebc16"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"0320d330-7d8e-4577-8ea3-debcdf5c4971","savedPayload":{"position":{"x":35201.0639175972,"y":33465.70824658257},"targetPosition":{"x":34945.200145626884,"y":33137.04979310342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6611a627-dfaf-4248-8aaa-e27fb7ac7141","savedPayload":{"position":{"x":34945.200145626884,"y":33137.04979310342},"targetPosition":{"x":34692.15922488175,"y":32823.47675811349},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"51f5f720-c0df-4209-a32f-80f67688004d","savedPayload":{"position":{"x":34403.59582771485,"y":33576.18639286568},"targetPosition":{"x":34547.81576381235,"y":33199.90475745102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"62ebc71f-7dab-4090-9f0e-c557cbbf5045","savedPayload":{"position":{"x":34547.81576381235,"y":33199.90475745102},"targetPosition":{"x":34692.15922488175,"y":32823.47675811349},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9cfa9122-1b64-4a37-877f-1c722493562a","savedPayload":{"position":{"x":34692.15922488175,"y":32823.47675811349},"targetPosition":{"x":34629.497980836786,"y":32425.186055399783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"73f3e391-cceb-4d27-932f-7b3c76d63b24","savedPayload":{"position":{"x":34629.497980836786,"y":32425.186055399783},"targetPosition":{"x":34566.985205192934,"y":32026.856287734012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e3b43a25-cbb0-4ebc-ac2f-148a56d7d934"}}}],"announcements":[],"id":"913c2adb-a405-40e1-b661-300ec59c4ea0","savedPayload":{"position":{"x":34566.985205192934,"y":32026.856287734012},"targetPosition":{"x":34242.223416518915,"y":31767.17190193582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"be65b94d-3942-43c3-96aa-354447d5d591","savedPayload":{"position":{"x":35266.86864213329,"y":32080.796230194483},"targetPosition":{"x":34898.47957079251,"y":32244.880649959683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"fb87ce68-53e9-4553-a0d4-c996920c9b7a","savedPayload":{"position":{"x":35881.98510857697,"y":33453.83239370252},"targetPosition":{"x":35556.24500068716,"y":33217.03786906918},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1c9f9e96-a31d-42dc-a72f-ee8c25057426","savedPayload":{"position":{"x":35556.24500068716,"y":33217.03786906918},"targetPosition":{"x":35230.10643190333,"y":32980.148545011216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"2d8cbbda-0c6c-4f48-ab1a-4f3ee6cb46d1","savedPayload":{"position":{"x":35144.11024531394,"y":33766.74632003621},"targetPosition":{"x":35186.14435295862,"y":33366.033340052745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e4719fbb-2730-46bf-9593-75e9544d860c","savedPayload":{"position":{"x":35186.14435295862,"y":33366.033340052745},"targetPosition":{"x":35230.10643190333,"y":32980.148545011216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"60819e62-c36a-4cf6-86ea-09aa1046f1b7","savedPayload":{"position":{"x":35230.10643190333,"y":32980.148545011216},"targetPosition":{"x":35061.15284169607,"y":32613.19638922832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"297f0537-a281-46ab-89a4-9aab36495673","savedPayload":{"position":{"x":35061.15284169607,"y":32613.19638922832},"targetPosition":{"x":34898.47957079251,"y":32244.880649959683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e3b43a25-cbb0-4ebc-ac2f-148a56d7d934"}}}],"announcements":[],"id":"83f85765-e13b-406a-bd56-7fd820eebc16","savedPayload":{"position":{"x":34898.47957079251,"y":32244.880649959683},"targetPosition":{"x":34566.985205192934,"y":32026.856287734012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cf907f3e-a01a-4ffb-9e3b-23ea0d8f34d1","savedPayload":{"position":{"x":33892.049283641114,"y":31512.87348125915},"targetPosition":{"x":33565.701923404486,"y":31275.6154406843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"fa95edc3-acc6-44c0-acb1-47583e1ff54a","savedPayload":{"position":{"x":33690.80820420145,"y":32071.297117691756},"targetPosition":{"x":33628.26011341306,"y":31673.51260213062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"67446ae0-3e01-451b-8689-d9c7ea48a1f4","savedPayload":{"position":{"x":33629.00012297632,"y":31673.95650524724},"targetPosition":{"x":33565.701923404486,"y":31275.6154406843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3f7a5501-fa20-4b3b-b038-2297cb2fd04e","savedPayload":{"position":{"x":33565.701923404486,"y":31275.6154406843},"targetPosition":{"x":33239.48474341851,"y":31038.643250235426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"938021bb-3f71-4d07-961b-bdac0c208ec6","savedPayload":{"position":{"x":33385.03651416626,"y":31721.91869755804},"targetPosition":{"x":33115.24150182601,"y":31421.868407518647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"dc7931a1-ce6a-4a8b-bc84-65cbfc4ebbd0","savedPayload":{"position":{"x":32676.438509295866,"y":32098.960417908125},"targetPosition":{"x":32895.535995884864,"y":31760.66588131618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f75b57a-e00c-4479-9cf0-7c87eef8254b","savedPayload":{"position":{"x":32895.5338274171,"y":31760.68558474898},"targetPosition":{"x":33115.24150182601,"y":31421.868407518647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2371e1b0-7d6e-47d8-92b3-8447bd933af5","savedPayload":{"position":{"x":33115.24150182601,"y":31421.868407518647},"targetPosition":{"x":33239.48474341851,"y":31038.643250235426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"77e56192-a0b0-4786-afdb-8e59ba757ccf","savedPayload":{"position":{"x":33239.48474341851,"y":31038.643250235426},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S3 - 2H Down","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"0c6d7b91-4bbf-4e27-850c-6348ffea4055","savedPayload":{"position":{"x":31634.350378426207,"y":30259.571095345415},"targetPosition":{"x":32263.43911849039,"y":30259.947220728467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9c8b0541-0125-4ed1-8bcb-2d8a539bcc85","savedPayload":{"position":{"x":32263.43911849039,"y":30259.947220728467},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"b09863b6-7ea3-4929-8b3c-f99409fb1bf1","savedPayload":{"position":{"x":31696.88500088226,"y":29870.632625415637},"targetPosition":{"x":32294.89171998345,"y":30065.140782336246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"26835b4a-83a2-4209-84a0-e38c74ff993a","savedPayload":{"position":{"x":32294.89171998345,"y":30065.140782336246},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"2fc1bc08-9def-4a37-abc3-dbac24a2c360","savedPayload":{"position":{"x":31875.884827815316,"y":29520.365687488113},"targetPosition":{"x":32384.487164002785,"y":29890.063455449697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1fa5642c-48f4-492b-81d3-5d752decd8af","savedPayload":{"position":{"x":32384.487164002785,"y":29890.063455449697},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Down","code":"chart.at02hs.bollingerBand.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","id":"07c23ae8-6440-4b6e-aabe-67afdba80c7c","savedPayload":{"position":{"x":32154.209372947636,"y":29242.349943028978},"targetPosition":{"x":32523.67032296668,"y":29751.085106238465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c14a9e3b-6d84-44c9-8273-1a37850087b4","savedPayload":{"position":{"x":32523.67032296668,"y":29751.085106238465},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at02hs.bollingerBand.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","id":"57d558fd-ecfa-429a-9304-88f41b32b44c","savedPayload":{"position":{"x":32504.830345617527,"y":29063.85702318619},"targetPosition":{"x":32698.994485377014,"y":29661.828315918163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ab49ca45-333d-4ed9-99a1-a3ca632cbbb2","savedPayload":{"position":{"x":32698.994485377014,"y":29661.828315918163},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Side","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Side\"","id":"261d9835-4d23-4b58-946d-b9324d920273","savedPayload":{"position":{"x":32893.22119985897,"y":29002.336709240757},"targetPosition":{"x":32893.22305153142,"y":29631.07615103375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4d450dc4-bfbb-4779-b070-cac385b809c7","savedPayload":{"position":{"x":32893.22305153142,"y":29631.07615103375},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H RSI > 60","code":"chart.at24hs.rsi14.value < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.rsi14.value > 60","id":"c0afd580-e4b8-4c7c-ac4c-7370e5a79a98","savedPayload":{"position":{"x":33281.4681278924,"y":29063.86071973356},"targetPosition":{"x":33087.3880414573,"y":29661.86609096789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"95207d90-4af8-4b5a-8321-0076e8b8929d","savedPayload":{"position":{"x":33087.3880414573,"y":29661.86609096789},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"92ef2b33-6bd1-4ab7-91a4-ddb3e035ed08","savedPayload":{"position":{"x":33632.012109517724,"y":29242.375556754567},"targetPosition":{"x":33262.687218260275,"y":29751.231513287654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3ac7ebe1-3f6f-4e35-a8a2-f39aa509c849","savedPayload":{"position":{"x":33262.687218260275,"y":29751.231513287654},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","id":"6ef3aec8-78cb-4942-bcfd-ff860b2b7971","savedPayload":{"position":{"x":33910.39444114047,"y":29520.60636592229},"targetPosition":{"x":33401.847358196974,"y":29890.34803965414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5af02e84-f067-45ee-8d7e-44966254e430","savedPayload":{"position":{"x":33401.847358196974,"y":29890.34803965414},"targetPosition":{"x":32893.236637209084,"y":30260.196412414953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20017afc-2e99-4596-9a1d-41b8b8ee7999","savedPayload":{"position":{"x":32893.236637209084,"y":30260.196412414953},"targetPosition":{"x":33087.874215175114,"y":30859.83394852712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"e6080867-291e-4dc7-b00f-582656e25e80","savedPayload":{"position":{"x":33087.874215175114,"y":30859.83394852712},"targetPosition":{"x":33217.802289890395,"y":31259.358809115663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"890f22bb-d291-4fdd-b444-5afbea478f13","savedPayload":{"position":{"x":33996.096905529594,"y":29767.64086654404},"targetPosition":{"x":33805.65783204276,"y":30141.695325277316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ef921c85-8bd3-49cc-aeaa-2556181fec27","savedPayload":{"position":{"x":33805.65783204276,"y":30141.695325277316},"targetPosition":{"x":33599.576454871414,"y":30510.782338093184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d4217f36-b6e4-45dc-979d-5ad1e74d0b85","savedPayload":{"position":{"x":33599.576454871414,"y":30510.782338093184},"targetPosition":{"x":33408.94602515501,"y":30885.02159265233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"92cd971f-1315-425e-883c-4adefb12883e","savedPayload":{"position":{"x":33408.94602515501,"y":30885.02159265233},"targetPosition":{"x":33217.802289890395,"y":31259.358809115663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"f5611889-2d66-4b5a-84ca-1bd444e56cb0","savedPayload":{"position":{"x":33395.423835013324,"y":29567.707236019025},"targetPosition":{"x":33709.38286226146,"y":30112.552280287062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96fdbdfc-c7d9-4e54-972c-de01d3f58a76","savedPayload":{"position":{"x":33709.38286226146,"y":30112.552280287062},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"ccd315a6-ae1c-4fcf-b6d4-deac89aef390","savedPayload":{"position":{"x":33778.40641159468,"y":29431.615941930762},"targetPosition":{"x":33908.92112230485,"y":30046.80251988933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"382fb23e-b4bc-4792-a492-328fa6201f6c","savedPayload":{"position":{"x":33908.92112230485,"y":30046.80251988933},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"cbc7b7f8-b6f1-4752-9259-6372178089e4","savedPayload":{"position":{"x":34170.783725012014,"y":29411.253122777303},"targetPosition":{"x":34105.031023089345,"y":30036.658201403985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"74975af2-4802-47bc-8251-97981c77dc4a","savedPayload":{"position":{"x":34105.031023089345,"y":30036.658201403985},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Down","code":"chart.at02hs.bollingerBand.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","id":"b7bdf1ce-16a5-4fc0-a87b-f8815615ef99","savedPayload":{"position":{"x":34550.61749887825,"y":29513.125500171263},"targetPosition":{"x":34294.97437106376,"y":30087.594297581873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a1e09269-19e5-4dff-8aeb-66d8bf6bd96d","savedPayload":{"position":{"x":34294.97437106376,"y":30087.594297581873},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at02hs.bollingerBand.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","id":"c516d181-ad48-49cd-a298-fddb6e91de94","savedPayload":{"position":{"x":34880.39014568893,"y":29727.362169392713},"targetPosition":{"x":34459.88109390561,"y":30194.77025937824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d57a06c7-d40b-4488-93fe-f7441dd299c6","savedPayload":{"position":{"x":34459.88109390561,"y":30194.77025937824},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Side","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Side\"","id":"9fabe671-7d14-43b5-ba69-831f4f2a066f","savedPayload":{"position":{"x":35127.70499575345,"y":30032.837976998024},"targetPosition":{"x":34583.614143110055,"y":30347.712936148797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"177c777c-ff05-4dc0-8b6b-d663b7329938","savedPayload":{"position":{"x":34583.614143110055,"y":30347.712936148797},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H RSI > 60","code":"chart.at24hs.rsi14.value < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.rsi14.value > 60","id":"e48e0eea-8553-4baa-ab82-de8e822619b3","savedPayload":{"position":{"x":35232.973925329425,"y":30343.470555819193},"targetPosition":{"x":34654.06615516728,"y":30531.468555641797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ee231079-650d-4046-8e5b-ad3a82e09efa","savedPayload":{"position":{"x":34654.06615516728,"y":30531.468555641797},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"241ea7c4-ec8c-4f74-994f-27cdc3cc5084","savedPayload":{"position":{"x":35289.263598407466,"y":30849.634778970838},"targetPosition":{"x":34664.35817900187,"y":30727.80228253821},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b1bb2780-2f92-47da-9ea5-39d0397e7144","savedPayload":{"position":{"x":34664.35817900187,"y":30727.80228253821},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","id":"35f95b09-f037-43ba-96f9-fa9d7d677bea","savedPayload":{"position":{"x":35186.911624698034,"y":31174.495365223673},"targetPosition":{"x":34613.44451250334,"y":30917.967080169867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6d92e5f1-7164-4f38-9a56-07334aee23fd","savedPayload":{"position":{"x":34613.44451250334,"y":30917.967080169867},"targetPosition":{"x":34039.16510092277,"y":30662.160080407033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2f0018b8-a386-4eb2-8cf8-b61c00af7639","savedPayload":{"position":{"x":34039.16510092277,"y":30662.160080407033},"targetPosition":{"x":33617.50526924846,"y":31130.04262069468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"ef95cbde-2d8b-4b1e-99a5-887e8ae2134c","savedPayload":{"position":{"x":34064.66251833871,"y":31147.655408084436},"targetPosition":{"x":33889.356993272086,"y":31341.668778615298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96060481-8324-4e13-808e-110537619ad7","savedPayload":{"position":{"x":33827.692335875254,"y":31119.423819500727},"targetPosition":{"x":33617.50526924846,"y":31130.04262069468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a937976d-4084-4184-a913-910b75ed6659","savedPayload":{"position":{"x":33617.50526924846,"y":31130.04262069468},"targetPosition":{"x":33217.802289890395,"y":31259.358809115663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"def5d0af-b5ee-43f9-9ea0-0b73cd37d82e","savedPayload":{"position":{"x":33217.802289890395,"y":31259.358809115663},"targetPosition":{"x":33027.197109693196,"y":31632.476242375036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"7e0c459e-9cc8-4d5a-bc57-fb82c79c09c5","savedPayload":{"position":{"x":35135.70214605619,"y":30167.516083927436},"targetPosition":{"x":35293.07724412037,"y":30440.26764173129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"e3edba7e-b9f0-4f02-8f66-ce5b9829d767","savedPayload":{"position":{"x":35922.91984041911,"y":29348.815450539747},"targetPosition":{"x":35765.484647432946,"y":29621.567567535756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"076b5c63-1619-410e-9ee5-1fa66f3d035f","savedPayload":{"position":{"x":35765.484647432946,"y":29621.567567535756},"targetPosition":{"x":35607.95729325596,"y":29894.457895979314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"094675d4-792f-4529-9f36-55540ba6c57d","savedPayload":{"position":{"x":35607.95729325596,"y":29894.457895979314},"targetPosition":{"x":35450.49478104098,"y":30167.39244502679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"7318274d-9569-419a-ba18-c3c1df7191f8","savedPayload":{"position":{"x":35450.49478104098,"y":30167.39244502679},"targetPosition":{"x":35293.07724412037,"y":30440.26764173129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"d4d2eb85-82c2-4c39-9f1f-9c865905dd5b","savedPayload":{"position":{"x":35293.07724412037,"y":30440.26764173129},"targetPosition":{"x":35288.817725527595,"y":30747.9133770426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"295179a4-3458-455d-b4de-549db3a926a8","savedPayload":{"position":{"x":35288.817725527595,"y":30747.9133770426},"targetPosition":{"x":35289.0497852532,"y":31090.402311553746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"3466c2e0-e14f-4e76-9735-651f84617051","savedPayload":{"position":{"x":35692.920333218164,"y":30268.646393535015},"targetPosition":{"x":35659.66370706001,"y":30581.829281582708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"0ecb1abe-ce06-4d16-a850-b180b6b66252","savedPayload":{"position":{"x":36605.838815369854,"y":29816.50777554093},"targetPosition":{"x":36420.67086759038,"y":30071.16215403728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"30e0b04a-1a96-4850-ae5c-f3e85da03da3","savedPayload":{"position":{"x":36420.67086759038,"y":30071.16215403728},"targetPosition":{"x":36235.36714817673,"y":30325.959128296938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"f6e4f3d5-a156-48d8-9c93-1109c5a5fca5","savedPayload":{"position":{"x":36861.988247619585,"y":30391.53865762637},"targetPosition":{"x":36548.78807948588,"y":30358.761659611344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a40f8de3-9ee1-47f7-9f91-71dd2240ab98","savedPayload":{"position":{"x":36548.78807948588,"y":30358.761659611344},"targetPosition":{"x":36235.36714817673,"y":30325.959128296938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"22980027-50ca-447a-a53c-fa84e87cfc4b","savedPayload":{"position":{"x":36235.36714817673,"y":30325.959128296938},"targetPosition":{"x":35947.5490253868,"y":30453.9215256811},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"ae0768db-6f1c-438d-af27-223b71c98b26","savedPayload":{"position":{"x":35947.5490253868,"y":30453.9215256811},"targetPosition":{"x":35659.66370706001,"y":30581.829281582708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"76c590b2-d1f8-497d-aadc-084d4500772c","savedPayload":{"position":{"x":35659.66370706001,"y":30581.829281582708},"targetPosition":{"x":35474.3107204167,"y":30836.26619004085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fcc3e4a-8a02-4dbd-82b8-b0f10843f527","savedPayload":{"position":{"x":35474.3107204167,"y":30836.26619004085},"targetPosition":{"x":35289.0497852532,"y":31090.402311553746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"1f9b31ce-64a5-4606-ba43-cdab0eb3dece","savedPayload":{"position":{"x":35888.51870731133,"y":30897.094478356263},"targetPosition":{"x":35588.76478443183,"y":30993.81670423616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"811a932e-9ad1-454e-aa71-86c100807627","savedPayload":{"position":{"x":35588.76478443183,"y":30993.81670423616},"targetPosition":{"x":35289.0497852532,"y":31090.402311553746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"4c2c3a4f-8cca-4211-b3d1-180266f99704","savedPayload":{"position":{"x":35888.02932685479,"y":31285.56938726938},"targetPosition":{"x":35588.475187273674,"y":31188.07770374712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7da16723-66b0-44a8-80a2-32afbfc33eda","savedPayload":{"position":{"x":35588.475187273674,"y":31188.07770374712},"targetPosition":{"x":35289.0497852532,"y":31090.402311553746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"05204106-bf49-4b86-be1e-c04acfff70ff","savedPayload":{"position":{"x":35289.0497852532,"y":31090.402311553746},"targetPosition":{"x":34270.93031373407,"y":31829.561903674166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"b739c187-7a8d-4877-b35d-db44832293a9","savedPayload":{"position":{"x":34582.036710214496,"y":31878.912006201877},"targetPosition":{"x":34270.93031373407,"y":31829.561903674166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"79d58168-9a31-4fe8-9e7e-19212ea5b481","savedPayload":{"position":{"x":34611.957839823925,"y":32060.94845886817},"targetPosition":{"x":34306.356993272086,"y":32012.668778615298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4a32c55d-ae86-4918-b898-ad027b574e14","savedPayload":{"position":{"x":34456.25406941115,"y":32084.595626386963},"targetPosition":{"x":34270.93031373407,"y":31829.561903674166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"96a417b6-09d8-4b1e-9778-3bef281c7849","savedPayload":{"position":{"x":34270.93031373407,"y":31829.561903674166},"targetPosition":{"x":33027.197109693196,"y":31632.476242375036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Slow Run","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"c57b9aaa-edc1-4a24-a2f9-1eeb3eed3d5c","savedPayload":{"position":{"x":34130.26731414797,"y":32800.3400427803},"targetPosition":{"x":33790.66857191591,"y":32553.726624302923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"22d1ba82-cecd-4ebf-a9b0-c02a2dcc4385","savedPayload":{"position":{"x":33790.66857191591,"y":32553.726624302923},"targetPosition":{"x":33432.69324860659,"y":32293.801129954125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f41b282c-06b8-4a86-9c94-18173ce77526","savedPayload":{"position":{"x":33432.82333847737,"y":32294.4434055754},"targetPosition":{"x":33092.84480699051,"y":32047.383542560598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"214e21c2-bdab-4d05-91b2-02f327d177b8","savedPayload":{"position":{"x":33560.189047347376,"y":33061.25591731097},"targetPosition":{"x":33168.17755880856,"y":32910.85719093055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"401d2bc0-0193-42de-8a65-df43242eb516","savedPayload":{"position":{"x":31019.353328127647,"y":34771.29319333476},"targetPosition":{"x":30873.113188713138,"y":34459.5430677265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b023b429-024c-46eb-86f8-6e4e23be3b3c","savedPayload":{"position":{"x":30873.113188713138,"y":34459.5430677265},"targetPosition":{"x":30730.968945388893,"y":34140.681493701086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ee7cd341-d632-47d6-9ddf-4462e6961461","savedPayload":{"position":{"x":30730.968945388893,"y":34140.681493701086},"targetPosition":{"x":30588.167033308324,"y":33817.51375204604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5c96f85d-f36d-496f-8c82-68bdbde4456f","savedPayload":{"position":{"x":32841.61331690757,"y":33175.13217299862},"targetPosition":{"x":33168.17755880856,"y":32910.85719093055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593","savedPayload":{"position":{"x":33168.17755880856,"y":32910.85719093055},"targetPosition":{"x":33099.11889863151,"y":32474.052057676712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"54a1a04f-b59d-40d9-91d6-9716c0198983","savedPayload":{"position":{"x":33573.69376797636,"y":33571.86718032515},"targetPosition":{"x":33233.80391345122,"y":33325.478360001805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"23d9abaa-63cc-4aef-abaf-7b493213cd29","savedPayload":{"position":{"x":32449.77558908902,"y":34154.4611915215},"targetPosition":{"x":32015.40384472738,"y":34108.56368300236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"28be9fea-5e5c-4c99-b4a4-6c01a831d9ce","savedPayload":{"position":{"x":32015.40384472738,"y":34108.56368300236},"targetPosition":{"x":31568.575996973697,"y":34061.39642915175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"c59f1c98-a4e9-40c1-8690-6543baa7a966","savedPayload":{"position":{"x":32283.759517871575,"y":34582.810236984864},"targetPosition":{"x":31931.786549495515,"y":34326.11237323376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c24d0f99-6491-40b3-94d9-49f91d354f3c","savedPayload":{"position":{"x":31931.786549495515,"y":34326.11237323376},"targetPosition":{"x":31568.575996973697,"y":34061.39642915175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"d6b4d297-a5fa-4561-acb0-b8d3b891912e","savedPayload":{"position":{"x":31946.197478846712,"y":34889.8385827318},"targetPosition":{"x":31751.053079962017,"y":34472.602873182244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c3f66d39-dc88-4049-895a-378f492a7d35","savedPayload":{"position":{"x":31751.053079962017,"y":34472.602873182244},"targetPosition":{"x":31568.575996973697,"y":34061.39642915175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"e9ac7090-a4d5-409d-9432-0d422f60e6e1","savedPayload":{"position":{"x":31475.217579292843,"y":34943.29649864423},"targetPosition":{"x":31521.155688266826,"y":34508.526991908395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a05e64ed-4262-42f1-b9dc-cc14f8b27c2d","savedPayload":{"position":{"x":31521.155688266826,"y":34508.526991908395},"targetPosition":{"x":31568.575996973697,"y":34061.39642915175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"cb158763-cb2f-494b-88ab-dafeb3825ca4","savedPayload":{"position":{"x":31046.924625195723,"y":34779.00271509945},"targetPosition":{"x":31304.05023460572,"y":34425.23837899979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"386bbe6b-9082-47e7-b750-e0e9d16a7030","savedPayload":{"position":{"x":31304.05023460572,"y":34425.23837899979},"targetPosition":{"x":31568.575996973697,"y":34061.39642915175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"32813be2-a6cd-4e5d-9a58-87eae5b3b5e9","savedPayload":{"position":{"x":33456.2367626283,"y":34169.229931685244},"targetPosition":{"x":33390.31829204923,"y":33754.57207201343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"264bdd5b-5246-4a3f-bd09-5c50baf57963","savedPayload":{"position":{"x":33390.31829204923,"y":33754.57207201343},"targetPosition":{"x":33233.80391345122,"y":33325.478360001805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"308d9cf6-beba-4d14-9b90-bb11409e3835","savedPayload":{"position":{"x":32678.163507437253,"y":36556.91105564189},"targetPosition":{"x":32834.64820004886,"y":36148.98136136614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a787ffbe-ea25-41cb-a719-de115285eead","savedPayload":{"position":{"x":32834.64820004886,"y":36148.98136136614},"targetPosition":{"x":32991.201109072026,"y":35740.89140224141},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d4b41076-5b23-498d-bc3e-1ccf277a1a43","savedPayload":{"position":{"x":32739.83720167254,"y":34005.06095530531},"targetPosition":{"x":32986.689244005254,"y":33665.01100359143},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"7cb4214c-3e3e-4a70-ad14-6ae2a568f24c","savedPayload":{"position":{"x":32986.689244005254,"y":33665.01100359143},"targetPosition":{"x":33233.80391345122,"y":33325.478360001805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593"}}}],"announcements":[],"id":"592ad0d7-d583-4827-8ae6-48f6ad25c1a3","savedPayload":{"position":{"x":33233.80391345122,"y":33325.478360001805},"targetPosition":{"x":33168.17755880856,"y":32910.85719093055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"580ecace-0d6d-4632-ad8d-e6dc86df51c8","savedPayload":{"position":{"x":33668.801065501335,"y":33887.456734513806},"targetPosition":{"x":33276.768273175025,"y":33736.54711405289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"bf6a5ecf-f5c8-4d13-a15c-1b567422bee0","savedPayload":{"position":{"x":34576.829412485866,"y":37000.01142562244},"targetPosition":{"x":34410.432322905384,"y":36626.06517025616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ca87de8b-af92-4d83-af59-7c71f17e1be4","savedPayload":{"position":{"x":34410.432322905384,"y":36626.06517025616},"targetPosition":{"x":34243.930379694895,"y":36251.90943343497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"d626af7e-c8bb-4e17-95e5-ba5abda158d8","savedPayload":{"position":{"x":33763.03089309385,"y":36914.47628256974},"targetPosition":{"x":34003.45132162593,"y":36583.27161248551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"98a76d2a-1ec4-413c-85b2-59865c6e1187","savedPayload":{"position":{"x":34003.45132162593,"y":36583.27161248551},"targetPosition":{"x":34243.930379694895,"y":36251.90943343497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9406f175-4d00-436d-ab9e-27081d36611b","savedPayload":{"position":{"x":34243.930379694895,"y":36251.90943343497},"targetPosition":{"x":34286.475860589395,"y":35844.37747430465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"aef3e320-bbaf-42e5-8083-21157428bfaf","savedPayload":{"position":{"x":33126.35798120075,"y":34129.20434251816},"targetPosition":{"x":33276.768273175025,"y":33736.54711405289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593"}}}],"announcements":[],"id":"9b594083-3fb0-4dfa-ba4b-1b1ada8687fe","savedPayload":{"position":{"x":33276.768273175025,"y":33736.54711405289},"targetPosition":{"x":33233.80391345122,"y":33325.478360001805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"80d81cb5-6a3a-4eff-ad9f-5590450c7366","savedPayload":{"position":{"x":33158.365096722715,"y":32462.606975036346},"targetPosition":{"x":33092.84480699051,"y":32047.383542560598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"8d20508d-dc45-4488-8a09-814a24826d00","savedPayload":{"position":{"x":32806.905084060476,"y":32680.453294176434},"targetPosition":{"x":32744.356993272086,"y":32282.668778615298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c04c40be-cd86-4c0e-b802-681f5c47a7f7","savedPayload":{"position":{"x":32846.11743673657,"y":32387.282950915138},"targetPosition":{"x":33092.84480699051,"y":32047.383542560598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3ea826ac-fe6b-4b8c-a0dc-f830202e8306","savedPayload":{"position":{"x":33092.84480699051,"y":32047.383542560598},"targetPosition":{"x":33027.197109693196,"y":31632.476242375036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"0400f408-3b91-42fd-839b-c71d8212e22b","savedPayload":{"position":{"x":32424.640743292275,"y":32175.998602689077},"targetPosition":{"x":32653.493876842065,"y":31823.167177806845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"761d7668-7a62-4221-be67-5754f4b7b2f2","savedPayload":{"position":{"x":32352.256298910706,"y":32433.62407361041},"targetPosition":{"x":32571.508942630673,"y":32095.215305371734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"00e6ad00-1176-41ab-a1f3-52a59aa8f7cd","savedPayload":{"position":{"x":32242.00054662029,"y":31910.80310333033},"targetPosition":{"x":32653.493876842065,"y":31823.167177806845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f83a0cfd-237d-4b3f-b4f0-9fa0a71b00bb","savedPayload":{"position":{"x":32653.493876842065,"y":31823.167177806845},"targetPosition":{"x":33027.197109693196,"y":31632.476242375036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4af71378-a61f-4d1d-a1cd-6933897ef3bd","savedPayload":{"position":{"x":33027.197109693196,"y":31632.476242375036},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S8 - 4H Up","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"0b8368d3-b1b1-413b-bbeb-95641a85b80f","savedPayload":{"position":{"x":32583.02153148494,"y":30375.069170464114},"targetPosition":{"x":32890.507807742724,"y":30666.144907896156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6034fcd2-8d4d-48b8-a392-18535fa70a53","savedPayload":{"position":{"x":32890.507807742724,"y":30666.144907896156},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"5e94af5d-2be9-4ae9-ae44-2867f755a827","savedPayload":{"position":{"x":32771.60113409807,"y":30224.788572225458},"targetPosition":{"x":32985.067261121585,"y":30591.65661580369},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f811cfed-9f3e-4211-84da-066b038d0b33","savedPayload":{"position":{"x":32985.067261121585,"y":30591.65661580369},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"9d5052c6-8411-4f18-ace8-17f021dfd5e2","savedPayload":{"position":{"x":32997.279518098934,"y":30134.976526965966},"targetPosition":{"x":33098.83303822341,"y":30547.231787359233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d4f2d1aa-32fd-4345-8291-3da0a9bf3fc5","savedPayload":{"position":{"x":33098.83303822341,"y":30547.231787359233},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","id":"3347b5df-6552-43dd-8265-43bb7d87df98","savedPayload":{"position":{"x":33236.19812252272,"y":30108.997090796624},"targetPosition":{"x":33217.92836568535,"y":30533.18565473396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7a4b6d88-b433-435d-a683-6eb73780f27b","savedPayload":{"position":{"x":33217.92836568535,"y":30533.18565473396},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","id":"3bf685d6-ac1f-4bab-a7f1-8450ee657948","savedPayload":{"position":{"x":33473.11688690986,"y":30153.501414040173},"targetPosition":{"x":33336.27708618797,"y":30555.259147958208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22eebcad-ee09-4e3b-897e-9495bb82784d","savedPayload":{"position":{"x":33336.27708618797,"y":30555.259147958208},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Side or 1H Extreme or Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\" || (chart.at04hs.bollingerSubChannel.slope === \"Gentle\" && (chart.at01hs.bollingerSubChannel.slope === \"Extreme\" || chart.at01hs.bollingerSubChannel.slope === \"Side\"))","id":"d5a69ea3-5ae1-4e4b-b858-8844f20f6369","savedPayload":{"position":{"x":33688.10523565221,"y":30263.125417578416},"targetPosition":{"x":33443.773670688315,"y":30610.037447064653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"54ac9a91-76eb-4d28-9d75-bcad0008c481","savedPayload":{"position":{"x":33443.773670688315,"y":30610.037447064653},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"e84f9d0b-15fc-4656-a2ed-392304b44df3","savedPayload":{"position":{"x":33863.57761044307,"y":30428.90350360676},"targetPosition":{"x":33531.52386726751,"y":30692.94592730243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"658b7720-b18e-42d0-9cb3-7f5c71928409","savedPayload":{"position":{"x":33531.52386726751,"y":30692.94592730243},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","id":"84b0abb3-cf34-491e-9436-4fdb07ee4977","savedPayload":{"position":{"x":33985.280778200904,"y":30637.388456021126},"targetPosition":{"x":33592.38327848182,"y":30797.24063448982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f39b86b4-5a2a-470c-8503-0ee11eab51f6","savedPayload":{"position":{"x":33592.38327848182,"y":30797.24063448982},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","id":"3bde8f4f-c2e3-413b-8df1-37aeb20a85f9","savedPayload":{"position":{"x":34043.32401464137,"y":30871.65436333817},"targetPosition":{"x":33621.38059220496,"y":30914.477414693258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"04fd8c8d-8074-4932-b3e1-56357c7829ea","savedPayload":{"position":{"x":33621.38059220496,"y":30914.477414693258},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 2: 02H, 03H, 04H, 06H, all Up && 2H Steep && 1H, 6H NOT Gentle","code":"chart.at24hs.bollingerChannel.direction + chart.at24hs.bollingerBand.slope > chart.at01hs.rsi14.value","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerSubChannel.direction === \"Up\" && chart.at03hs.bollingerSubChannel.direction === \"Up\" && chart.at04hs.bollingerSubChannel.direction === \"Up\" && chart.at06hs.bollingerSubChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Steep\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\" && chart.at06hs.bollingerSubChannel.slope != \"Gentle\") {false} else {true}","id":"cf1a034f-093e-422f-ba6f-ec4c3ce091d2","savedPayload":{"position":{"x":34030.35077514018,"y":31104.321423914676},"targetPosition":{"x":33616.07981062104,"y":31035.056200409377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"69c8d1ca-52b4-4eed-a65b-7a8a870bb46d","savedPayload":{"position":{"x":33616.07981062104,"y":31035.056200409377},"targetPosition":{"x":33198.90105550597,"y":30956.877809899306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"64643171-239b-49ac-adc7-0124075eb96e","savedPayload":{"position":{"x":33198.90105550597,"y":30956.877809899306},"targetPosition":{"x":33028.14648636911,"y":31378.695917323454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9c8b28ef-af88-416c-9262-20efbf357408","savedPayload":{"position":{"x":33028.14648636911,"y":31378.695917323454},"targetPosition":{"x":32835.90089509466,"y":31756.649802761232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"09286632-34ad-4ea0-9f01-32bd89b20900","savedPayload":{"position":{"x":34447.590158460414,"y":31232.025739290348},"targetPosition":{"x":34044.21217345816,"y":31363.108994682723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f75343e2-3c65-413b-85de-8e88a1f91e09","savedPayload":{"position":{"x":34044.21217345816,"y":31363.108994682723},"targetPosition":{"x":33640.74002460985,"y":31494.101999004426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"68074fb6-7ca9-43a7-a83c-abcd0c55148c","savedPayload":{"position":{"x":33640.74002460985,"y":31494.101999004426},"targetPosition":{"x":33239.78472574559,"y":31625.86269368105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"07f812fb-602f-4713-871d-648faa64a6ce","savedPayload":{"position":{"x":33239.78472574559,"y":31625.86269368105},"targetPosition":{"x":32835.90089509466,"y":31756.649802761232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"07c87bc6-f04b-4a08-88c3-82df8036a971","savedPayload":{"position":{"x":33850.367819499166,"y":31107.164291469344},"targetPosition":{"x":33751.92630459747,"y":31519.524189915035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9a120c5b-3fda-4ff3-89af-621d53b2e075","savedPayload":{"position":{"x":33751.92630459747,"y":31519.524189915035},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"d054b93f-3378-49e9-9e18-73373b1ec935","savedPayload":{"position":{"x":34061.47889360183,"y":31200.202061977026},"targetPosition":{"x":33848.155210901954,"y":31560.253992569105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cbc32f34-4189-4526-a323-9291e672495c","savedPayload":{"position":{"x":33848.155210901954,"y":31560.253992569105},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"562f3238-94f0-41af-8d61-f9984bc8bd0b","savedPayload":{"position":{"x":34248.89826260879,"y":31340.441558383638},"targetPosition":{"x":33943.065513621616,"y":31634.31513182773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5b4549d-92bd-4c3e-af81-884899aae8d9","savedPayload":{"position":{"x":33943.065513621616,"y":31634.31513182773},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","id":"ce7a4a64-743a-443d-a825-b02c25d4b55a","savedPayload":{"position":{"x":34389.59498945044,"y":31536.34634291851},"targetPosition":{"x":34013.448225311375,"y":31732.263679781754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4b992367-9f3a-4ce3-b389-2fc84c8cca16","savedPayload":{"position":{"x":34013.448225311375,"y":31732.263679781754},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","id":"a1c10e9c-19b9-4805-b441-ce3ec64b23a1","savedPayload":{"position":{"x":34469.42688721992,"y":31763.970288609766},"targetPosition":{"x":34053.391618664995,"y":31846.123357271776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f5f2b1bb-f847-4994-a1ab-5252c7c685c6","savedPayload":{"position":{"x":34053.391618664995,"y":31846.123357271776},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Side or 1H Extreme or Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\" || (chart.at04hs.bollingerSubChannel.slope === \"Gentle\" && (chart.at01hs.bollingerSubChannel.slope === \"Extreme\" || chart.at01hs.bollingerSubChannel.slope === \"Side\"))","id":"3d26867a-7ffc-4b17-a226-c2cf2d02a1ae","savedPayload":{"position":{"x":34481.870711502044,"y":32004.452875644973},"targetPosition":{"x":34059.63071301428,"y":31966.419472112397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a96f6aed-5ba0-458e-b073-a14a7030a4ce","savedPayload":{"position":{"x":34059.63071301428,"y":31966.419472112397},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"f674d92e-8b5b-4a88-9c97-c0499fea9f41","savedPayload":{"position":{"x":34425.87549450783,"y":32239.301956007203},"targetPosition":{"x":34031.64897146041,"y":32083.89092574789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b0663ef7-ad0e-44eb-8448-87c92b066de1","savedPayload":{"position":{"x":34031.64897146041,"y":32083.89092574789},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","id":"6337812b-5df1-428e-9d36-f7935dde3ca7","savedPayload":{"position":{"x":34305.98828960082,"y":32448.99884859954},"targetPosition":{"x":33971.70269044266,"y":32188.76251868252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cda16118-0ec1-4313-bb27-be56055bb89a","savedPayload":{"position":{"x":33971.70269044266,"y":32188.76251868252},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","id":"d467380e-37f7-4d69-8384-c766fa7511ef","savedPayload":{"position":{"x":34131.9442575213,"y":32616.530009178252},"targetPosition":{"x":33884.62935458651,"y":32272.531065884734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"90afdd8d-1565-42b1-abbb-e88eb2e359db","savedPayload":{"position":{"x":33884.62935458651,"y":32272.531065884734},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 2: 02H, 03H, 04H, 06H, all Up && 2H Steep && 1H, 6H NOT Gentle","code":"chart.at24hs.bollingerChannel.direction + chart.at24hs.bollingerBand.slope > chart.at01hs.rsi14.value","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerSubChannel.direction === \"Up\" && chart.at03hs.bollingerSubChannel.direction === \"Up\" && chart.at04hs.bollingerSubChannel.direction === \"Up\" && chart.at06hs.bollingerSubChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Steep\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\" && chart.at06hs.bollingerSubChannel.slope != \"Gentle\") {false} else {true}","id":"051149b3-b815-4eb2-952c-88317a972764","savedPayload":{"position":{"x":33917.66926583683,"y":32728.305067164874},"targetPosition":{"x":33777.32415729678,"y":32328.419178658256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac3a3676-3fc0-4eed-97c8-51fe93a65256","savedPayload":{"position":{"x":33777.32415729678,"y":32328.419178658256},"targetPosition":{"x":33637.0339345046,"y":31928.112734113376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3583b309-fa26-4e63-bfb2-055d5bad14b7","savedPayload":{"position":{"x":33637.0339345046,"y":31928.112734113376},"targetPosition":{"x":33213.509077296134,"y":31949.716370342587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"1cca5dce-5617-4b2d-b103-68c7289c7912","savedPayload":{"position":{"x":33248.66251833871,"y":31922.655408084436},"targetPosition":{"x":33073.356993272086,"y":32116.668778615298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bdadf3d3-ff21-4ea1-a342-9c135a422a3b","savedPayload":{"position":{"x":33370.94219349302,"y":32092.35851956931},"targetPosition":{"x":33213.509077296134,"y":31949.716370342587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e86cdca6-99e9-487f-b824-af95cf635d1f","savedPayload":{"position":{"x":33213.509077296134,"y":31949.716370342587},"targetPosition":{"x":32835.90089509466,"y":31756.649802761232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"fa8dc2de-7299-4e00-82a7-deb31393b442","savedPayload":{"position":{"x":32835.90089509466,"y":31756.649802761232},"targetPosition":{"x":32433.371579576764,"y":31886.914337943625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"be4be272-6865-445f-81e9-320f8bfdc392","savedPayload":{"position":{"x":34967.124271760935,"y":32358.1785110076},"targetPosition":{"x":34884.7347766961,"y":32665.58211057604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"5bee76dc-6b48-47d0-92c1-be86008a0567","savedPayload":{"position":{"x":36114.12799068074,"y":32336.170693053667},"targetPosition":{"x":35806.871460174916,"y":32418.413004338316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"058c7bc3-1b46-415d-bcf6-b2b260049b34","savedPayload":{"position":{"x":35806.871460174916,"y":32418.413004338316},"targetPosition":{"x":35499.43380969467,"y":32500.74406598618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cba32e81-cca9-4056-bd59-82f986580893","savedPayload":{"position":{"x":35499.43380969467,"y":32500.74406598618},"targetPosition":{"x":35192.04380396341,"y":32583.121051172304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"72bf5a83-c129-4bcb-b196-7efbf38b3122","savedPayload":{"position":{"x":35192.04380396341,"y":32583.121051172304},"targetPosition":{"x":34884.7347766961,"y":32665.58211057604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"502b92e1-1e58-46a5-9ecf-8cc1636f0ff4","savedPayload":{"position":{"x":34884.7347766961,"y":32665.58211057604},"targetPosition":{"x":34660.02936631182,"y":32890.48337181073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"eb4ede91-3ccc-41f8-b54c-8295767f386c","savedPayload":{"position":{"x":34660.02936631182,"y":32890.48337181073},"targetPosition":{"x":34435.67151202602,"y":33115.14655163129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"39c79407-8af5-465e-af51-1c75aad45115","savedPayload":{"position":{"x":35311.11096720446,"y":32816.9272234083},"targetPosition":{"x":35063.64575113468,"y":33016.76264590724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"aa01ada7-95ad-41e6-96f7-5c31702a541e","savedPayload":{"position":{"x":36286.24106064014,"y":33145.81980834591},"targetPosition":{"x":35972.055489563856,"y":33195.34612138585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d717b269-b5ec-4198-b8c4-4191fbbc4b18","savedPayload":{"position":{"x":35972.055489563856,"y":33195.34612138585},"targetPosition":{"x":35657.673132234,"y":33244.878314280504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"5e2b89fd-d5f9-4c8a-98e1-44ff5c2844cd","savedPayload":{"position":{"x":36058.15655754124,"y":33739.29437123348},"targetPosition":{"x":35857.98050868123,"y":33492.17091282344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d715ce3c-8efb-4ff3-bac9-4339b5906a91","savedPayload":{"position":{"x":35857.98050868123,"y":33492.17091282344},"targetPosition":{"x":35657.673132234,"y":33244.878314280504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1133b940-15fd-4255-8099-8c83ebf9ab1d","savedPayload":{"position":{"x":35657.673132234,"y":33244.878314280504},"targetPosition":{"x":35360.66365230035,"y":33130.86179964265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"e6a82789-515c-403d-a11d-9c16d7e1e2d0","savedPayload":{"position":{"x":35360.66365230035,"y":33130.86179964265},"targetPosition":{"x":35063.64575113468,"y":33016.76264590724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"2fbf4e78-500b-4e2a-876b-fec9950bfeb4","savedPayload":{"position":{"x":35063.64575113468,"y":33016.76264590724},"targetPosition":{"x":34749.50080339453,"y":33066.0137817785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7e699a39-d4bc-44d7-bb6c-7813d7d63aeb","savedPayload":{"position":{"x":34749.50080339453,"y":33066.0137817785},"targetPosition":{"x":34435.67151202602,"y":33115.14655163129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"3d73ecde-b6ca-4229-9536-fbc7f87e0d45","savedPayload":{"position":{"x":35001.972454730174,"y":33404.90881119627},"targetPosition":{"x":34718.751802473744,"y":33260.05696886418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c43b5b83-3c68-480e-b390-26c224b63bbf","savedPayload":{"position":{"x":34718.751802473744,"y":33260.05696886418},"targetPosition":{"x":34435.67151202602,"y":33115.14655163129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"1e208de6-1b0c-4754-9b10-41edc1653336","savedPayload":{"position":{"x":34723.83391273956,"y":33682.356075508505},"targetPosition":{"x":34579.63262505743,"y":33398.762441228064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c575ff8-0704-4398-8792-34e0eeb4381f","savedPayload":{"position":{"x":34579.63262505743,"y":33398.762441228064},"targetPosition":{"x":34435.67151202602,"y":33115.14655163129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"05c05d0c-7815-464b-bbf2-f7d2820d0235","savedPayload":{"position":{"x":34435.67151202602,"y":33115.14655163129},"targetPosition":{"x":33180.75535106592,"y":32916.07101014247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"478b1483-d146-4141-b6e7-2e913d285da5","savedPayload":{"position":{"x":33367.5784322329,"y":33173.57800692712},"targetPosition":{"x":33180.75535106592,"y":32916.07101014247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"08bb3184-c06a-43b6-9463-fd922b64abbd","savedPayload":{"position":{"x":33158.957839823925,"y":33124.948458868166},"targetPosition":{"x":32853.356993272086,"y":33076.6687786153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c6b029d3-1de0-4dbf-80bd-e303ae27a2ba","savedPayload":{"position":{"x":33131.10438055651,"y":33230.608107064065},"targetPosition":{"x":33180.75535106592,"y":32916.07101014247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a4386996-dbe4-434c-818b-66ac926fc575","savedPayload":{"position":{"x":33180.75535106592,"y":32916.07101014247},"targetPosition":{"x":32433.371579576764,"y":31886.914337943625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Controlled Run","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"6938be43-dc74-4576-8b0a-8b18bd34792e","savedPayload":{"position":{"x":32052.655649535795,"y":33496.36457838122},"targetPosition":{"x":32096.65981549785,"y":33074.519171615095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"6cefcdbc-918c-4abe-99f9-5a99c391d79b","savedPayload":{"position":{"x":32096.65981549785,"y":33074.519171615095},"targetPosition":{"x":32140.64270658053,"y":32652.206682617852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"901eb16f-14dd-4fd2-81c1-b4713a1b34e0","savedPayload":{"position":{"x":32250.309062987384,"y":32649.586359950557},"targetPosition":{"x":32184.041014524384,"y":32230.18847885705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"0199babe-dfd7-4f18-b9d7-3b73ade997fd","savedPayload":{"position":{"x":31582.494012962958,"y":32962.937014157265},"targetPosition":{"x":31410.280046457636,"y":32575.275710033362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"89e97633-9b3e-42ba-9cf6-bf29d6383a72","savedPayload":{"position":{"x":35114.68579910982,"y":35351.53563650537},"targetPosition":{"x":34955.055100783706,"y":34993.54246316036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"971da4c6-325b-4c78-a025-95dbd138bbc4","savedPayload":{"position":{"x":34955.055100783706,"y":34993.54246316036},"targetPosition":{"x":34795.109639340524,"y":34635.50799960973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2af1c651-e988-4ae0-92a3-d0918b8a1cfe","savedPayload":{"position":{"x":34795.109639340524,"y":34635.50799960973},"targetPosition":{"x":34634.92973533252,"y":34277.38989257793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4e18019c-6173-4b68-b709-174bc220cd55","savedPayload":{"position":{"x":31120.854325706285,"y":32749.006422256185},"targetPosition":{"x":31410.280046457636,"y":32575.275710033362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"a8860a5a-66b5-41f0-8a6c-dac7bf971c9d","savedPayload":{"position":{"x":30218.098378964016,"y":31775.44357488877},"targetPosition":{"x":30641.420921935773,"y":31788.395864739927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"690aeb6d-75ec-45c9-b321-9d943d84df5f","savedPayload":{"position":{"x":30641.420921935773,"y":31788.395864739927},"targetPosition":{"x":31065.15767239706,"y":31801.060086999303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"d691ad30-4129-48d1-9b75-2b2337e409d2","savedPayload":{"position":{"x":30312.735304700313,"y":31410.31946547273},"targetPosition":{"x":30688.782681018638,"y":31605.692657427535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"30880b5e-f66a-4d5a-b112-14bcc8bb9ac9","savedPayload":{"position":{"x":30688.782681018638,"y":31605.692657427535},"targetPosition":{"x":31065.15767239706,"y":31801.060086999303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"8d66b5bd-521c-4d19-9fc0-baa4fb54ad84","savedPayload":{"position":{"x":30556.44880964036,"y":31122.5653875293},"targetPosition":{"x":30810.690604022504,"y":31461.749653777068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c4298d6d-c635-49fe-a517-0dc19531c919","savedPayload":{"position":{"x":30810.690604022504,"y":31461.749653777068},"targetPosition":{"x":31065.15767239706,"y":31801.060086999303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"67b51901-a5fe-4fad-aad4-fc4d756b09cc","savedPayload":{"position":{"x":30900.789650854644,"y":30969.119767215772},"targetPosition":{"x":30982.937053526082,"y":31385.017133242192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b051770c-7c9c-4636-86c8-d3b419f9a8bd","savedPayload":{"position":{"x":30982.937053526082,"y":31385.017133242192},"targetPosition":{"x":31065.15767239706,"y":31801.060086999303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"8d54874e-6c21-434a-80fa-492bf2a9be2b","savedPayload":{"position":{"x":31276.64844988148,"y":30980.361588941225},"targetPosition":{"x":31171.060852877814,"y":31390.702278688343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9aa25c88-a620-42f1-b1e8-403c5c8718b1","savedPayload":{"position":{"x":31171.060852877814,"y":31390.702278688343},"targetPosition":{"x":31065.15767239706,"y":31801.060086999303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\"","id":"e8c97495-8098-4209-a220-6c399baba0f3","savedPayload":{"position":{"x":31610.0599232527,"y":31161.58973768663},"targetPosition":{"x":31338.32832705977,"y":31477.72508842297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f39ad55a-1988-4ac8-9d5c-99054f951179","savedPayload":{"position":{"x":31338.32832705977,"y":31477.72508842297},"targetPosition":{"x":31065.15767239706,"y":31801.060086999303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"abaf1d9b-b5f9-4f8f-9a59-10936c3ea7b1","savedPayload":{"position":{"x":31065.15767239706,"y":31801.060086999303},"targetPosition":{"x":31237.76485603842,"y":32188.236450221637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f9636b68-93f0-4100-8046-1d62eed73501","savedPayload":{"position":{"x":31237.76485603842,"y":32188.236450221637},"targetPosition":{"x":31410.280046457636,"y":32575.275710033362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"274cc7b8-9ab0-4f9a-9302-3357cfcac9da"}}}],"announcements":[],"id":"b1d129c5-5f5e-4b1a-a2d6-b79561d2a6ce","savedPayload":{"position":{"x":31410.280046457636,"y":32575.275710033362},"targetPosition":{"x":31797.26417642712,"y":32402.646659011032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"640cd6a8-a447-43ca-84f9-7dc5e6c8c826","savedPayload":{"position":{"x":30847.41292297006,"y":33144.808922085795},"targetPosition":{"x":30998.534423684807,"y":32747.451613870147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"9502bdd5-310a-4048-81ca-1eb0afe3c99d","savedPayload":{"position":{"x":30205.803426783637,"y":34001.091193026725},"targetPosition":{"x":30249.917950331896,"y":33577.896743108766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cb42b9eb-16cb-4bb4-af70-570fc4d1cd29","savedPayload":{"position":{"x":30249.917950331896,"y":33577.896743108766},"targetPosition":{"x":30294.134801020176,"y":33154.57222324627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"da7a29f2-93be-4ce8-aeb0-f286b5710891","savedPayload":{"position":{"x":29796.111617502072,"y":33843.85742346663},"targetPosition":{"x":30044.979866313377,"y":33499.24970649383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b4748a9d-7f41-4ce0-92ea-267488fd2e02","savedPayload":{"position":{"x":30044.979866313377,"y":33499.24970649383},"targetPosition":{"x":30294.134801020176,"y":33154.57222324627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"792355fa-6601-4a41-b673-b814127b3524","savedPayload":{"position":{"x":29519.96605719332,"y":33502.923264063706},"targetPosition":{"x":29906.846942045566,"y":33328.73011607854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4cd7afea-ce88-4111-b74e-dc48e34bcee5","savedPayload":{"position":{"x":29906.846942045566,"y":33328.73011607854},"targetPosition":{"x":30294.134801020176,"y":33154.57222324627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"835d94b1-7b62-43bc-bbda-34184c5a5410","savedPayload":{"position":{"x":29451.262472325034,"y":33070.381351734206},"targetPosition":{"x":29872.476892943403,"y":33112.352507651274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"66c6c8dc-f8b2-4534-aeb1-5f7aea412564","savedPayload":{"position":{"x":29872.476892943403,"y":33112.352507651274},"targetPosition":{"x":30294.134801020176,"y":33154.57222324627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side or Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\"","id":"4734e468-3fd1-4b7e-8361-66dea0f1d3c1","savedPayload":{"position":{"x":29608.402791503686,"y":32660.871196158085},"targetPosition":{"x":29951.00436379901,"y":32907.53037466467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b9f90ab7-e386-4fa3-a326-d99ce319edcd","savedPayload":{"position":{"x":29951.00436379901,"y":32907.53037466467},"targetPosition":{"x":30294.134801020176,"y":33154.57222324627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"26ef5972-8cc4-4b0d-92a4-b7da565b84b4","savedPayload":{"position":{"x":30294.134801020176,"y":33154.57222324627},"targetPosition":{"x":30681.667674684573,"y":32980.164487420945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9be98459-d007-4f66-94ac-cc7b6c6ad81c","savedPayload":{"position":{"x":30681.667674684573,"y":32980.164487420945},"targetPosition":{"x":30998.534423684807,"y":32747.451613870147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"274cc7b8-9ab0-4f9a-9302-3357cfcac9da"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"c959c1b6-aec3-4db7-a572-477f1ea2c132","savedPayload":{"position":{"x":29433.709225515253,"y":32793.11947467331},"targetPosition":{"x":29820.425136437625,"y":32619.15623349406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31460537-bb42-499a-9645-fca83618f4a5","savedPayload":{"position":{"x":29820.425136437625,"y":32619.15623349406},"targetPosition":{"x":30207.276664433924,"y":32445.696257695414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"b3e36006-93f4-4852-a7a7-d612a7e7ec27","savedPayload":{"position":{"x":29423.284124799575,"y":32145.37524164802},"targetPosition":{"x":29812.2635139139,"y":32295.247107792475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b8fe60bd-1dbd-458d-bdfd-1accfdab0b7c","savedPayload":{"position":{"x":29812.2635139139,"y":32295.247107792475},"targetPosition":{"x":30207.276664433924,"y":32445.696257695414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"6b79a9e3-796e-4db6-8a5c-0bc0bd875f45","savedPayload":{"position":{"x":29863.249250356712,"y":31674.039657913658},"targetPosition":{"x":30035.18086627339,"y":32059.80702167967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1d09d25e-54eb-4d39-bea6-44f8492a2d10","savedPayload":{"position":{"x":30035.18086627339,"y":32059.80702167967},"targetPosition":{"x":30207.276664433924,"y":32445.696257695414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f3ce7cba-7352-4634-a05d-07399ba679f2","savedPayload":{"position":{"x":30207.276664433924,"y":32445.696257695414},"targetPosition":{"x":30603.028520115917,"y":32596.356054088126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"23ebc628-449c-43d8-97a2-28c23bb4dda7","savedPayload":{"position":{"x":30603.028520115917,"y":32596.356054088126},"targetPosition":{"x":30998.534423684807,"y":32747.451613870147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"b1d129c5-5f5e-4b1a-a2d6-b79561d2a6ce"}}}],"announcements":[],"id":"0995a46a-7564-4e4a-bdf9-d1dd437c75c6","savedPayload":{"position":{"x":30998.534423684807,"y":32747.451613870147},"targetPosition":{"x":31410.280046457636,"y":32575.275710033362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"12d58077-9b90-44f6-9d1d-5247aad7b0a4","savedPayload":{"position":{"x":30550.04180271156,"y":33329.80692424424},"targetPosition":{"x":30593.773775288653,"y":32906.46681785033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"af3238a0-9671-4ef7-90d8-802f9255d298","savedPayload":{"position":{"x":34353.31566433633,"y":36371.478113298595},"targetPosition":{"x":34107.73400761102,"y":36065.577333894784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2191cdaf-d396-458b-80e3-d67c69976c29","savedPayload":{"position":{"x":34107.73400761102,"y":36065.577333894784},"targetPosition":{"x":33865.53761248559,"y":35764.117352789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"fa54d65e-9ed1-42f1-bcfe-c774607c7ae3","savedPayload":{"position":{"x":33781.1348043335,"y":36545.510360363085},"targetPosition":{"x":33823.36067956762,"y":36154.932202560594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"de06b55c-392c-4032-b8a9-b1810881be63","savedPayload":{"position":{"x":33823.36067956762,"y":36154.932202560594},"targetPosition":{"x":33865.53761248559,"y":35764.117352789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Up || Side, Gentle or Medium","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Up\" || chart.at01hs.bollingerSubChannel.slope === \"Side\" || chart.at01hs.bollingerSubChannel.slope === \"Gentle\" || chart.at01hs.bollingerSubChannel.slope === \"Medium\"","id":"4eca07e4-a6af-46c8-8099-fd4599755539","savedPayload":{"position":{"x":33253.70014218347,"y":36259.27754119686},"targetPosition":{"x":33559.59724286728,"y":36011.788615334415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a6ee99c3-005b-4b96-be05-579230e6af8b","savedPayload":{"position":{"x":33559.59724286728,"y":36011.788615334415},"targetPosition":{"x":33865.53761248559,"y":35764.117352789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fb58e58-feea-47c1-b7a6-0da4777ff32f","savedPayload":{"position":{"x":33865.53761248559,"y":35764.117352789},"targetPosition":{"x":33915.59035931588,"y":35356.68995455061},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3ca96593-db50-40f0-a191-bfdffe79fdf8","savedPayload":{"position":{"x":30172.077781119075,"y":32863.606917906094},"targetPosition":{"x":30593.773775288653,"y":32906.46681785033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"b1d129c5-5f5e-4b1a-a2d6-b79561d2a6ce"}}}],"announcements":[],"id":"274cc7b8-9ab0-4f9a-9302-3357cfcac9da","savedPayload":{"position":{"x":30593.773775288653,"y":32906.46681785033},"targetPosition":{"x":30998.534423684807,"y":32747.451613870147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5969717f-fd1e-4579-a80b-5e66723412a9","savedPayload":{"position":{"x":31934.3203114876,"y":32573.628726629446},"targetPosition":{"x":32184.041014524384,"y":32230.18847885705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"ab76811a-5688-40bb-bcc9-dc754dea83c1","savedPayload":{"position":{"x":31829.79809078839,"y":32538.006502876146},"targetPosition":{"x":31767.25,"y":32140.22198731501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3add1401-37ae-4ab1-9bfd-bd2409be15ee","savedPayload":{"position":{"x":31765.00069416873,"y":32296.572495929217},"targetPosition":{"x":32184.041014524384,"y":32230.18847885705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"455d4f49-eb65-49f8-a6d5-2bdd44e8bbac","savedPayload":{"position":{"x":32184.041014524384,"y":32230.18847885705},"targetPosition":{"x":32433.371579576764,"y":31886.914337943625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"1805fb84-f9aa-4376-b68b-7d009c1f35ad","savedPayload":{"position":{"x":31614.787231440176,"y":31844.739900906556},"targetPosition":{"x":32030.194776844528,"y":31756.418543665284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"53916478-d8e6-4a30-8c30-7eb64eab5232","savedPayload":{"position":{"x":31726.14930563862,"y":32262.17728231012},"targetPosition":{"x":31945.401949358587,"y":31923.768514071446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ebcdfc8a-8348-4b1d-ad3a-630bb68bcf95","savedPayload":{"position":{"x":31673.637620746475,"y":31525.40620600377},"targetPosition":{"x":32030.194776844528,"y":31756.418543665284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0ab9c0ab-a710-4da3-adb1-9e2f837da5fc","savedPayload":{"position":{"x":32030.194776844528,"y":31756.418543665284},"targetPosition":{"x":32433.371579576764,"y":31886.914337943625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a1b63f90-0ec5-4eb4-a51e-88852cc95049","savedPayload":{"position":{"x":32433.371579576764,"y":31886.914337943625},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S4 - 8H Up","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"565db073-2544-4f1e-8ffd-450fb4e10feb","savedPayload":{"position":{"x":33016.108423138045,"y":30708.61650625706},"targetPosition":{"x":33001.605706827475,"y":31117.1437175863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1f26cf4a-76fc-4186-9b3b-9010f9f3da7c","savedPayload":{"position":{"x":33001.605706827475,"y":31117.1437175863},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"f288ec4c-d242-4138-a291-4e97fcec4e8e","savedPayload":{"position":{"x":33294.14747935223,"y":30768.08538063477},"targetPosition":{"x":33140.33062460357,"y":31147.607021558273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eb5bf914-8163-453a-afa5-95f22ba39ead","savedPayload":{"position":{"x":33140.33062460357,"y":31147.607021558273},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"0638ff08-302c-488f-8a8b-be0cd0454e49","savedPayload":{"position":{"x":33536.5418717862,"y":30918.780123840108},"targetPosition":{"x":33262.102839579675,"y":31222.758503492238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0c8e03c5-c1b2-4aaf-bddc-874c50cfbbba","savedPayload":{"position":{"x":33262.102839579675,"y":31222.758503492238},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"8H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at08hs.bollingerChannel.direction === \"Up\"","id":"77dbd8ad-81fc-4394-93d4-e84e931970f7","savedPayload":{"position":{"x":33711.37061669641,"y":31142.31816964065},"targetPosition":{"x":33349.696532391084,"y":31334.167601834975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78fae417-cc69-4a59-8edf-5d2e7102b50f","savedPayload":{"position":{"x":33349.696532391084,"y":31334.167601834975},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"12H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at12hs.bollingerChannel.direction === \"Down\"","id":"f513cfb2-d7b3-442b-8d72-8bedb02e7ddf","savedPayload":{"position":{"x":33799.103478253135,"y":31412.55479282884},"targetPosition":{"x":33393.62871134569,"y":31469.252426709958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4ab49bb6-b9d3-44a1-8fa5-6d5f7b9d3b3f","savedPayload":{"position":{"x":33393.62871134569,"y":31469.252426709958},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","id":"09bdc89a-fa30-46cc-9da0-aa16844e829b","savedPayload":{"position":{"x":33789.194999211526,"y":31696.0948743394},"targetPosition":{"x":33388.694866665915,"y":31611.066158039575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2aae14ee-14b3-4c94-9394-d64432517632","savedPayload":{"position":{"x":33388.694866665915,"y":31611.066158039575},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H NOT Extreme","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope != \"Extreme\"","id":"a2059ed1-a903-483c-a5b1-a44203fb670f","savedPayload":{"position":{"x":33682.80126272068,"y":31959.687980869192},"targetPosition":{"x":33335.44879159541,"y":31742.939959405492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2ca6efe4-43ac-45a1-ba84-5215d33f32a6","savedPayload":{"position":{"x":33335.44879159541,"y":31742.939959405492},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Deviation > 40","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 25","id":"3b0663ea-9168-4101-bd49-a4fa14473dc7","savedPayload":{"position":{"x":33492.81527571664,"y":32171.088329177917},"targetPosition":{"x":33240.16363723661,"y":31848.699229038637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6f3289e9-c257-4953-ae25-664416db52a7","savedPayload":{"position":{"x":33240.16363723661,"y":31848.699229038637},"targetPosition":{"x":32987.75009839662,"y":31526.263027016277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"977e6e41-dca1-4b42-9e82-3e2eeae3c220","savedPayload":{"position":{"x":32987.75009839662,"y":31526.263027016277},"targetPosition":{"x":32607.26331447191,"y":31676.362232420466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"260de0f8-58ff-477f-aadb-f61a4043e3a8","savedPayload":{"position":{"x":32607.26331447191,"y":31676.362232420466},"targetPosition":{"x":32218.203346952138,"y":31802.987156123374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"a2b6bf13-42e1-428f-9691-42be919fa8c1","savedPayload":{"position":{"x":33677.75850723514,"y":32546.480820378853},"targetPosition":{"x":33313.07984357831,"y":32360.792558224523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"05892d30-611b-4f6e-93ae-3f484b208fe5","savedPayload":{"position":{"x":33313.07984357831,"y":32360.792558224523},"targetPosition":{"x":32948.32328257087,"y":32175.005781011547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f6bb3530-fc04-47bb-b335-1f90463c6a04","savedPayload":{"position":{"x":32948.32328257087,"y":32175.005781011547},"targetPosition":{"x":32583.454684770324,"y":31989.358256691274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3046ad00-d3de-4458-80db-287144ff86fa","savedPayload":{"position":{"x":32583.454684770324,"y":31989.358256691274},"targetPosition":{"x":32218.203346952138,"y":31802.987156123374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"3847310d-3d70-43f6-85a1-8a62eec1d4d3","savedPayload":{"position":{"x":33387.42539740356,"y":32116.794527589384},"targetPosition":{"x":33018.0279860199,"y":32292.436249824437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"680fec1e-3d4c-4b3b-82a6-0f45a34f9776","savedPayload":{"position":{"x":33018.0279860199,"y":32292.436249824437},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"ffbb6568-c112-46de-8097-fbf993a8232f","savedPayload":{"position":{"x":33465.571106445495,"y":32425.43478155105},"targetPosition":{"x":33056.74325525523,"y":32446.256555772732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f0830878-6dd9-4657-a0b5-906ff9296559","savedPayload":{"position":{"x":33056.74325525523,"y":32446.256555772732},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"d7a8fc7d-57a2-4340-bb12-627c667324e6","savedPayload":{"position":{"x":33419.45900626823,"y":32740.505273158957},"targetPosition":{"x":33033.752962097045,"y":32603.794747800173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e841acd3-9785-49f5-be08-5aa63d3df039","savedPayload":{"position":{"x":33033.752962097045,"y":32603.794747800173},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"8H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at08hs.bollingerChannel.direction === \"Up\"","id":"60872ff6-a88d-4e3c-9069-4337d9e77653","savedPayload":{"position":{"x":33256.14231973845,"y":33014.56892092391},"targetPosition":{"x":32952.065637836226,"y":32740.884130165858},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"969eebbc-1e68-4dc7-bb42-5fd1e92648b3","savedPayload":{"position":{"x":32952.065637836226,"y":32740.884130165858},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"12H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at12hs.bollingerChannel.direction === \"Down\"","id":"e1f6e5b8-70b1-44b9-b127-099a28b39e5f","savedPayload":{"position":{"x":33000.20306486545,"y":33205.3420591731},"targetPosition":{"x":32824.05870270297,"y":32836.33950328082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1d87e62c-73ff-434b-ac60-e7afa7035b78","savedPayload":{"position":{"x":32824.05870270297,"y":32836.33950328082},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","id":"4dbcbf0e-b029-40db-9b3e-422ccb1d1642","savedPayload":{"position":{"x":32690.53788200545,"y":33283.801184534575},"targetPosition":{"x":32669.20586962084,"y":32875.59460029089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed71b78d-b409-451d-9e23-72fde4c6ac59","savedPayload":{"position":{"x":32669.20586962084,"y":32875.59460029089},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Deviation > 40","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 25","id":"ca95ffdd-a14f-4985-84b7-2a482eb8091d","savedPayload":{"position":{"x":32374.860433575843,"y":33237.99653746514},"targetPosition":{"x":32511.293905353414,"y":32852.60908935485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"80a35c8a-7650-442f-82de-b9acb0c09988","savedPayload":{"position":{"x":32511.293905353414,"y":32852.60908935485},"targetPosition":{"x":32647.89809256855,"y":32466.81884324842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"22a72082-528a-440b-8e3f-374d612c4d51","savedPayload":{"position":{"x":32647.89809256855,"y":32466.81884324842},"targetPosition":{"x":32343.994367056974,"y":32192.577730607023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"db4a7c92-b806-4329-9300-9b83a3ad036c","savedPayload":{"position":{"x":32267.555525066622,"y":32166.208616784148},"targetPosition":{"x":32092.25,"y":32360.22198731501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6bebda83-5fa6-40c6-8b9d-193636aa5ff8","savedPayload":{"position":{"x":32353.99815107377,"y":32397.54225711615},"targetPosition":{"x":32343.994367056974,"y":32192.577730607023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9d98dc4-e354-4357-99c8-eaa829f874d7","savedPayload":{"position":{"x":32343.994367056974,"y":32192.577730607023},"targetPosition":{"x":32218.203346952138,"y":31802.987156123374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"0bf02e1f-d661-437b-85b0-b31e57707199","savedPayload":{"position":{"x":32218.203346952138,"y":31802.987156123374},"targetPosition":{"x":31854.611783869535,"y":31617.461964697784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"283c986f-f9e6-4db2-a7cf-31df9bc42e21","savedPayload":{"position":{"x":33262.348283073654,"y":33668.26110625135},"targetPosition":{"x":32996.16226727139,"y":33821.48103036987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"7e24efcb-8efd-4f21-846e-c1c9be5e4dc0","savedPayload":{"position":{"x":35661.5330621917,"y":32460.96477728643},"targetPosition":{"x":35395.80978722638,"y":32307.691972974666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"151ea590-9f96-4956-a7e8-1ae8ed2497b1","savedPayload":{"position":{"x":35395.80978722638,"y":32307.691972974666},"targetPosition":{"x":35129.93735813902,"y":32154.346004055602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"af5a4bfb-1676-4497-ad6f-8da3ad1154a1","savedPayload":{"position":{"x":35129.93735813902,"y":32154.346004055602},"targetPosition":{"x":34864.21598400471,"y":32001.112915297275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0c8cf0e4-2be0-4010-b296-400c3413dbfe","savedPayload":{"position":{"x":34864.21598400471,"y":32001.112915297275},"targetPosition":{"x":32996.16226727139,"y":33821.48103036987},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"80a6f7ab-286d-4f4e-af25-ba3f60432087","savedPayload":{"position":{"x":32996.16226727139,"y":33821.48103036987},"targetPosition":{"x":32689.147179694144,"y":33821.48199786943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6ccb7dd5-015c-4d99-855a-4c51c8d31c1a","savedPayload":{"position":{"x":32689.147179694144,"y":33821.48199786943},"targetPosition":{"x":32382.725700846328,"y":33821.60989461435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"cf1fe591-e95e-49b1-9917-696fd2b69ea4","savedPayload":{"position":{"x":33184.71999818604,"y":34214.11641349901},"targetPosition":{"x":32879.1540673357,"y":34182.00430123203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"ac6e1c39-95ac-485c-b9c8-dddefff2fe1c","savedPayload":{"position":{"x":33634.126653251245,"y":35099.63359407601},"targetPosition":{"x":33383.31078816607,"y":34919.700064680575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6d2069d0-7a7b-478c-b682-81e52abc066a","savedPayload":{"position":{"x":33382.25050178636,"y":34920.44290986782},"targetPosition":{"x":33132.43780807961,"y":34740.48684695961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"bde76cfe-6402-4245-883b-9f5b50db5c52","savedPayload":{"position":{"x":33082.77997596954,"y":35350.85551519918},"targetPosition":{"x":33103.89082700777,"y":35043.21827334428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"697829a6-b00e-4b70-99a5-c109263e5ca3","savedPayload":{"position":{"x":33101.38914931789,"y":35045.366536668065},"targetPosition":{"x":33132.43780807961,"y":34740.48684695961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b43a31b0-a9ed-4e41-ae4c-427924f40c59","savedPayload":{"position":{"x":33129.1780223032,"y":34742.82310819165},"targetPosition":{"x":33004.26762261222,"y":34462.6015445682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1c6e5b5b-6ac5-4693-94dd-45c76fdf2b96","savedPayload":{"position":{"x":33003.93138154689,"y":34462.70823485492},"targetPosition":{"x":32879.1540673357,"y":34182.00430123203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"0b1c973a-ce4a-47bd-90a1-d306b30d12aa","savedPayload":{"position":{"x":32878.67130061081,"y":34182.98753017021},"targetPosition":{"x":32630.566126111215,"y":34002.25393399775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04dc4bc7-dcaf-4b43-8418-e050d05c8952","savedPayload":{"position":{"x":32630.39594770166,"y":34002.13102715508},"targetPosition":{"x":32382.725700846328,"y":33821.60989461435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"eee941cf-f98c-4dd0-92fa-815fe2c10865","savedPayload":{"position":{"x":32571.120782001806,"y":34406.17252734529},"targetPosition":{"x":32476.87909012684,"y":34113.938241438496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ae433b8c-e6fd-4241-bbe3-2a2cd27ce009","savedPayload":{"position":{"x":32476.82545458858,"y":34113.76990798757},"targetPosition":{"x":32382.725700846328,"y":33821.60989461435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"117adca4-9252-45f2-84b6-6391fbfcb63b","savedPayload":{"position":{"x":32192.68544723151,"y":34405.61314236691},"targetPosition":{"x":32287.633187524032,"y":34113.59824941377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"67dd3e52-2d23-48a0-a7d0-56f7b60e6832","savedPayload":{"position":{"x":32287.559875555915,"y":34113.432909927375},"targetPosition":{"x":32382.725700846328,"y":33821.60989461435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7165c7fa-fb68-40ee-bfb7-2317a0defd40","savedPayload":{"position":{"x":32382.897645029716,"y":33821.819273275294},"targetPosition":{"x":31662.56404301089,"y":32829.66381673354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"b13321e7-009a-4c2e-bc8c-f1b0bdb4dd7b","savedPayload":{"position":{"x":31614.527267611713,"y":33132.96245280527},"targetPosition":{"x":31662.56404301089,"y":32829.66381673354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"9331e3ec-0b89-478a-9910-36fac6843934","savedPayload":{"position":{"x":31726.85084655184,"y":32860.50166756788},"targetPosition":{"x":31421.25,"y":32812.22198731501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5456a919-1f27-4bc1-80de-14aeb1dd2010","savedPayload":{"position":{"x":31414.04315714644,"y":33010.32122662356},"targetPosition":{"x":31662.56404301089,"y":32829.66381673354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2e4981ca-a802-4941-8ed8-563a3e6950ed","savedPayload":{"position":{"x":31662.56404301089,"y":32829.66381673354},"targetPosition":{"x":31854.611783869535,"y":31617.461964697784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Slow Run","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"53f5b5c3-ba67-453c-9c9f-4ce573a45cf7","savedPayload":{"position":{"x":30500.89247017438,"y":32459.578297266748},"targetPosition":{"x":30819.036958787143,"y":32201.72019233247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"9f500e15-05a0-49f2-acb6-22dc52e3a776","savedPayload":{"position":{"x":30819.036958787143,"y":32201.72019233247},"targetPosition":{"x":31150.975630250297,"y":31932.866520667907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48f10387-f326-4021-ae7e-bf0c89f12f0e","savedPayload":{"position":{"x":31208.328337171784,"y":32013.008173556012},"targetPosition":{"x":31448.949834379793,"y":31681.57948129423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"d2f712ac-98dc-41dc-b29e-260334b7cd69","savedPayload":{"position":{"x":30514.18167577269,"y":31761.2170374418},"targetPosition":{"x":30661.02568754195,"y":31379.194283221575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"629a5ecb-7ade-4453-89bb-1d1c5d5f96d9","savedPayload":{"position":{"x":31452.62521613617,"y":35704.649175755076},"targetPosition":{"x":31306.38507672166,"y":35392.89905014682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c9b1b192-1698-44a7-a0f5-20d21088f280","savedPayload":{"position":{"x":31306.38507672166,"y":35392.89905014682},"targetPosition":{"x":31164.240833397416,"y":35074.037476121404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0402e263-ac5c-4546-be68-8f33fdbf8666","savedPayload":{"position":{"x":31164.240833397416,"y":35074.037476121404},"targetPosition":{"x":31021.438921316847,"y":34750.86973446636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1fc1bb7a-a52b-4ce2-b17b-95194de42c8a","savedPayload":{"position":{"x":30296.68637656971,"y":31322.79310193876},"targetPosition":{"x":30661.02568754195,"y":31379.194283221575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"a0b6604b-8744-468d-8eb8-37266a7790bb","savedPayload":{"position":{"x":30438.724191200963,"y":29978.473640966942},"targetPosition":{"x":30695.912811285634,"y":30296.608544153656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7a6659c-b0db-4966-875f-4f3c22448e5f","savedPayload":{"position":{"x":30695.912811285634,"y":30296.608544153656},"targetPosition":{"x":30953.245579650113,"y":30614.81281670587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"bba2d293-88c4-492f-94af-1b9619f740fd","savedPayload":{"position":{"x":30825.47049961038,"y":29806.19925833095},"targetPosition":{"x":30889.3671042988,"y":30210.385421398318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"20aebaee-eb59-4c3f-8c59-39349e032515","savedPayload":{"position":{"x":30889.3671042988,"y":30210.385421398318},"targetPosition":{"x":30953.245579650113,"y":30614.81281670587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"8419c8f8-b2b3-4d98-99e8-2506e40bdb02","savedPayload":{"position":{"x":31245.840967273478,"y":29850.337168761183},"targetPosition":{"x":31099.60147314376,"y":30232.46849471163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0d40d31a-b3d2-4213-9ec0-16dfad84800c","savedPayload":{"position":{"x":31099.60147314376,"y":30232.46849471163},"targetPosition":{"x":30953.245579650113,"y":30614.81281670587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"1f20f276-1067-413d-9855-d5a8c3bf4dd5","savedPayload":{"position":{"x":31588.106924305583,"y":30098.824371705417},"targetPosition":{"x":31270.79628296104,"y":30356.84452509362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5a699f92-494e-4078-b641-1c9c57ffc366","savedPayload":{"position":{"x":31270.79628296104,"y":30356.84452509362},"targetPosition":{"x":30953.245579650113,"y":30614.81281670587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"8522cf28-0d47-4049-a2d0-f859792cc083","savedPayload":{"position":{"x":31745.815505511848,"y":30486.82650760695},"targetPosition":{"x":31356.715958954213,"y":30550.219742514226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0c5c7d7b-590f-4902-b44d-8609741d2b0c","savedPayload":{"position":{"x":31356.715958954213,"y":30550.219742514226},"targetPosition":{"x":30953.245579650113,"y":30614.81281670587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa9bda47-780e-48ec-97bf-52f713be6d1c","savedPayload":{"position":{"x":30953.245579650113,"y":30614.81281670587},"targetPosition":{"x":30807.09852676496,"y":30997.07900762244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0905efc2-d8c9-4b8b-b09f-de915fca26e4","savedPayload":{"position":{"x":30807.09852676496,"y":30997.07900762244},"targetPosition":{"x":30661.02568754195,"y":31379.194283221575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"dc4b92b2-3855-4cc7-84f5-20cc259c1634"}}}],"announcements":[],"id":"e6304ea5-e683-49c1-8e84-e2bc119565fa","savedPayload":{"position":{"x":30661.02568754195,"y":31379.194283221575},"targetPosition":{"x":31068.629399090474,"y":31535.33551862273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"73870f3c-4fc8-464c-be6a-f5e397ee044e","savedPayload":{"position":{"x":29901.249484375345,"y":31377.094167262778},"targetPosition":{"x":30274.70605518238,"y":31210.2377720679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"bc212a30-b2e9-435c-84a8-e505019c0570","savedPayload":{"position":{"x":28893.406176646076,"y":31520.778332079593},"targetPosition":{"x":29212.07710550547,"y":31264.012686794093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"19c71956-4d1e-4355-826e-5bc25d09fdc3","savedPayload":{"position":{"x":29212.07710550547,"y":31264.012686794093},"targetPosition":{"x":29531.831887857006,"y":31006.50215332862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"31e8935e-497f-47eb-9466-900faced609c","savedPayload":{"position":{"x":28721.087664239905,"y":31134.011329246656},"targetPosition":{"x":29125.8628289353,"y":31070.501110683115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"506df2ab-b891-4709-84e6-b773c8743abf","savedPayload":{"position":{"x":29125.8628289353,"y":31070.501110683115},"targetPosition":{"x":29531.831887857006,"y":31006.50215332862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"c1e44382-1537-453b-9f6c-52ef913228aa","savedPayload":{"position":{"x":28765.22117439923,"y":30713.57003149922},"targetPosition":{"x":29147.944257952,"y":30860.18192434744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"928db494-0024-4ed4-a407-84087efb0704","savedPayload":{"position":{"x":29147.944257952,"y":30860.18192434744},"targetPosition":{"x":29531.831887857006,"y":31006.50215332862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"8bae0609-ccff-480d-b382-b56f22ec8dc4","savedPayload":{"position":{"x":29013.97083829324,"y":30370.97096869017},"targetPosition":{"x":29272.351997056765,"y":30688.807256238648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"98ac2a8f-4541-46de-8e01-f9709d6b195f","savedPayload":{"position":{"x":29272.351997056765,"y":30688.807256238648},"targetPosition":{"x":29531.831887857006,"y":31006.50215332862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"a5a3a569-6a05-4fd0-8c15-22d5e5d1b148","savedPayload":{"position":{"x":29400.59541225859,"y":30198.51224944108},"targetPosition":{"x":29465.694395008868,"y":30602.505107002034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2adc3c50-f284-4fb1-9f79-b077a54b5046","savedPayload":{"position":{"x":29465.694395008868,"y":30602.505107002034},"targetPosition":{"x":29531.831887857006,"y":31006.50215332862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c91df057-7904-431b-b997-8fbb2afada1f","savedPayload":{"position":{"x":29531.831887857006,"y":31006.50215332862},"targetPosition":{"x":29915.35006651546,"y":31152.79468292573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8196d5fe-af67-4302-84d1-f95279fb2075","savedPayload":{"position":{"x":29915.35006651546,"y":31152.79468292573},"targetPosition":{"x":30274.70605518238,"y":31210.2377720679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"dc4b92b2-3855-4cc7-84f5-20cc259c1634"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"60d1211f-6279-4c80-abe5-e727a70aea22","savedPayload":{"position":{"x":34435.312104755925,"y":37604.797131887906},"targetPosition":{"x":34371.381595713305,"y":37200.520638670896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6659d86a-2e52-48b2-bcc4-5f5b43b3907e","savedPayload":{"position":{"x":34371.381595713305,"y":37200.520638670896},"targetPosition":{"x":34301.70161318501,"y":36759.80355610525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"5ce2e13e-4b4f-424b-b4ee-1741c013690b","savedPayload":{"position":{"x":33637.05690195842,"y":37298.380990103775},"targetPosition":{"x":33955.25921385612,"y":37040.548458870755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38aa2600-90dc-4c6b-be17-a08ee9c829b3","savedPayload":{"position":{"x":33955.25921385612,"y":37040.548458870755},"targetPosition":{"x":34301.70161318501,"y":36759.80355610525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fd092801-0b6b-4f09-bbb3-b16fe1144ae3","savedPayload":{"position":{"x":29942.550949462675,"y":30461.549907287925},"targetPosition":{"x":30108.751431134442,"y":30835.89159387049},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4b4f5de5-723c-4d6e-b26e-50ee87671f48","savedPayload":{"position":{"x":30108.751431134442,"y":30835.89159387049},"targetPosition":{"x":30274.70605518238,"y":31210.2377720679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e6304ea5-e683-49c1-8e84-e2bc119565fa"}}}],"announcements":[],"id":"ad2a51aa-b179-457e-9704-5c9b1a8db72e","savedPayload":{"position":{"x":30274.70605518238,"y":31210.2377720679},"targetPosition":{"x":30661.02568754195,"y":31379.194283221575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"d29e9a58-79bb-445f-b51a-e5b86937aa8c","savedPayload":{"position":{"x":29569.89733993556,"y":31298.831477570733},"targetPosition":{"x":29887.28573602895,"y":31041.38429809122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"59efd870-0af2-4d5c-a78c-281b71f00497","savedPayload":{"position":{"x":35010.10130049439,"y":37933.36740804276},"targetPosition":{"x":34843.70421091391,"y":37559.42115267648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31c9eb9e-6567-4866-b3de-cf7ac4fa0126","savedPayload":{"position":{"x":34843.70421091391,"y":37559.42115267648},"targetPosition":{"x":34677.20226770342,"y":37185.26541585529},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"0dd58774-bae1-48f4-bb2a-ff3af03d885b","savedPayload":{"position":{"x":34196.30278110237,"y":37847.83226499006},"targetPosition":{"x":34436.72320963445,"y":37516.627594905825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8894b26-93ec-450a-9cbf-2462e442a7bc","savedPayload":{"position":{"x":34436.72320963445,"y":37516.627594905825},"targetPosition":{"x":34677.20226770342,"y":37185.26541585529},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1141841-95d0-4c98-b77e-16eb893e6b19","savedPayload":{"position":{"x":34677.20226770342,"y":37185.26541585529},"targetPosition":{"x":34719.74774859792,"y":36777.73345672497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5a854197-4f85-4f31-bf5e-c9acff5a60cc","savedPayload":{"position":{"x":29630.2706807204,"y":30722.685610075176},"targetPosition":{"x":29887.28573602895,"y":31041.38429809122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e6304ea5-e683-49c1-8e84-e2bc119565fa"}}}],"announcements":[],"id":"dc4b92b2-3855-4cc7-84f5-20cc259c1634","savedPayload":{"position":{"x":29887.28573602895,"y":31041.38429809122},"targetPosition":{"x":30274.70605518238,"y":31210.2377720679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6b48bcff-79c4-4705-82ac-3666914c8628","savedPayload":{"position":{"x":31044.29603098015,"y":31745.267981535948},"targetPosition":{"x":31448.949834379793,"y":31681.57948129423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"103674cc-96ef-407d-8714-ea2e9a9d7e74","savedPayload":{"position":{"x":31378.79809078839,"y":31736.006502876146},"targetPosition":{"x":31316.25,"y":31338.22198731501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5270f90c-9a7c-4c48-a70d-b75316d43872","savedPayload":{"position":{"x":31117.861875558334,"y":31440.806546951313},"targetPosition":{"x":31448.949834379793,"y":31681.57948129423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"657399d3-c55b-46b6-8ef6-bf1ed183c48f","savedPayload":{"position":{"x":31448.949834379793,"y":31681.57948129423},"targetPosition":{"x":31854.611783869535,"y":31617.461964697784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"c3529923-8f7c-4ce4-8368-edca9f37fa52","savedPayload":{"position":{"x":31325.053472792577,"y":31030.065705487017},"targetPosition":{"x":31668.750919700407,"y":31253.281061179234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"1147f820-1445-48ab-8c68-0f9dfc653b99","savedPayload":{"position":{"x":31261.14930563862,"y":31481.17728231012},"targetPosition":{"x":31480.401949358587,"y":31142.768514071446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b01a5c6-c37d-4738-9bfd-1931a7d2d3d5","savedPayload":{"position":{"x":31583.37792473191,"y":30852.18473839943},"targetPosition":{"x":31668.750919700407,"y":31253.281061179234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"62290446-8b87-4e5a-8ade-9a34b8dbb148","savedPayload":{"position":{"x":31668.750919700407,"y":31253.281061179234},"targetPosition":{"x":31854.611783869535,"y":31617.461964697784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b27aa9de-ced9-4e53-941c-499bab212f80","savedPayload":{"position":{"x":31854.611783869535,"y":31617.461964697784},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S6 - 2H Up","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"873a72fd-cc23-4965-ae29-5b2b70d85cb9","savedPayload":{"position":{"x":33010.897460448316,"y":31179.087705618313},"targetPosition":{"x":32743.530080996377,"y":31476.678900946034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"087962b5-2546-4472-b71c-b161f0013b1c","savedPayload":{"position":{"x":32743.530080996377,"y":31476.678900946034},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"c72459a6-49d5-4021-b6e3-4a8c374b6b4b","savedPayload":{"position":{"x":33147.08185909988,"y":31338.07547366014},"targetPosition":{"x":32811.43571183378,"y":31556.272945529192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48333f2b-d8c7-4a92-bf5d-b8c9a8de4196","savedPayload":{"position":{"x":32811.43571183378,"y":31556.272945529192},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"8488937e-9b92-4562-b89c-a4d6c6dd8ee2","savedPayload":{"position":{"x":33237.13790341573,"y":31526.911203926844},"targetPosition":{"x":32856.01196197148,"y":31650.98625831615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ec9b3ba8-d6a4-4cb0-8679-a8daa868e549","savedPayload":{"position":{"x":32856.01196197148,"y":31650.98625831615},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Up\"","id":"ade6a251-d161-467d-8e94-45cfdadf536b","savedPayload":{"position":{"x":33275.56332572748,"y":31733.285246992767},"targetPosition":{"x":32875.524833571035,"y":31754.249385991152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7499f60b-762e-4b37-a66d-2872755620c4","savedPayload":{"position":{"x":32875.524833571035,"y":31754.249385991152},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"04H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Down\"","id":"3beea11e-ff4a-4e39-97d0-97563dacfb09","savedPayload":{"position":{"x":33259.28460932873,"y":31940.902502677036},"targetPosition":{"x":32867.80836627228,"y":31858.056490410654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e0650fa-cd1b-4770-81b2-06d677c73510","savedPayload":{"position":{"x":32867.80836627228,"y":31858.056490410654},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"01H Med, Steep o Extreme","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","id":"276b36c3-c0ca-45d6-a659-c40dac406f46","savedPayload":{"position":{"x":33189.54211479279,"y":32137.713665862248},"targetPosition":{"x":32833.07319674841,"y":31956.498147475777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"904385e8-8b04-4c0c-9961-98b10184e976","savedPayload":{"position":{"x":32833.07319674841,"y":31956.498147475777},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"a49fbb15-05db-4a21-b59b-662a6d84c999","savedPayload":{"position":{"x":33071.171384054614,"y":32309.90187202421},"targetPosition":{"x":32773.91856258477,"y":32042.64240847269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"89591bf6-dabe-4ba6-b2d8-4580a2c75b0a","savedPayload":{"position":{"x":32773.91856258477,"y":32042.64240847269},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side or Medium","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\" || chart.at02hs.bollingerSubChannel.slope === \"Medium\"","id":"bb0016e9-0b74-4595-b450-209487362f00","savedPayload":{"position":{"x":32912.24643585934,"y":32445.677135860693},"targetPosition":{"x":32694.434555061398,"y":32110.581831373445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad9f8e37-16b5-4245-9492-0192ef168849","savedPayload":{"position":{"x":32694.434555061398,"y":32110.581831373445},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"1e3c7245-5582-4af5-9527-5dddf151b976","savedPayload":{"position":{"x":32723.598227552084,"y":32535.7334732403},"targetPosition":{"x":32600.0416875229,"y":32155.64929664765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"440d6ea0-2ee2-408a-a556-18d4c53dda17","savedPayload":{"position":{"x":32600.0416875229,"y":32155.64929664765},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","id":"d4189ed6-4d0f-45ea-b1ae-dbdb8f2e0e2c","savedPayload":{"position":{"x":32518.077922250573,"y":32573.891283006145},"targetPosition":{"x":32497.144449475723,"y":32174.74285972898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"01875e5f-f718-4047-baa4-c91930dd6c86","savedPayload":{"position":{"x":32497.144449475723,"y":32174.74285972898},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Steep","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Steep\"","id":"350d4a04-700f-4f33-960e-d267e00cec51","savedPayload":{"position":{"x":32310.0762594611,"y":32557.365021417743},"targetPosition":{"x":32392.844211360745,"y":32166.404433653668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bda747f3-188e-4ed0-82bf-b600a9a9c3f5","savedPayload":{"position":{"x":32392.844211360745,"y":32166.404433653668},"targetPosition":{"x":32476.10497248283,"y":31774.247558718183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7ec2e400-1608-44b5-8ae4-ac4f815e76f5","savedPayload":{"position":{"x":32476.10497248283,"y":31774.247558718183},"targetPosition":{"x":32114.4975340574,"y":31604.990853046736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0499e109-2786-4159-b79a-c6c24ebac150","savedPayload":{"position":{"x":32114.4975340574,"y":31604.990853046736},"targetPosition":{"x":31758.22011621457,"y":31424.574860926965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"3ed33d07-ff92-4ecc-81cd-8d9318f5a3a2","savedPayload":{"position":{"x":32252.16665434626,"y":32947.31660965903},"targetPosition":{"x":32128.776811132153,"y":32567.424743327494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40eeff59-ef6d-456b-9662-2590ba1f90b8","savedPayload":{"position":{"x":32128.776811132153,"y":32567.424743327494},"targetPosition":{"x":32005.204151094837,"y":32186.883294667958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"208d89cb-60a9-461f-a8d2-a9d185ca3c5a","savedPayload":{"position":{"x":32005.204151094837,"y":32186.883294667958},"targetPosition":{"x":31881.43076718399,"y":31805.23997790666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"77ac2dcd-e4a4-4a8f-8c71-d8a30fa7a508","savedPayload":{"position":{"x":31881.43076718399,"y":31805.23997790666},"targetPosition":{"x":31758.22011621457,"y":31424.574860926965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"0c4f8301-8084-4276-a901-5e8137867ea0","savedPayload":{"position":{"x":31988.82332276822,"y":32672.19571834107},"targetPosition":{"x":31692.071482468677,"y":32404.721283246283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c407af9c-fe4a-4d5a-9446-25fc7284ee5c","savedPayload":{"position":{"x":31692.071482468677,"y":32404.721283246283},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"6f84e4e1-1174-4eea-b92a-fdb64cdded61","savedPayload":{"position":{"x":31830.031046317567,"y":32808.01597089322},"targetPosition":{"x":31612.54259799393,"y":32472.84689786787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"56b51e70-1cfd-403a-809d-ee19347ca315","savedPayload":{"position":{"x":31612.54259799393,"y":32472.84689786787},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"f3b540af-68c9-4345-9826-faf0d9e6e04c","savedPayload":{"position":{"x":31641.55767350311,"y":32897.9022710009},"targetPosition":{"x":31518.23455469705,"y":32517.86144086963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f4cdcc47-9a5d-4999-9c11-8fd1c19a5424","savedPayload":{"position":{"x":31518.23455469705,"y":32517.86144086963},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Up\"","id":"0f3ff1d1-ff82-42da-a526-aff486cbc0bb","savedPayload":{"position":{"x":31436.205013692565,"y":32935.90412023717},"targetPosition":{"x":31415.48977015678,"y":32536.89355815333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0835043e-d8e1-424e-a530-1def860228eb","savedPayload":{"position":{"x":31415.48977015678,"y":32536.89355815333},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"04H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Down\"","id":"54f8e8ae-578f-461d-9ed2-9f352395dd19","savedPayload":{"position":{"x":31228.54443615153,"y":32919.419915645696},"targetPosition":{"x":31311.585595466433,"y":32528.664179815376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"feb6ba85-a9c1-40af-9e6b-00bd4ef1480b","savedPayload":{"position":{"x":31311.585595466433,"y":32528.664179815376},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"01H Med, Steep o Extreme","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","id":"949100cd-882b-4c11-b010-dbbfd5fff6f5","savedPayload":{"position":{"x":31031.643356321496,"y":32849.55793610308},"targetPosition":{"x":31213.072553776572,"y":32493.738191603945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d3f463af-4e6d-493b-bc8f-e4c66ffc8567","savedPayload":{"position":{"x":31213.072553776572,"y":32493.738191603945},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"b6856a8d-7a24-4a5f-a449-de2d32fe63be","savedPayload":{"position":{"x":30859.463550636483,"y":32731.085165783043},"targetPosition":{"x":31126.93780611842,"y":32434.498319116443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"37a6e660-f28f-4bd2-99ea-3c2f46d2a36c","savedPayload":{"position":{"x":31126.93780611842,"y":32434.498319116443},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side or Medium","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\" || chart.at02hs.bollingerSubChannel.slope === \"Medium\"","id":"08d54285-d07e-4cec-8f13-a2f268a569a2","savedPayload":{"position":{"x":30723.724643081026,"y":32572.09916636515},"targetPosition":{"x":31059.056353841177,"y":32354.976107409486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e0208159-e2c5-4fa4-8658-714af9cc91bd","savedPayload":{"position":{"x":31059.056353841177,"y":32354.976107409486},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"36e3a366-1402-4953-8283-9a4131d304b2","savedPayload":{"position":{"x":30633.69548060391,"y":32383.464894864584},"targetPosition":{"x":31014.06490490233,"y":32260.590685797342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d4dc8ef4-ba98-4843-9ef5-16a649541da1","savedPayload":{"position":{"x":31014.06490490233,"y":32260.590685797342},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","id":"f24fcdcf-8844-4f08-a9f2-3b56471a6dde","savedPayload":{"position":{"x":30595.571410680965,"y":32178.05371321225},"targetPosition":{"x":30995.052862976325,"y":32157.74965041339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2f6a17d7-7a2e-4aa2-b120-d22cb0898194","savedPayload":{"position":{"x":30995.052862976325,"y":32157.74965041339},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Steep","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Steep\"","id":"5e74fc74-6684-4675-ba35-4ce3fee27b2a","savedPayload":{"position":{"x":30612.009771633493,"y":31970.454085425517},"targetPosition":{"x":31003.424923684455,"y":32053.515183920517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cc3b8326-99cd-431c-8b27-c85322f6413f","savedPayload":{"position":{"x":31003.424923684455,"y":32053.515183920517},"targetPosition":{"x":31394.696965332292,"y":32137.06841264846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e5d2fd0e-f202-44e7-bf4c-32d3a203528e","savedPayload":{"position":{"x":31394.696965332292,"y":32137.06841264846},"targetPosition":{"x":31575.976545730267,"y":31780.03372773283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"08776dac-4836-413b-ad45-fdfa781b031c","savedPayload":{"position":{"x":31575.976545730267,"y":31780.03372773283},"targetPosition":{"x":31758.22011621457,"y":31424.574860926965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"5724bd17-a57c-4ec4-9389-170c4255a2d5","savedPayload":{"position":{"x":31758.22011621457,"y":31424.574860926965},"targetPosition":{"x":31633.219625647092,"y":31038.6715717692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"7ac87760-6585-45b0-8e6a-52393eba7893","savedPayload":{"position":{"x":30735.600805138325,"y":33507.99863549079},"targetPosition":{"x":30475.476039234916,"y":33357.5191308144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"e18e37c2-45e6-4c79-8ab5-0e5ca1d5106f","savedPayload":{"position":{"x":33617.84667711506,"y":33938.36138235442},"targetPosition":{"x":33617.80021414131,"y":33638.42804439987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"97289bf8-e16b-42a3-b467-58175c304390","savedPayload":{"position":{"x":33617.80021414131,"y":33638.42804439987},"targetPosition":{"x":33617.692701429136,"y":33338.295643587335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"77be179e-b8d7-42e1-8612-32b85af6352b","savedPayload":{"position":{"x":33617.67000115603,"y":33338.2983947205},"targetPosition":{"x":33617.553943954204,"y":33038.401141381386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"21d88502-c3c4-4847-af18-a943a25e44f4","savedPayload":{"position":{"x":33617.553943954204,"y":33038.401141381386},"targetPosition":{"x":30475.395949616388,"y":33357.36740858946},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"5c93f074-54cb-4ef9-bcd5-b2ccef229271","savedPayload":{"position":{"x":30475.395949616388,"y":33357.36740858946},"targetPosition":{"x":30325.095919219108,"y":33097.442231856185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3c1bbf78-0fa6-429b-8dbf-d002f6a375b4","savedPayload":{"position":{"x":30325.095919219108,"y":33097.442231856185},"targetPosition":{"x":30174.932833579667,"y":32838.137954305625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"11d19fb0-32df-475f-a4b9-2832942954f3","savedPayload":{"position":{"x":30234.264038388534,"y":33709.59649631907},"targetPosition":{"x":30112.179889514613,"y":33434.84161439404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"547c7e11-9615-4493-8541-29323286596e","savedPayload":{"position":{"x":29697.381162992446,"y":34518.08926656646},"targetPosition":{"x":29728.562546731402,"y":34219.545692809836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"495e7972-41f7-474b-91b1-e434b599dcdc","savedPayload":{"position":{"x":29728.562546731402,"y":34219.545692809836},"targetPosition":{"x":29759.759570577848,"y":33920.72891942154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"eb8e1683-b144-470c-a376-2b091463a231","savedPayload":{"position":{"x":29211.7322965648,"y":34165.26538028993},"targetPosition":{"x":29485.6195128475,"y":34043.05074487052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"867afb92-cc37-44ff-b2e9-b0f5cd2b3856","savedPayload":{"position":{"x":29485.6195128475,"y":34043.05074487052},"targetPosition":{"x":29759.759570577848,"y":33920.72891942154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"01b47fc7-1a64-44cb-bf9c-898cca8bed2b","savedPayload":{"position":{"x":29759.759570577848,"y":33920.72891942154},"targetPosition":{"x":29935.942617287852,"y":33677.80023794164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"cf8da514-59ee-4653-9cc1-69430acc9458","savedPayload":{"position":{"x":29935.942617287852,"y":33677.80023794164},"targetPosition":{"x":30112.179889514613,"y":33434.84161439404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"7f1cee55-5e8d-4ef6-bcf6-d93ebcd364dd","savedPayload":{"position":{"x":30112.081341129044,"y":33434.631552439794},"targetPosition":{"x":30143.474708288704,"y":33136.159475499015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7d4e2188-8c93-4994-8d1d-ac48e2d042ee","savedPayload":{"position":{"x":30143.474708288704,"y":33136.159475499015},"targetPosition":{"x":30174.932833579667,"y":32838.137954305625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"09f38b0e-fe77-4c18-94f7-ccf4065bd658","savedPayload":{"position":{"x":29772.844422223552,"y":33283.54921569672},"targetPosition":{"x":29973.88377786049,"y":33060.741059920125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3bf360bd-8eaf-4902-b171-228ee072b89f","savedPayload":{"position":{"x":29973.88377786049,"y":33060.741059920125},"targetPosition":{"x":30174.932833579667,"y":32838.137954305625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"220cd9e4-fafa-44dc-bded-294af6ccc6df","savedPayload":{"position":{"x":29588.164690634123,"y":32962.447589802534},"targetPosition":{"x":29881.55127058081,"y":32900.126240651916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"58aae9b5-2a28-49dc-b8f6-b2f4a0ed6897","savedPayload":{"position":{"x":29881.55127058081,"y":32900.126240651916},"targetPosition":{"x":30174.932833579667,"y":32838.137954305625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"94e31b0c-1e6e-4a82-aaaf-62f1ceaea758","savedPayload":{"position":{"x":30174.932833579667,"y":32838.137954305625},"targetPosition":{"x":30662.455253128323,"y":31743.375196346577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"20e99942-a476-436b-8a1c-a9347a048114","savedPayload":{"position":{"x":30363.938333749466,"y":31774.39366742148},"targetPosition":{"x":30662.455253128323,"y":31743.375196346577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[],"id":"8f3d8a80-6472-48d8-a081-8de85b844295","savedPayload":{"position":{"x":30662.455253128323,"y":31743.375196346577},"targetPosition":{"x":31633.219625647092,"y":31038.6715717692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"New Manage Stage","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"a32cdd1e-19ce-4bcc-b7c9-52a9e9466dbf","savedPayload":{"position":{"x":30082.885861767205,"y":30674.271706394175},"targetPosition":{"x":30513.31088525428,"y":30719.649203626926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"291bbfda-c1d5-49f6-966b-3f7704ffbda8","savedPayload":{"position":{"x":30449.70849833978,"y":30712.79175326387},"targetPosition":{"x":30918.36861727118,"y":30762.229078092434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bbb0aab4-c6e3-47f8-b737-9e6fcafcfba1","savedPayload":{"position":{"x":30909.98604740559,"y":30862.912765036395},"targetPosition":{"x":31305.47719822368,"y":30800.44309590927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"34d1cb14-5351-42d4-8827-b2b0aa013b99","savedPayload":{"position":{"x":30605.26333421754,"y":30205.78693761094},"targetPosition":{"x":30971.141125384296,"y":30043.93219128299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"6f6150fc-3a6a-4686-a350-ff141bc83623","savedPayload":{"position":{"x":30331.119285087545,"y":35572.907331899485},"targetPosition":{"x":30184.879145673036,"y":35261.15720629123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3ef9a345-0c46-428c-94f3-80decc872e23","savedPayload":{"position":{"x":30184.879145673036,"y":35261.15720629123},"targetPosition":{"x":30042.73490234879,"y":34942.295632265814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d34694ed-b6c6-4fca-ae8d-95e3f30a4888","savedPayload":{"position":{"x":30042.73490234879,"y":34942.295632265814},"targetPosition":{"x":29899.932990268222,"y":34619.12789061077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0be8dfdf-f4ff-4616-b788-c04b3c64eb1b","savedPayload":{"position":{"x":30735.67671147718,"y":29734.66378505733},"targetPosition":{"x":30971.141125384296,"y":30043.93219128299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"45b5b7a2-8cc1-47f8-99c5-8042c7925a89","savedPayload":{"position":{"x":31785.587628057838,"y":28921.80729278172},"targetPosition":{"x":31743.582103773908,"y":29319.674508790024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9bb86da8-d8fa-4b5c-b6a5-952327938371","savedPayload":{"position":{"x":31743.582103773908,"y":29319.674508790024},"targetPosition":{"x":31701.637548164443,"y":29717.658565468908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"05f551c5-32a7-4986-8753-5ac0bd0d4acc","savedPayload":{"position":{"x":32172.013825409394,"y":29069.989139590693},"targetPosition":{"x":31936.92706800949,"y":29393.78099313842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9ba9b517-a809-4b01-848f-5bb31ab1f92c","savedPayload":{"position":{"x":31936.92706800949,"y":29393.78099313842},"targetPosition":{"x":31701.637548164443,"y":29717.658565468908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"c7001aa3-f176-40e4-a6d7-2744966363cd","savedPayload":{"position":{"x":32432.555394753173,"y":29391.497494618434},"targetPosition":{"x":32067.232883950746,"y":29554.586947261843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"094200d6-3761-4dd0-8073-083d14bbeb71","savedPayload":{"position":{"x":32067.232883950746,"y":29554.586947261843},"targetPosition":{"x":31701.637548164443,"y":29717.658565468908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"aaee1ab9-d92b-4f01-afc1-654347d9511a","savedPayload":{"position":{"x":32497.38168861228,"y":29799.19204314747},"targetPosition":{"x":32099.598869002944,"y":29758.585748231508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9143d8e3-b435-49f2-907e-a874e794d32a","savedPayload":{"position":{"x":32099.598869002944,"y":29758.585748231508},"targetPosition":{"x":31701.637548164443,"y":29717.658565468908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"9e27b341-5396-4a81-b483-13c9e497f3c4","savedPayload":{"position":{"x":32342.498436465543,"y":30179.457799669777},"targetPosition":{"x":32025.30263324656,"y":29951.650215787853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77518efa-2184-4602-8f5a-f3e106c6845c","savedPayload":{"position":{"x":32025.30263324656,"y":29951.650215787853},"targetPosition":{"x":31701.637548164443,"y":29717.658565468908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9d8fbd63-29f2-41f9-85f1-92643ff12c6d","savedPayload":{"position":{"x":31701.637548164443,"y":29717.658565468908},"targetPosition":{"x":31336.23232758938,"y":29880.60125077836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"a92424e5-ab90-424c-85cc-b8697bcb6009","savedPayload":{"position":{"x":31336.23232758938,"y":29880.60125077836},"targetPosition":{"x":30971.141125384296,"y":30043.93219128299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"8aff2c3b-ecf9-4df8-84ea-ffd6ba9c9612"}}}],"announcements":[],"id":"58effb7e-0927-4c47-8745-58895dead2ea","savedPayload":{"position":{"x":30971.141125384296,"y":30043.93219128299},"targetPosition":{"x":31146.90148203014,"y":30438.426905457258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"49b3a850-8a9e-41c7-8b5f-e5f3a21ce83d","savedPayload":{"position":{"x":30452.45845106373,"y":29521.565879294885},"targetPosition":{"x":30826.360212497813,"y":29664.135819369385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"c6bc7845-b742-4bd0-a28e-f76bafd9ae16","savedPayload":{"position":{"x":29620.502448153133,"y":29009.482794068932},"targetPosition":{"x":30020.48723524759,"y":28999.95192930794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0dea846d-7054-4651-9c26-e34941dd4128","savedPayload":{"position":{"x":30020.48723524759,"y":28999.95192930794},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"9ef393ca-8c24-4089-a87e-8ce151f2b828","savedPayload":{"position":{"x":29673.23605654033,"y":28702.255596384566},"targetPosition":{"x":30046.812421762977,"y":28846.20864900197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6be2982e-d239-488c-aa26-68e9b2a7af09","savedPayload":{"position":{"x":30046.812421762977,"y":28846.20864900197},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"69018aba-59d9-4f07-a2d5-d93c75981c93","savedPayload":{"position":{"x":29839.877390688383,"y":28438.113330539305},"targetPosition":{"x":30130.17776697706,"y":28714.084841759402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6ce688b0-0234-4ad1-8afa-540325306d5c","savedPayload":{"position":{"x":30130.17776697706,"y":28714.084841759402},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"b882f3e8-28e5-49f8-90a1-c27ac4723c90","savedPayload":{"position":{"x":30094.91632821422,"y":28257.6976118685},"targetPosition":{"x":30257.805692474005,"y":28623.700232213934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d21fc9d4-bec7-4df6-9083-203e877f30de","savedPayload":{"position":{"x":30257.805692474005,"y":28623.700232213934},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"2d8c394e-6772-4d45-a052-a5c04202637c","savedPayload":{"position":{"x":30399.135146391483,"y":28188.951611978144},"targetPosition":{"x":30409.894262867972,"y":28589.425905596338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"577a9703-74fb-4ea1-9e6d-1a6083c6ac29","savedPayload":{"position":{"x":30409.894262867972,"y":28589.425905596338},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14 > chart.at01hs.base7EMA.previous.previous.ema21 - chart.at01hs.base7EMA.previous.previous.ema14","id":"af2fed7e-8530-49cb-8d8c-818c0dfd3865","savedPayload":{"position":{"x":30705.807101415852,"y":28242.043260085895},"targetPosition":{"x":30563.534489641403,"y":28615.829252344352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b902eb1-aaaf-41e5-abab-95f7673e1ff5","savedPayload":{"position":{"x":30563.534489641403,"y":28615.829252344352},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 previous ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","id":"2a5efff2-2a04-4585-813e-e3ac2ffb8b95","savedPayload":{"position":{"x":30970.307494097444,"y":28407.94708158223},"targetPosition":{"x":30695.559309238633,"y":28699.077640496787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"081cec88-c2c1-49f8-88c1-760fc50e7f91","savedPayload":{"position":{"x":30695.559309238633,"y":28699.077640496787},"targetPosition":{"x":30421.294627160216,"y":28990.627562965827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7abbde01-e871-4b28-973e-51ca5f3f1c4d","savedPayload":{"position":{"x":30421.294627160216,"y":28990.627562965827},"targetPosition":{"x":30585.34029111149,"y":29357.81367658895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"276723b8-0d32-49d8-b9b3-bd29368160f7","savedPayload":{"position":{"x":30585.34029111149,"y":29357.81367658895},"targetPosition":{"x":30826.360212497813,"y":29664.135819369385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"8aff2c3b-ecf9-4df8-84ea-ffd6ba9c9612"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"16b5e57d-57f9-401a-9134-4dd112797d48","savedPayload":{"position":{"x":30789.66764429344,"y":28185.714818709304},"targetPosition":{"x":30951.533541835262,"y":28551.74444969474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f2bb1dbc-702a-413a-9421-9ac5309fe6f0","savedPayload":{"position":{"x":30951.533541835262,"y":28551.74444969474},"targetPosition":{"x":31113.728474558935,"y":28917.21393819002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"f73c271b-afa2-45ee-91d4-6aee3b3a8be9","savedPayload":{"position":{"x":31400.498422214296,"y":28170.05020162896},"targetPosition":{"x":31257.123145725003,"y":28543.607202208215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"feaca6ce-0573-401a-909a-4e25687ce708","savedPayload":{"position":{"x":31257.123145725003,"y":28543.607202208215},"targetPosition":{"x":31113.728474558935,"y":28917.21393819002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 prev.ema7 div 2 prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","id":"a9c93bde-d56d-42e9-a447-b29a02885149","savedPayload":{"position":{"x":31844.247105636758,"y":28591.21341930776},"targetPosition":{"x":31479.031034712203,"y":28754.272707956417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"72e2d105-feba-47a0-8eaf-6c83296a3863","savedPayload":{"position":{"x":31479.031034712203,"y":28754.272707956417},"targetPosition":{"x":31113.728474558935,"y":28917.21393819002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ab94fcaf-55b6-4be2-a44a-b399dda60644","savedPayload":{"position":{"x":31113.728474558935,"y":28917.21393819002},"targetPosition":{"x":30970.110994537692,"y":29290.905083627942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"07ca2734-a819-49f7-99f7-f19f58e5ffba","savedPayload":{"position":{"x":30970.110994537692,"y":29290.905083627942},"targetPosition":{"x":30826.360212497813,"y":29664.135819369385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"58effb7e-0927-4c47-8745-58895dead2ea"}}}],"announcements":[],"id":"e1d12230-902a-46bf-bb48-1fafbd162e1e","savedPayload":{"position":{"x":30826.360212497813,"y":29664.135819369385},"targetPosition":{"x":30971.141125384296,"y":30043.93219128299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"b53c2ea8-9341-416a-bef3-0b7fb86530d5","savedPayload":{"position":{"x":30285.58406428977,"y":29243.050178096328},"targetPosition":{"x":30683.146099147776,"y":29284.109186527035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"de39a349-8739-4e13-ba9d-91acedf7c835","savedPayload":{"position":{"x":33888.595369445764,"y":37801.62556418717},"targetPosition":{"x":33722.19827986528,"y":37427.67930882089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b8a44bb5-4965-4d76-8a55-6f0274d84b0c","savedPayload":{"position":{"x":33722.19827986528,"y":37427.67930882089},"targetPosition":{"x":33555.69633665479,"y":37053.5235719997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"4529e123-22d2-40a3-a751-9069e69fa624","savedPayload":{"position":{"x":33074.796850053746,"y":37716.09042113447},"targetPosition":{"x":33315.21727858583,"y":37384.885751050235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c94daca3-f53c-42b6-970c-586d9b605b04","savedPayload":{"position":{"x":33315.21727858583,"y":37384.885751050235},"targetPosition":{"x":33555.69633665479,"y":37053.5235719997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0a283745-7a51-45ab-b781-538c6e1f6a8a","savedPayload":{"position":{"x":33555.69633665479,"y":37053.5235719997},"targetPosition":{"x":33598.24181754929,"y":36645.99161286938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"be4359e1-bbfa-404c-b1ab-e073d8b4b173","savedPayload":{"position":{"x":30725.365031712365,"y":28886.42343824879},"targetPosition":{"x":30683.146099147776,"y":29284.109186527035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"58effb7e-0927-4c47-8745-58895dead2ea"}}}],"announcements":[],"id":"8aff2c3b-ecf9-4df8-84ea-ffd6ba9c9612","savedPayload":{"position":{"x":30683.146099147776,"y":29284.109186527035},"targetPosition":{"x":30826.360212497813,"y":29664.135819369385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c97bbced-498a-49dd-847a-a52170294ea9","savedPayload":{"position":{"x":30981.651480104963,"y":30564.710684840276},"targetPosition":{"x":31305.47719822368,"y":30800.44309590927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"06a4b038-f8fb-477e-9c1b-4c40ae6262ab","savedPayload":{"position":{"x":31174.04809078839,"y":31458.634409852893},"targetPosition":{"x":31111.5,"y":31060.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2b7c8ed1-9fc0-48ee-9fa1-1a0de54f71e3","savedPayload":{"position":{"x":31243.032461114977,"y":30404.860924837452},"targetPosition":{"x":31305.47719822368,"y":30800.44309590927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f9453ecf-918d-4816-a43e-216a4af33d75","savedPayload":{"position":{"x":31305.47719822368,"y":30800.44309590927},"targetPosition":{"x":31633.219625647092,"y":31038.6715717692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"a003e0e0-4a5c-4b36-a50b-98e69073a310","savedPayload":{"position":{"x":31675.554585333728,"y":30258.903145976074},"targetPosition":{"x":31758.97925625366,"y":30650.411333418004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"4b1b8e1d-da67-439f-8a1b-dd82581ec9c9","savedPayload":{"position":{"x":31742.39930563862,"y":31180.805189286868},"targetPosition":{"x":31961.651949358587,"y":30842.396421048194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b4633c27-f49c-42b5-be24-a2ea7d5ee8f7","savedPayload":{"position":{"x":31977.08325902516,"y":30314.67393304803},"targetPosition":{"x":31758.97925625366,"y":30650.411333418004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1b84ef5d-8088-401c-a38f-5d9222a01ec3","savedPayload":{"position":{"x":31758.97925625366,"y":30650.411333418004},"targetPosition":{"x":31633.219625647092,"y":31038.6715717692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f1ca0dbb-65e8-4c60-84f0-89596e22e9be","savedPayload":{"position":{"x":31633.219625647092,"y":31038.6715717692},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S7 - 3H Down","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"b7ef7546-2729-499d-88db-7c958392fb0e","savedPayload":{"position":{"x":32756.711113974747,"y":31607.61024363443},"targetPosition":{"x":32358.625604152276,"y":31594.206592670653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40201dbd-8fbe-41aa-acd3-c0cea3fff9de","savedPayload":{"position":{"x":32358.625604152276,"y":31594.206592670653},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"6dc11e45-63d6-4246-9a9a-294a45931b14","savedPayload":{"position":{"x":32699.286732443106,"y":31878.47863401902},"targetPosition":{"x":32329.570598085495,"y":31729.497664114646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2dbb8f61-68b4-4835-a6f7-6d7c0c2248ee","savedPayload":{"position":{"x":32329.570598085495,"y":31729.497664114646},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"391ae861-6932-4481-bc4f-15a284dafe80","savedPayload":{"position":{"x":32552.09531778457,"y":32114.04753440217},"targetPosition":{"x":32255.859915100125,"y":31847.386259193245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"52613d30-4103-4272-b871-e3785881dcd8","savedPayload":{"position":{"x":32255.859915100125,"y":31847.386259193245},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","id":"7bf0cb68-72c5-4df6-891e-ee3b08bdc439","savedPayload":{"position":{"x":32334.114842423976,"y":32284.565342679653},"targetPosition":{"x":32147.15431300346,"y":31932.905356218682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5bab5664-c7aa-4e60-aecd-30db721958b0","savedPayload":{"position":{"x":32147.15431300346,"y":31932.905356218682},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"3d771526-7fc9-4c67-b4b4-50e2df038870","savedPayload":{"position":{"x":32070.924868337093,"y":32370.08100269519},"targetPosition":{"x":32015.591548265118,"y":31975.736423733935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1298f042-2f23-4fc7-8359-5bdd3f7e7da1","savedPayload":{"position":{"x":32015.591548265118,"y":31975.736423733935},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Side or Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope === \"Side\" || chart.at06hs.bollingerSubChannel.slope === \"Gentle\"","id":"9e520195-93e0-4d66-b312-eb2c90921b3c","savedPayload":{"position":{"x":31794.650807013048,"y":32360.45078170795},"targetPosition":{"x":31877.416410439342,"y":31970.941978356223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"16707f87-40dc-44ae-a7f8-2df9dc07d53c","savedPayload":{"position":{"x":31877.416410439342,"y":31970.941978356223},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side","code":"chart.at02hs.bollingerSubChannel.slope > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","id":"8143bcc8-af0f-45ef-bbde-1f67fa30b819","savedPayload":{"position":{"x":31537.944515588584,"y":32256.803208422127},"targetPosition":{"x":31748.99837175806,"y":31919.0842921405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0f2efdf7-69dc-4d15-9bf4-6f714894d100","savedPayload":{"position":{"x":31748.99837175806,"y":31919.0842921405},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"10f38b80-2f33-4ad0-b849-019b27b36921","savedPayload":{"position":{"x":31332.159441515407,"y":32071.60292915926},"targetPosition":{"x":31646.02399287895,"y":31826.300241802153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"080177f0-9708-4e76-b021-f4857ee42930","savedPayload":{"position":{"x":31646.02399287895,"y":31826.300241802153},"targetPosition":{"x":31960.09358765132,"y":31580.130968973965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5dd3ebf8-bbcd-4978-8d28-0f4ecfe80ba4","savedPayload":{"position":{"x":31960.09358765132,"y":31580.130968973965},"targetPosition":{"x":31811.375456622718,"y":31210.024612755467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b4791836-6c85-4279-b75c-ba308154012c","savedPayload":{"position":{"x":31811.375456622718,"y":31210.024612755467},"targetPosition":{"x":31687.76480518738,"y":30831.48557074782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"81a9ee22-bb7d-4a2b-b3ca-7df88b5cfcd1","savedPayload":{"position":{"x":30964.170002711508,"y":32252.191088803193},"targetPosition":{"x":31144.768944066076,"y":31897.42162298904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78d25152-3354-4e6c-8118-e621e2eab4e0","savedPayload":{"position":{"x":31144.768944066076,"y":31897.42162298904},"targetPosition":{"x":31325.724991307263,"y":31541.89217527304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1067e774-8e02-44c0-a86a-43c62a2e1a69","savedPayload":{"position":{"x":31325.724991307263,"y":31541.89217527304},"targetPosition":{"x":31506.68394076039,"y":31186.464463611115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"26a5deff-364b-4f52-b2f2-24eb39f8a9aa","savedPayload":{"position":{"x":31506.68394076039,"y":31186.464463611115},"targetPosition":{"x":31687.76480518738,"y":30831.48557074782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"7ca3641e-2701-4ae6-aebf-419045fa3ef7","savedPayload":{"position":{"x":31415.350855782843,"y":31953.662040186926},"targetPosition":{"x":31228.774127711946,"y":31601.810661783034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"50506cba-6ce7-47ee-a28f-50cae0a62f61","savedPayload":{"position":{"x":31228.774127711946,"y":31601.810661783034},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"b0bf87ab-9049-4c24-918b-b7bc805db2a8","savedPayload":{"position":{"x":31151.8983901484,"y":32039.378083013424},"targetPosition":{"x":31096.520470152915,"y":31644.940254589535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"56da2b2c-74c3-4328-b75c-4990aef44ca0","savedPayload":{"position":{"x":31096.520470152915,"y":31644.940254589535},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"0ed3b727-9493-4064-8404-d2d48e9213ad","savedPayload":{"position":{"x":30875.88748954805,"y":32029.398005509585},"targetPosition":{"x":30958.5310225033,"y":31640.03030162792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f6f8fad9-0588-4d7c-81a8-5738f0d6c7e6","savedPayload":{"position":{"x":30958.5310225033,"y":31640.03030162792},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","id":"5fe7a35e-a56c-4ad4-854d-5b13ca036669","savedPayload":{"position":{"x":30619.45917271261,"y":31925.61009127704},"targetPosition":{"x":30830.267658267254,"y":31588.123770907005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b64fa95-a27a-4e68-9ae1-fa8358e23f41","savedPayload":{"position":{"x":30830.267658267254,"y":31588.123770907005},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"23e2569a-2867-4ebe-aa2b-21254ab0c096","savedPayload":{"position":{"x":30413.92809880018,"y":31740.258282032806},"targetPosition":{"x":30727.44993708856,"y":31495.42966547764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f6a6ace-3508-4a78-953a-a9944f9b9077","savedPayload":{"position":{"x":30727.44993708856,"y":31495.42966547764},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Side or Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope === \"Side\" || chart.at06hs.bollingerSubChannel.slope === \"Gentle\"","id":"565a511b-5264-4cfd-ad94-c8b316f5e19c","savedPayload":{"position":{"x":30284.10436293634,"y":31495.651010108508},"targetPosition":{"x":30662.4945590601,"y":31373.11363325245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5e3a86fa-9e96-47ef-b87b-3324c9edf8a3","savedPayload":{"position":{"x":30662.4945590601,"y":31373.11363325245},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side","code":"chart.at02hs.bollingerSubChannel.slope > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","id":"ef7ba943-87cb-4149-8ab2-a562a34fa524","savedPayload":{"position":{"x":30245.599644538674,"y":31221.709525819122},"targetPosition":{"x":30643.252589579934,"y":31236.12546813472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e624d8a7-586a-4198-a528-b6ee474245dd","savedPayload":{"position":{"x":30643.252589579934,"y":31236.12546813472},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"9992327b-1059-4396-8766-514b6384a81b","savedPayload":{"position":{"x":30303.138677412127,"y":30950.697921181665},"targetPosition":{"x":30672.107581803288,"y":31100.54665498549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0701df03-b97b-4d03-89a7-a9fb764d1d21","savedPayload":{"position":{"x":30672.107581803288,"y":31100.54665498549},"targetPosition":{"x":31041.820593356788,"y":31249.659564954316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b72964a4-f423-4930-a40d-ced67854d28e","savedPayload":{"position":{"x":31041.820593356788,"y":31249.659564954316},"targetPosition":{"x":31308.726111061416,"y":30953.636053954928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"0f375c4e-1181-48dc-a5c6-98808692de0b","savedPayload":{"position":{"x":31430.805525066622,"y":30518.836523760896},"targetPosition":{"x":31255.5,"y":30712.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2fa6c84-789c-4629-834d-05326002e6af","savedPayload":{"position":{"x":31109.176798356515,"y":30963.27212808858},"targetPosition":{"x":31308.726111061416,"y":30953.636053954928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51e2b55b-66ca-45c9-9cfd-ec82ac5ce3d6","savedPayload":{"position":{"x":31308.726111061416,"y":30953.636053954928},"targetPosition":{"x":31687.76480518738,"y":30831.48557074782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"adc2c73c-702f-46ce-90ad-dbbc7f75ad3d","savedPayload":{"position":{"x":31687.76480518738,"y":30831.48557074782},"targetPosition":{"x":31869.68557793254,"y":30474.935931910186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"35334cbd-d4ce-49aa-aaf6-dd76ad2fc0e2","savedPayload":{"position":{"x":29872.650486479462,"y":31845.644615987683},"targetPosition":{"x":29722.94521058858,"y":31586.628418935463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"09357e03-4041-4836-8d0b-ff241d96d998","savedPayload":{"position":{"x":32805.75142358775,"y":32943.72579653},"targetPosition":{"x":33016.594443523325,"y":32732.39288563737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a39a586f-7f44-4599-81c9-26989d479b34","savedPayload":{"position":{"x":33140.34468073813,"y":32827.35630227829},"targetPosition":{"x":33289.50677656069,"y":32568.28724312379},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fdd8bdf-bcd5-4318-9786-18d2e5e0cc65","savedPayload":{"position":{"x":33289.50677656069,"y":32568.28724312379},"targetPosition":{"x":33438.553943954204,"y":32309.40114138139},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"37c5e03a-b280-40d2-a2e8-e040f87303f8","savedPayload":{"position":{"x":33438.553943954204,"y":32309.40114138139},"targetPosition":{"x":29722.94521058858,"y":31586.628418935463},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"7f426eb4-a1d0-4bc1-90fc-a834c34b7c17","savedPayload":{"position":{"x":29722.94521058858,"y":31586.628418935463},"targetPosition":{"x":29722.725213705256,"y":31287.846173686503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7a4858da-e282-4158-bea4-53b72dbb1817","savedPayload":{"position":{"x":29722.725213705256,"y":31287.846173686503},"targetPosition":{"x":29722.457835209898,"y":30989.4429009283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"4d50fd19-7ed8-453e-82bc-532f4493a243","savedPayload":{"position":{"x":29343.437731382317,"y":31744.382995141423},"targetPosition":{"x":29371.152393632306,"y":31472.02590154781},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"af81c406-ab61-41fb-be2f-e442ffc2f8f0","savedPayload":{"position":{"x":28476.443476226017,"y":32218.25881730505},"targetPosition":{"x":28649.504473241068,"y":31955.95291544174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dde94435-60a3-4c47-94cf-3e8175ac1634","savedPayload":{"position":{"x":28649.504473241068,"y":31955.95291544174},"targetPosition":{"x":28825.08157382303,"y":31714.314372018624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"3d7be9e2-afe8-4d9c-be2c-09af6c358225","savedPayload":{"position":{"x":28236.8604574126,"y":31599.372993702822},"targetPosition":{"x":28528.02184771264,"y":31682.79587950174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fa5631d8-a1d0-4139-85ea-67590dd474cc","savedPayload":{"position":{"x":28528.02184771264,"y":31682.79587950174},"targetPosition":{"x":28825.08157382303,"y":31714.314372018624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1150cede-dcd1-49d1-84f7-ffe774dabf5b","savedPayload":{"position":{"x":28825.08157382303,"y":31714.314372018624},"targetPosition":{"x":29098.089018424576,"y":31593.125254821593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"23a3f497-117a-4975-a899-a4dbeb320a60","savedPayload":{"position":{"x":29098.089018424576,"y":31593.125254821593},"targetPosition":{"x":29371.152393632306,"y":31472.02590154781},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"73ab31c8-85c5-464a-8f79-1e368c01ae6a","savedPayload":{"position":{"x":29371.152393632306,"y":31472.02590154781},"targetPosition":{"x":29546.836137447066,"y":31230.632814358563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"427a98f5-f0bc-4f3e-bd3e-290a2a61a0d8","savedPayload":{"position":{"x":29546.836137447066,"y":31230.632814358563},"targetPosition":{"x":29722.457835209898,"y":30989.4429009283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"5476a8e6-a075-466a-9942-13ce4962b132","savedPayload":{"position":{"x":29153.71032089733,"y":31172.81373022447},"targetPosition":{"x":29438.096980804145,"y":31081.090618860526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7db9c851-0940-43fd-9366-641e540c24d8","savedPayload":{"position":{"x":29438.096980804145,"y":31081.090618860526},"targetPosition":{"x":29722.457835209898,"y":30989.4429009283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"065a3e90-45c2-45d6-846d-7dbbd61439db","savedPayload":{"position":{"x":29154.040974378873,"y":30803.964060964398},"targetPosition":{"x":29438.30180708951,"y":30896.630273574876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6e3ea9ca-8dfd-4706-8a44-bee210c3fa64","savedPayload":{"position":{"x":29438.30180708951,"y":30896.630273574876},"targetPosition":{"x":29722.457835209898,"y":30989.4429009283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"01200851-265b-4fd2-a819-e866a534dd69","savedPayload":{"position":{"x":29722.457835209898,"y":30989.4429009283},"targetPosition":{"x":30688.920593803676,"y":30287.74409384992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"cce2c890-b019-4232-804f-1a707f05bcb6","savedPayload":{"position":{"x":30393.584979815012,"y":30240.819745126442},"targetPosition":{"x":30688.920593803676,"y":30287.74409384992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"b23ca59f-d8bc-491c-9a8e-2b32a01b3106","savedPayload":{"position":{"x":31234.10084655184,"y":30186.12957454463},"targetPosition":{"x":30928.5,"y":30137.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a53e9a4d-005d-429d-8cea-80553c0eba26","savedPayload":{"position":{"x":30513.035580242144,"y":30045.471998217716},"targetPosition":{"x":30688.920593803676,"y":30287.74409384992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bdd02df9-2a77-4665-808e-7172a0006e9c","savedPayload":{"position":{"x":30688.920593803676,"y":30287.74409384992},"targetPosition":{"x":31869.68557793254,"y":30474.935931910186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"New Manage Stage","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"cf80ef88-969d-40f5-bc36-ccee6f8518bf","savedPayload":{"position":{"x":31007.622745239525,"y":29170.029822350145},"targetPosition":{"x":31258.45994551566,"y":29479.940552493328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"6fac6741-1d2a-4364-ba55-6d0082d4e33b","savedPayload":{"position":{"x":31258.45994551566,"y":29479.940552493328},"targetPosition":{"x":31530.039463965975,"y":29815.47282469586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"995255a7-571c-4219-bb24-a1dda890ba60","savedPayload":{"position":{"x":31484.467341186282,"y":29844.710284007848},"targetPosition":{"x":31807.16663599444,"y":30079.347663334862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"712dcccd-fca1-4d1b-bf00-497375a831ec","savedPayload":{"position":{"x":31732.539366836572,"y":29162.99263509157},"targetPosition":{"x":32104.571397491785,"y":29306.12811998022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"8facdd27-7830-4433-b373-c259545e9d3f","savedPayload":{"position":{"x":29882.867353640824,"y":35200.38777180643},"targetPosition":{"x":29736.627214226315,"y":34888.63764619818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7b658c8-0903-46b3-867a-c01eaca10bb1","savedPayload":{"position":{"x":29736.627214226315,"y":34888.63764619818},"targetPosition":{"x":29594.48297090207,"y":34569.77607217276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"97de140f-ae6e-435a-8be7-c4d87e38bd83","savedPayload":{"position":{"x":29594.48297090207,"y":34569.77607217276},"targetPosition":{"x":29451.6810588215,"y":34246.608330517716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c137f50a-c8a7-4275-8ae4-80fa7fedd38c","savedPayload":{"position":{"x":32166.756910341126,"y":28889.69689332528},"targetPosition":{"x":32104.571397491785,"y":29306.12811998022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"908a2ee2-d913-46d1-80f5-e7109c803e65","savedPayload":{"position":{"x":28516.71817962912,"y":35192.29086492423},"targetPosition":{"x":28557.156363557613,"y":34808.409636499855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a9ab42d-9b24-461f-95cd-39ab13a54bc3","savedPayload":{"position":{"x":28557.156363557613,"y":34808.409636499855},"targetPosition":{"x":28598.0289573759,"y":34417.78682031214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"d4179fb4-9949-4d82-ae45-8d8be2001ce8","savedPayload":{"position":{"x":28140.072131909215,"y":35047.30833994516},"targetPosition":{"x":28366.86690488685,"y":34735.352904831736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"efab2947-1540-4e8f-a1d9-50289a9b3c7f","savedPayload":{"position":{"x":28366.86690488685,"y":34735.352904831736},"targetPosition":{"x":28598.0289573759,"y":34417.78682031214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"8fbb58cd-53d0-4e19-8f50-590090df0f58","savedPayload":{"position":{"x":27878.964636068133,"y":34737.91437333604},"targetPosition":{"x":28231.258809765986,"y":34581.04278506479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"adec7d7c-258f-4222-a6d6-734f6962d5d9","savedPayload":{"position":{"x":28231.258809765986,"y":34581.04278506479},"targetPosition":{"x":28598.0289573759,"y":34417.78682031214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"b6a70772-8397-41ac-9268-5ad1cd9b0b80","savedPayload":{"position":{"x":27821.86029713508,"y":34336.88651844418},"targetPosition":{"x":28205.040932522745,"y":34376.814161692535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e1ffbeec-66bc-4d38-984b-2aff6740101f","savedPayload":{"position":{"x":28205.040932522745,"y":34376.814161692535},"targetPosition":{"x":28598.0289573759,"y":34417.78682031214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"ff907f99-713a-41f7-8b23-721699b74966","savedPayload":{"position":{"x":27964.313268952294,"y":33958.435928563435},"targetPosition":{"x":28276.53876559214,"y":34184.71313975834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65511340-ee54-484b-8cb6-f2d95dec9bdd","savedPayload":{"position":{"x":28276.53876559214,"y":34184.71313975834},"targetPosition":{"x":28598.0289573759,"y":34417.78682031214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"94b2fbbc-3d32-473c-8008-231664970f09","savedPayload":{"position":{"x":32849.28299676666,"y":29591.021162867517},"targetPosition":{"x":32476.86475119283,"y":29448.614791856868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"02434c11-1d6d-4f15-9577-237b5daba9ea","savedPayload":{"position":{"x":32476.86475119283,"y":29448.614791856868},"targetPosition":{"x":32104.571397491785,"y":29306.12811998022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"cac36b94-3568-446e-a2d2-9d860bd8ad0f"}}}],"announcements":[],"id":"74e77f0f-2945-48ac-ab1f-47a65feb84ec","savedPayload":{"position":{"x":32104.571397491785,"y":29306.12811998022},"targetPosition":{"x":31950.06586342185,"y":29709.082658113486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"db68ae8b-4414-43f9-b275-c97b3a6a80c6","savedPayload":{"position":{"x":32105.102125287416,"y":28580.59467680565},"targetPosition":{"x":32267.4143234272,"y":28944.957294860884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"2ccb9d00-d677-44b6-8b92-edbcaf349d29","savedPayload":{"position":{"x":33290.65093021714,"y":34555.75511226941},"targetPosition":{"x":33540.8213283894,"y":34865.279508582666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5649c96-59d6-4f0e-a259-063e7355eb48","savedPayload":{"position":{"x":33540.8213283894,"y":34865.279508582666},"targetPosition":{"x":33791.47346791017,"y":35173.62066748123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"2689f28d-6ca9-4e82-8327-eae9956a751a","savedPayload":{"position":{"x":33676.94695072527,"y":34395.80631745438},"targetPosition":{"x":33738.340953101884,"y":34789.24855876006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b19aacc4-d892-41dc-a487-870ca6e13ce2","savedPayload":{"position":{"x":33738.340953101884,"y":34789.24855876006},"targetPosition":{"x":33791.47346791017,"y":35173.62066748123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"9e40ebf6-fd42-43da-b390-30926b085b8f","savedPayload":{"position":{"x":34079.123783303585,"y":34430.169852666026},"targetPosition":{"x":33935.38002039342,"y":34801.925115799015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2b8766b-b4da-40c7-8d88-76f3969065aa","savedPayload":{"position":{"x":33935.38002039342,"y":34801.925115799015},"targetPosition":{"x":33791.47346791017,"y":35173.62066748123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"cae32279-d999-4c13-8eb6-cad3063c74d4","savedPayload":{"position":{"x":34412.44222154852,"y":34672.67036466439},"targetPosition":{"x":34102.0921039295,"y":34923.20814374665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"04ac8528-0696-413b-a739-7825670c0234","savedPayload":{"position":{"x":34102.0921039295,"y":34923.20814374665},"targetPosition":{"x":33791.47346791017,"y":35173.62066748123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"6a80e7f5-300b-417d-9f9d-49803b8f51f8","savedPayload":{"position":{"x":34579.99550348594,"y":35050.04227125973},"targetPosition":{"x":34185.89807327404,"y":35111.97251419154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e23fa3d-13f0-45fe-990f-d268e58ff1cf","savedPayload":{"position":{"x":34185.89807327404,"y":35111.97251419154},"targetPosition":{"x":33791.47346791017,"y":35173.62066748123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"38fc838f-01a5-4a33-a35f-e185f52c295e","savedPayload":{"position":{"x":33790.73756529026,"y":35173.32453395331},"targetPosition":{"x":33648.14450005887,"y":35545.010999298036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0c86ae11-a07f-4c31-a33c-05debf70c23c","savedPayload":{"position":{"x":33648.14450005887,"y":35545.010999298036},"targetPosition":{"x":32267.4143234272,"y":28944.957294860884},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"cac36b94-3568-446e-a2d2-9d860bd8ad0f"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"301720b6-e436-4134-be19-0bd0892f624d","savedPayload":{"position":{"x":32865.55424226058,"y":37100.53572793926},"targetPosition":{"x":32801.62373321796,"y":36696.25923472225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e8c0fcc-d597-40f7-b07f-16214f744b0e","savedPayload":{"position":{"x":32801.62373321796,"y":36696.25923472225},"targetPosition":{"x":32731.943750689665,"y":36255.54215215661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"b7683607-6589-414b-b6de-5aa132d6baef","savedPayload":{"position":{"x":32067.299039463076,"y":36794.11958615513},"targetPosition":{"x":32385.501351360777,"y":36536.28705492211},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e247b889-3abc-469b-b26d-fc11a08bf9c8","savedPayload":{"position":{"x":32385.501351360777,"y":36536.28705492211},"targetPosition":{"x":32731.943750689665,"y":36255.54215215661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"605adda8-a968-4819-af76-2ee257f07e66","savedPayload":{"position":{"x":32996.142903277054,"y":28620.519213581738},"targetPosition":{"x":32631.78472413752,"y":28782.773153677914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"cc9492df-3289-4d6a-b152-bad2fc656730","savedPayload":{"position":{"x":32631.78472413752,"y":28782.773153677914},"targetPosition":{"x":32267.4143234272,"y":28944.957294860884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"74e77f0f-2945-48ac-ab1f-47a65feb84ec"}}}],"announcements":[],"id":"7fc97392-92a0-48cc-a5d3-799b1c2b8c35","savedPayload":{"position":{"x":32267.4143234272,"y":28944.957294860884},"targetPosition":{"x":32104.571397491785,"y":29306.12811998022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"895b6803-0996-41a6-9a13-93f488d7aee4","savedPayload":{"position":{"x":32159.626044730376,"y":28262.42213582802},"targetPosition":{"x":32410.183160417215,"y":28572.417370269148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"df898928-7078-4e61-a616-169789552b36","savedPayload":{"position":{"x":33440.34343799904,"y":37429.106004094116},"targetPosition":{"x":33273.94634841856,"y":37055.159748727834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c02edb77-0d76-4656-8d2f-068eaddabff7","savedPayload":{"position":{"x":33273.94634841856,"y":37055.159748727834},"targetPosition":{"x":33107.44440520807,"y":36681.00401190665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"3bdea448-de7a-4188-b9ec-350dbf88470a","savedPayload":{"position":{"x":32626.544918607025,"y":37343.570861041415},"targetPosition":{"x":32866.96534713911,"y":37012.36619095718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fbc8a359-f853-44a6-831d-a2078edeebe6","savedPayload":{"position":{"x":32866.96534713911,"y":37012.36619095718},"targetPosition":{"x":33107.44440520807,"y":36681.00401190665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f4664806-47a1-41be-956e-079599c0df49","savedPayload":{"position":{"x":33107.44440520807,"y":36681.00401190665},"targetPosition":{"x":33149.98988610257,"y":36273.47205277633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b75aa4bc-9257-4444-98ca-afe6377b914a","savedPayload":{"position":{"x":32720.007440830715,"y":28321.18817261144},"targetPosition":{"x":32410.183160417215,"y":28572.417370269148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"74e77f0f-2945-48ac-ab1f-47a65feb84ec"}}}],"announcements":[],"id":"cac36b94-3568-446e-a2d2-9d860bd8ad0f","savedPayload":{"position":{"x":32410.183160417215,"y":28572.417370269148},"targetPosition":{"x":32267.4143234272,"y":28944.957294860884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7ce8f923-1393-45ac-97d6-742e2cff6627","savedPayload":{"position":{"x":31745.02301611295,"y":29685.056363586977},"targetPosition":{"x":31807.16663599444,"y":30079.347663334862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"cce97d86-51a4-421b-ab3f-0378a33d0563","savedPayload":{"position":{"x":32244.805525066622,"y":29775.836523760896},"targetPosition":{"x":32069.5,"y":29969.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f219f7a-b837-4ea3-a556-81bed47eae20","savedPayload":{"position":{"x":32041.585952575293,"y":29756.362553668645},"targetPosition":{"x":31807.16663599444,"y":30079.347663334862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0d03ff5b-3162-49a3-ae12-a0e5929de4dd","savedPayload":{"position":{"x":31807.16663599444,"y":30079.347663334862},"targetPosition":{"x":31869.68557793254,"y":30474.935931910186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"1c8d7c9c-e122-4839-a9df-db514ccfa466","savedPayload":{"position":{"x":32443.78411880295,"y":29957.94017527169},"targetPosition":{"x":32226.406850104606,"y":30292.86134791828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"eabb6fbc-81b2-4eba-b222-062d7e7b219e","savedPayload":{"position":{"x":32075.39930563862,"y":30303.805189286868},"targetPosition":{"x":32294.651949358587,"y":29965.396421048194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6935a06b-c142-4601-8637-79d3eba3015e","savedPayload":{"position":{"x":32617.38344944207,"y":30209.38594008121},"targetPosition":{"x":32226.406850104606,"y":30292.86134791828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"68777dc5-38aa-4508-8819-db12202b41c3","savedPayload":{"position":{"x":32226.406850104606,"y":30292.86134791828},"targetPosition":{"x":31869.68557793254,"y":30474.935931910186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fc6676b7-944d-459c-bc06-592b3ae2fd1b","savedPayload":{"position":{"x":31869.68557793254,"y":30474.935931910186},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S2 - 6H Down","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"301d8e64-bde8-4eee-a0cf-b9c57bcb3050","savedPayload":{"position":{"x":32234.440324534728,"y":31685.198935221037},"targetPosition":{"x":31982.173246407383,"y":31389.646556791922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a869bb21-75b5-4621-9760-840cf4896844","savedPayload":{"position":{"x":31982.173246407383,"y":31389.646556791922},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"b3c4a94f-4986-4e55-ba28-f6456a67bd64","savedPayload":{"position":{"x":31969.70451636865,"y":31833.31869527966},"targetPosition":{"x":31849.590605542755,"y":31463.18464013037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7b405bfe-294d-48a8-b1ff-d0c4f4b328d1","savedPayload":{"position":{"x":31849.590605542755,"y":31463.18464013037},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"f4b66e81-3e26-4a04-9687-140ab33bd887","savedPayload":{"position":{"x":31668.20974582201,"y":31869.43108197012},"targetPosition":{"x":31698.734967129512,"y":31481.652370020198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4d1c7a66-dd4a-45f9-956d-6cb68b64920b","savedPayload":{"position":{"x":31698.734967129512,"y":31481.652370020198},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"975153b0-b609-4975-b5d6-26f7bfe675e8","savedPayload":{"position":{"x":31376.60785778446,"y":31787.20304603462},"targetPosition":{"x":31552.95544610948,"y":31440.783608893744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ecc5139a-825f-4c91-8e92-f3719460c66b","savedPayload":{"position":{"x":31552.95544610948,"y":31440.783608893744},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Steep","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Steep\"","id":"a838971e-d8bd-4ded-a418-453b8981ff9e","savedPayload":{"position":{"x":31138.503489096856,"y":31599.473841373},"targetPosition":{"x":31433.865217987634,"y":31346.94829135217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3694b7de-4040-4f51-a025-3d482ad6c127","savedPayload":{"position":{"x":31433.865217987634,"y":31346.94829135217},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H NOT Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope != \"Side\"","id":"fc7ab7ee-a96c-4d9a-ae8e-618cd3ee0769","savedPayload":{"position":{"x":30990.256511828706,"y":31334.90783090023},"targetPosition":{"x":31359.7059535975,"y":31214.620571594114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f681b33-bfa1-46b5-9483-545d3f62791b","savedPayload":{"position":{"x":31359.7059535975,"y":31214.620571594114},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"d6572b86-2aaa-4223-9e6a-0206d8890778","savedPayload":{"position":{"x":30954.425687026902,"y":31034.227478934878},"targetPosition":{"x":31341.868486193758,"y":31064.086948863045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08da37fa-d3c5-49d9-8679-5b80bdff68dd","savedPayload":{"position":{"x":31341.868486193758,"y":31064.086948863045},"targetPosition":{"x":31729.810159666646,"y":31094.209708940154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"680af7d1-9436-426c-b371-0c51ca813093","savedPayload":{"position":{"x":31729.810159666646,"y":31094.209708940154},"targetPosition":{"x":31876.728519165896,"y":30731.086536864696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"ab2764bc-e2c0-40d8-930f-bd3047f39596","savedPayload":{"position":{"x":31876.728519165896,"y":30731.086536864696},"targetPosition":{"x":32052.882822905718,"y":30384.748725123394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"29130ffe-4d84-411a-90d4-3ee5a6008c21","savedPayload":{"position":{"x":30573.967407399345,"y":30865.044767338284},"targetPosition":{"x":30943.50048121601,"y":30744.974402670025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e6a32c76-eda6-4982-8a3e-220c29218ba2","savedPayload":{"position":{"x":30943.50048121601,"y":30744.974402670025},"targetPosition":{"x":31313.21782034342,"y":30624.877802919116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b31b4647-b5e2-42e5-a1e9-fa0ffafeffc8","savedPayload":{"position":{"x":31313.21782034342,"y":30624.877802919116},"targetPosition":{"x":31682.6972231694,"y":30504.724136086927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"707c998d-da1c-45c1-84de-75ac9a0898b9","savedPayload":{"position":{"x":31682.6972231694,"y":30504.724136086927},"targetPosition":{"x":32052.882822905718,"y":30384.748725123394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"5840e471-a97e-4662-8938-5f1eb21091f0","savedPayload":{"position":{"x":31057.855020732903,"y":30959.629269467543},"targetPosition":{"x":31187.737955266624,"y":30593.52204463944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"447e0866-7372-4a42-b5b1-cd05e0efe728","savedPayload":{"position":{"x":31187.737955266624,"y":30593.52204463944},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"0a447725-e6ac-45ea-bb2c-5f3b968dfc06","savedPayload":{"position":{"x":30798.054534147086,"y":30804.816204348255},"targetPosition":{"x":31058.296133226202,"y":30516.178912692925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9540f515-0603-4cda-bbbd-84d7d104a8e1","savedPayload":{"position":{"x":31058.296133226202,"y":30516.178912692925},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"ad089114-2332-4b0b-b079-4070e1baa4c5","savedPayload":{"position":{"x":30616.980526490526,"y":30561.856583368746},"targetPosition":{"x":30967.726468712906,"y":30394.73857223334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f2c2ddf-c19f-4f32-bda3-b4a3b7e7fb90","savedPayload":{"position":{"x":30967.726468712906,"y":30394.73857223334},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"48b35276-b129-486a-a517-ca3656ff9a53","savedPayload":{"position":{"x":30542.568712081516,"y":30268.072961601036},"targetPosition":{"x":30930.501586083756,"y":30247.795826218786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"179fce4e-890b-4a07-9289-57620f55da9e","savedPayload":{"position":{"x":30930.501586083756,"y":30247.795826218786},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Steep","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Steep\"","id":"45c706e6-6a7c-4b5a-b713-2b87ac0b6550","savedPayload":{"position":{"x":30586.303004546757,"y":29968.42600372806},"targetPosition":{"x":30952.34803604804,"y":30097.916134063787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad485330-bf10-49e7-beaa-d57e0f8564b3","savedPayload":{"position":{"x":30952.34803604804,"y":30097.916134063787},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H NOT Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope != \"Side\"","id":"a360bbf1-b177-4298-80a8-06b6062dc779","savedPayload":{"position":{"x":30741.535335287797,"y":29707.74906833391},"targetPosition":{"x":31029.961639336052,"y":29967.557447555944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8134986-b19a-4715-bb59-dd6bc7c774a8","savedPayload":{"position":{"x":31029.961639336052,"y":29967.557447555944},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"685b785a-4196-4b0a-84c1-0c7ed54e6162","savedPayload":{"position":{"x":30984.63248820747,"y":29526.15155137087},"targetPosition":{"x":31151.60230691471,"y":29876.76561310542},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"747a6cc6-2122-4f62-ab40-bdcfbb8ae702","savedPayload":{"position":{"x":31151.60230691471,"y":29876.76561310542},"targetPosition":{"x":31318.795481358207,"y":30227.661807410743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e9bc25c6-7eca-42cd-a2c2-dbc196d8929a","savedPayload":{"position":{"x":31318.795481358207,"y":30227.661807410743},"targetPosition":{"x":31706.775997487235,"y":30207.837568084273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"2968a063-b746-4430-944d-95d7db806279","savedPayload":{"position":{"x":32154.805525066622,"y":29905.836523760896},"targetPosition":{"x":31979.5,"y":30099.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5242fd04-b240-476a-89e2-c89ad6520c1b","savedPayload":{"position":{"x":31562.576354452234,"y":30077.0108733803},"targetPosition":{"x":31706.775997487235,"y":30207.837568084273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"88e734b7-e242-4b34-aeca-bb71905973ab","savedPayload":{"position":{"x":31706.775997487235,"y":30207.837568084273},"targetPosition":{"x":32052.882822905718,"y":30384.748725123394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"73a50844-7c64-4816-a04d-db5da604663b","savedPayload":{"position":{"x":32052.882822905718,"y":30384.748725123394},"targetPosition":{"x":32433.355355014213,"y":30261.473769260487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"64b77603-5226-4bb0-8b4f-30f6aeed68d9","savedPayload":{"position":{"x":30111.63955779835,"y":29829.545701782456},"targetPosition":{"x":30187.057117096716,"y":29547.845858548342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"c6c5ef8c-570d-4c27-80b3-521ff8c7dfd5","savedPayload":{"position":{"x":29060.669915290688,"y":29849.453861610516},"targetPosition":{"x":29342.200079118393,"y":29774.177461183208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"64166d63-e0f3-4271-b427-ea524d9d30a9","savedPayload":{"position":{"x":29342.200079118393,"y":29774.177461183208},"targetPosition":{"x":29623.921417779344,"y":29698.795938007857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9886efaf-3e04-48ed-8e2d-24efce78bcb1","savedPayload":{"position":{"x":29623.921417779344,"y":29698.795938007857},"targetPosition":{"x":29905.533851606528,"y":29623.3668189887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4787a1ba-b078-454d-9fa1-2742ae00ff26","savedPayload":{"position":{"x":29905.533851606528,"y":29623.3668189887},"targetPosition":{"x":30187.057117096716,"y":29547.845858548342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"d6880769-cf36-45b9-80ab-109068583690","savedPayload":{"position":{"x":30187.057117096716,"y":29547.845858548342},"targetPosition":{"x":30392.89365093651,"y":29341.779111862103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b2c096dd-56af-48cd-9013-3005c6dbb9c9","savedPayload":{"position":{"x":30392.89365093651,"y":29341.779111862103},"targetPosition":{"x":30598.40999046724,"y":29135.918860965496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"385a3d80-aaaa-429a-9635-20a5f56982bb","savedPayload":{"position":{"x":29796.35835555227,"y":29409.162670086862},"targetPosition":{"x":30023.09432844091,"y":29226.049390760072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"4a116f7c-9835-46f9-a487-f3314b07fc27","savedPayload":{"position":{"x":28902.861148437896,"y":29107.54072997879},"targetPosition":{"x":29190.768185411805,"y":29062.21639661277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31330f42-a7cd-4588-b037-0fb1f4012ebe","savedPayload":{"position":{"x":29190.768185411805,"y":29062.21639661277},"targetPosition":{"x":29478.85821017733,"y":29016.87886688429},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"e6f479d2-001f-4815-81fb-0104760a2131","savedPayload":{"position":{"x":29111.88702210781,"y":28563.579783555895},"targetPosition":{"x":29295.311079015475,"y":28790.15140430324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7da4d156-7295-46ca-84ef-b1b73b22ef68","savedPayload":{"position":{"x":29295.311079015475,"y":28790.15140430324},"targetPosition":{"x":29478.85821017733,"y":29016.87886688429},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8d74abf5-702e-4ff1-b555-1127ecdcc777","savedPayload":{"position":{"x":29478.85821017733,"y":29016.87886688429},"targetPosition":{"x":29750.977246609775,"y":29121.4307820616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8f143346-1514-49e9-af84-0198743e268b","savedPayload":{"position":{"x":29750.977246609775,"y":29121.4307820616},"targetPosition":{"x":30023.09432844091,"y":29226.049390760072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"c068b8fa-cf10-400c-8b35-40ee201f079d","savedPayload":{"position":{"x":30023.09432844091,"y":29226.049390760072},"targetPosition":{"x":30310.901554337408,"y":29180.93088235573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3f5fcc98-1fb5-4de2-8850-17dcc4decfd6","savedPayload":{"position":{"x":30310.901554337408,"y":29180.93088235573},"targetPosition":{"x":30598.40999046724,"y":29135.918860965496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"4fefaca7-9699-4d62-b9f2-e3f5edd1fbcf","savedPayload":{"position":{"x":30079.49724709394,"y":28870.270508476067},"targetPosition":{"x":30339.023460706743,"y":29003.074060938226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e5f14fd-5232-41bc-b038-e069f5410cdb","savedPayload":{"position":{"x":30339.023460706743,"y":29003.074060938226},"targetPosition":{"x":30598.40999046724,"y":29135.918860965496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"4662a32b-d9af-474f-8c91-51b290ac985d","savedPayload":{"position":{"x":30334.376337737165,"y":28615.96359780366},"targetPosition":{"x":30466.495623202332,"y":28875.921911960835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b20df87d-b9e0-4eef-86dc-1a12efdc4c68","savedPayload":{"position":{"x":30466.495623202332,"y":28875.921911960835},"targetPosition":{"x":30598.40999046724,"y":29135.918860965496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f8cd9672-6874-43aa-83fc-fe6431796152","savedPayload":{"position":{"x":30598.40999046724,"y":29135.918860965496},"targetPosition":{"x":31748.504152987472,"y":29318.386237653525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"3f1d66d7-b522-4dca-98a6-f876ee31f323","savedPayload":{"position":{"x":31577.296726741315,"y":29082.332722543688},"targetPosition":{"x":31748.504152987472,"y":29318.386237653525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"20468ec8-2523-47b4-b3b0-ac41bb89887a","savedPayload":{"position":{"x":32355.10084655184,"y":29226.12957454463},"targetPosition":{"x":32049.5,"y":29177.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d934edd3-f12a-4343-aef8-27f2531ec7e4","savedPayload":{"position":{"x":31794.09366947838,"y":29030.01992901516},"targetPosition":{"x":31748.504152987472,"y":29318.386237653525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cbae35a1-6426-4cde-a74e-6e3c8f1ef488","savedPayload":{"position":{"x":31748.504152987472,"y":29318.386237653525},"targetPosition":{"x":32433.355355014213,"y":30261.473769260487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Custom","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"e9425ea8-46fc-4bbd-96af-107b45fcde20","savedPayload":{"position":{"x":32787.40037538293,"y":28748.9879485708},"targetPosition":{"x":32746.82006427679,"y":29135.63873563346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"787093b5-b60f-4002-ae4e-7dcf26bc651c","savedPayload":{"position":{"x":32746.82006427679,"y":29135.63873563346},"targetPosition":{"x":32702.26410829101,"y":29560.101810710996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1a3ca90-96ad-4bc3-84f0-0ead961f4ab3","savedPayload":{"position":{"x":32608.85593964742,"y":29552.080114880126},"targetPosition":{"x":32669.459407712402,"y":29936.52520297799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"af90c747-4790-43c5-afe1-37a605571cae","savedPayload":{"position":{"x":33248.28983387989,"y":29259.76512258894},"targetPosition":{"x":33405.78863403118,"y":29615.251251332513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"64b16855-36d6-49b4-afde-9bc43b6bdd53","savedPayload":{"position":{"x":30958.49273226702,"y":35978.357887355276},"targetPosition":{"x":30812.25259285251,"y":35666.60776174702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a06e989b-e442-43e3-b915-7aa76348e064","savedPayload":{"position":{"x":30812.25259285251,"y":35666.60776174702},"targetPosition":{"x":30670.108349528266,"y":35347.746187721605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ac15c2d4-9d65-464a-b3e6-2d28edca7308","savedPayload":{"position":{"x":30670.108349528266,"y":35347.746187721605},"targetPosition":{"x":30527.306437447696,"y":35024.57844606656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c81de819-5717-459a-9b89-f046c6768803","savedPayload":{"position":{"x":33711.17883883612,"y":29379.644809738806},"targetPosition":{"x":33405.78863403118,"y":29615.251251332513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"bff4cb02-f3ad-4c61-9f94-cc3e2b43121c","savedPayload":{"position":{"x":34495.96331431318,"y":30406.151173773185},"targetPosition":{"x":34109.22405666117,"y":30365.45769696535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a9f77d3c-1868-4535-8117-e56d388ba5ad","savedPayload":{"position":{"x":34109.22405666117,"y":30365.45769696535},"targetPosition":{"x":33722.68793079328,"y":30324.700735716688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"42345fb4-0626-4b42-90c1-bb9f214e17d4","savedPayload":{"position":{"x":34352.02451001019,"y":30781.553036646546},"targetPosition":{"x":34037.23547026468,"y":30553.306359700626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a4bfbfb1-543e-4db0-9f39-dd6631e660eb","savedPayload":{"position":{"x":34037.23547026468,"y":30553.306359700626},"targetPosition":{"x":33722.68793079328,"y":30324.700735716688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"67342cd6-6678-401c-94e1-e0b0eda2263e","savedPayload":{"position":{"x":34039.73033660556,"y":31034.651369948344},"targetPosition":{"x":33881.030676784874,"y":30679.892072710652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6fcc3279-0e65-424f-81b5-0ed032a461ca","savedPayload":{"position":{"x":33881.030676784874,"y":30679.892072710652},"targetPosition":{"x":33722.68793079328,"y":30324.700735716688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"47ca70bc-782c-445f-834e-921f0840eb7e","savedPayload":{"position":{"x":33643.72639272173,"y":31097.640303634198},"targetPosition":{"x":33682.86854442032,"y":30711.32469247557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"13eaacfa-d129-401a-8648-93d7954f94ac","savedPayload":{"position":{"x":33682.86854442032,"y":30711.32469247557},"targetPosition":{"x":33722.68793079328,"y":30324.700735716688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"6674b07b-d9ed-4a96-88b2-6743cd6e0852","savedPayload":{"position":{"x":33276.322508362435,"y":30929.607895929035},"targetPosition":{"x":33495.33006605626,"y":30639.147260588717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9163a9de-74b0-42f7-8ee0-85b93dee00fc","savedPayload":{"position":{"x":33495.33006605626,"y":30639.147260588717},"targetPosition":{"x":33722.68793079328,"y":30324.700735716688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"46f92b3d-10dd-484d-895b-c0d547424c3a","savedPayload":{"position":{"x":33722.68793079328,"y":30324.700735716688},"targetPosition":{"x":33564.219043595695,"y":29969.898477587783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"571d2fea-5e0b-49f3-877a-5b9b41516bfe","savedPayload":{"position":{"x":33564.219043595695,"y":29969.898477587783},"targetPosition":{"x":33405.78863403118,"y":29615.251251332513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"5639cfff-e0f1-417b-8034-adb661ded0cd"}}}],"announcements":[],"id":"75e54a0b-1af9-49d2-ab9b-461d72a731fe","savedPayload":{"position":{"x":33405.78863403118,"y":29615.251251332513},"targetPosition":{"x":33016.39430671254,"y":29788.88391817735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"3f9df9ef-2267-4a33-b2b8-fddce1f7f4d7","savedPayload":{"position":{"x":33911.744860763334,"y":29112.95246822761},"targetPosition":{"x":33773.051073781535,"y":29476.27272549899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"bb9431b0-04e2-49ad-8a1e-8336a5a90ba6","savedPayload":{"position":{"x":34416.95322326507,"y":28296.16406245135},"targetPosition":{"x":34426.305881153865,"y":28684.915659615526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fff74a7d-6205-4d97-b32a-c31c2879e228","savedPayload":{"position":{"x":34426.305881153865,"y":28684.915659615526},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"c2308750-4fa3-45bc-8ce3-b834db3e5a75","savedPayload":{"position":{"x":34715.444342528746,"y":28347.499556006016},"targetPosition":{"x":34575.68890177326,"y":28710.585139863535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"37f1894e-e911-46df-b97d-92ad8716bbb7","savedPayload":{"position":{"x":34575.68890177326,"y":28710.585139863535},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"c815953e-7501-4c0f-bf44-b2054f27204b","savedPayload":{"position":{"x":34972.058349418905,"y":28509.362884350343},"targetPosition":{"x":34704.06500386377,"y":28791.562960245974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0abbc8b9-69b3-4051-a077-8cae2eb456e5","savedPayload":{"position":{"x":34704.06500386377,"y":28791.562960245974},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"b1db73ae-ddb7-452c-bc67-aebce55c0071","savedPayload":{"position":{"x":35147.141150108626,"y":28756.980442477477},"targetPosition":{"x":34791.679182237465,"y":28915.415108629633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1c0d7a06-b7f3-443d-9088-177134b13b83","savedPayload":{"position":{"x":34791.679182237465,"y":28915.415108629633},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"12d82500-383b-445d-995d-7b589c84635a","savedPayload":{"position":{"x":35214.19946698019,"y":29052.728441879615},"targetPosition":{"x":34825.204368153114,"y":29063.356815214163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ea51ecbf-d848-46a7-a88d-82ec88f8480a","savedPayload":{"position":{"x":34825.204368153114,"y":29063.356815214163},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14 > chart.at01hs.base7EMA.previous.previous.ema21 - chart.at01hs.base7EMA.previous.previous.ema14","id":"c48ea949-7b3e-4c17-bff5-19d6e459d626","savedPayload":{"position":{"x":35162.832804467325,"y":29350.654711690964},"targetPosition":{"x":34799.55776558362,"y":29212.503217535977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7d987b62-66de-4d68-be64-91c124266174","savedPayload":{"position":{"x":34799.55776558362,"y":29212.503217535977},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 previous ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","id":"6e81b8d8-148d-4a5a-8307-40c1dbccabb2","savedPayload":{"position":{"x":35001.572988601365,"y":29607.454418412428},"targetPosition":{"x":34718.71420293217,"y":29340.778111080235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"229f0b94-9e9a-45b5-87fe-8bf1427c1cb6","savedPayload":{"position":{"x":34718.71420293217,"y":29340.778111080235},"targetPosition":{"x":34435.516882385054,"y":29074.048555754413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0e734dca-7ea8-4eaf-9379-48ccf8dff51e","savedPayload":{"position":{"x":34435.516882385054,"y":29074.048555754413},"targetPosition":{"x":34080.098739883826,"y":29232.794420662998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"43f6f964-e44c-4b9e-9c6e-f5f10afb891d","savedPayload":{"position":{"x":34080.098739883826,"y":29232.794420662998},"targetPosition":{"x":33773.051073781535,"y":29476.27272549899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"5639cfff-e0f1-417b-8034-adb661ded0cd"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"427ca47c-7233-4e51-8070-0dd82e493d47","savedPayload":{"position":{"x":35209.14142961346,"y":29440.444294230565},"targetPosition":{"x":34854.12791187051,"y":29597.78782464058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b99cc7a-c8fd-4e57-9f24-c2576f6bab18","savedPayload":{"position":{"x":34854.12791187051,"y":29597.78782464058},"targetPosition":{"x":34498.6289280011,"y":29755.41052699473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"2217cfc4-1cdd-43b0-86ef-9957ff84c8f1","savedPayload":{"position":{"x":35224.438994290365,"y":30033.767832692964},"targetPosition":{"x":34861.984945374395,"y":29894.603901010996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6918bca4-9fcd-44a4-9ad5-d4718158d064","savedPayload":{"position":{"x":34861.984945374395,"y":29894.603901010996},"targetPosition":{"x":34498.6289280011,"y":29755.41052699473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 prev.ema7 div 2 prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","id":"9afbcaee-9dcd-4b18-89a9-9124eea8c900","savedPayload":{"position":{"x":34815.39456925559,"y":30464.907508235723},"targetPosition":{"x":34657.375468352,"y":30110.167880558845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"91b01ae0-97af-48c7-adf3-1bb767e27f36","savedPayload":{"position":{"x":34657.375468352,"y":30110.167880558845},"targetPosition":{"x":34498.6289280011,"y":29755.41052699473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8f15adc5-8719-4f96-8560-127f7eaa0a97","savedPayload":{"position":{"x":34498.6289280011,"y":29755.41052699473},"targetPosition":{"x":34135.87591926167,"y":29615.995190587262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b15ba6fb-7ae0-4c8f-b8ac-b76c5945dcb5","savedPayload":{"position":{"x":34135.87591926167,"y":29615.995190587262},"targetPosition":{"x":33773.051073781535,"y":29476.27272549899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"75e54a0b-1af9-49d2-ab9b-461d72a731fe"}}}],"announcements":[],"id":"eb74a012-ed21-4ce6-8f2e-8f2ebaea9188","savedPayload":{"position":{"x":33773.051073781535,"y":29476.27272549899},"targetPosition":{"x":33405.78863403118,"y":29615.251251332513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.2} else {takeProfit}","id":"25d46d39-ae12-4dd8-a136-48f75b7236c1","savedPayload":{"position":{"x":34179.5922378825,"y":28952.68449982191},"targetPosition":{"x":34139.99028944556,"y":29339.458559691633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"f4da55cf-3df3-40ed-8d05-a914a6697fae","savedPayload":{"position":{"x":34515.96881662524,"y":38207.07611964296},"targetPosition":{"x":34349.57172704476,"y":37833.12986427668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c64d2c0-288c-45ae-a359-5d3f44bb4c5e","savedPayload":{"position":{"x":34349.57172704476,"y":37833.12986427668},"targetPosition":{"x":34183.06978383427,"y":37458.97412745549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"b4571357-f64e-432a-8d80-37f1dfd89e82","savedPayload":{"position":{"x":33702.17029723322,"y":38121.54097659026},"targetPosition":{"x":33942.5907257653,"y":37790.336306506026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96c5c204-c93f-494c-8691-30566d39db06","savedPayload":{"position":{"x":33942.5907257653,"y":37790.336306506026},"targetPosition":{"x":34183.06978383427,"y":37458.97412745549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2849e6ed-91c0-4e63-a4a3-2ba4d4517008","savedPayload":{"position":{"x":34183.06978383427,"y":37458.97412745549},"targetPosition":{"x":34225.61526472877,"y":37051.44216832517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9c2aa1f4-5ba6-4dc8-9f99-db133558f0e8","savedPayload":{"position":{"x":34526.32051478548,"y":29380.144072111412},"targetPosition":{"x":34139.99028944556,"y":29339.458559691633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"75e54a0b-1af9-49d2-ab9b-461d72a731fe"}}}],"announcements":[],"id":"5639cfff-e0f1-417b-8034-adb661ded0cd","savedPayload":{"position":{"x":34139.99028944556,"y":29339.458559691633},"targetPosition":{"x":33773.051073781535,"y":29476.27272549899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6cb50b3d-6bf3-422f-8d2a-d0103ea02607","savedPayload":{"position":{"x":32898.51510152386,"y":29621.695973589216},"targetPosition":{"x":32669.459407712402,"y":29936.52520297799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"bf593624-8f03-46b0-8bcd-377c7620f1a3","savedPayload":{"position":{"x":33049.04809078839,"y":30508.634409852893},"targetPosition":{"x":32986.5,"y":30110.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8debc3c5-6540-43c3-8fa3-a0ae97e288af","savedPayload":{"position":{"x":33053.853780132136,"y":29875.553003142984},"targetPosition":{"x":32669.459407712402,"y":29936.52520297799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"42765ad5-284e-4966-a367-76593b53bcf7","savedPayload":{"position":{"x":32669.459407712402,"y":29936.52520297799},"targetPosition":{"x":32433.355355014213,"y":30261.473769260487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"6880a8b7-7259-4fb2-abd2-b9c37a735b0e","savedPayload":{"position":{"x":33195.15644454074,"y":30303.891451120202},"targetPosition":{"x":32814.28960967772,"y":30385.03530095667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"975fec0b-d0f0-40c1-baab-1efccd8ea879","savedPayload":{"position":{"x":33080.399305638624,"y":30985.805189286868},"targetPosition":{"x":33299.65194935859,"y":30647.396421048194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c3e1433-a8fe-4b1e-8b6a-e1b8fbbf88a3","savedPayload":{"position":{"x":33141.08859610247,"y":30597.192002896467},"targetPosition":{"x":32814.28960967772,"y":30385.03530095667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c64f618d-4336-4ff2-9dcd-3293acb4cd2a","savedPayload":{"position":{"x":32814.28960967772,"y":30385.03530095667},"targetPosition":{"x":32433.355355014213,"y":30261.473769260487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2faf1715-7b6a-4188-ac5e-c67502e18fcc","savedPayload":{"position":{"x":32433.355355014213,"y":30261.473769260487},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Strategy","name":"S5 - 4H Up","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"1bb17736-cc12-4b60-9807-632aeb2d3636","savedPayload":{"position":{"x":31803.637082753048,"y":31399.359971188216},"targetPosition":{"x":31818.655546656042,"y":30978.35806096688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2e2487a-d30a-4d70-9d70-f188409059a9","savedPayload":{"position":{"x":31818.655546656042,"y":30978.35806096688},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"21123f61-dc48-4915-b609-c3eab53b8fec","savedPayload":{"position":{"x":31525.850017503104,"y":31317.667269780963},"targetPosition":{"x":31684.17449023727,"y":30926.586714463938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"daefe7ea-f409-406c-891a-28c3001ab5c0","savedPayload":{"position":{"x":31684.17449023727,"y":30926.586714463938},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"6897670f-f952-4d83-8a95-bc82ad1d07fa","savedPayload":{"position":{"x":31267.086794496026,"y":31183.122939986682},"targetPosition":{"x":31549.575445554154,"y":30869.705854556367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b6890e81-16b4-4cd2-b1ed-0c02d51dae4b","savedPayload":{"position":{"x":31549.575445554154,"y":30869.705854556367},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","id":"c02c6beb-0de4-4a7c-a768-7332501d45b1","savedPayload":{"position":{"x":31087.19829214889,"y":30952.77737784711},"targetPosition":{"x":31459.640019499606,"y":30754.84508175051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3e59df4d-42a2-41e9-93ff-6d85b65d9bc2","savedPayload":{"position":{"x":31459.640019499606,"y":30754.84508175051},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","id":"3257e894-69d2-4f5f-93eb-13ba4d62c5e0","savedPayload":{"position":{"x":30996.834259943073,"y":30674.322016396036},"targetPosition":{"x":31414.44419194971,"y":30615.639370576555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bd3ee521-2846-411f-a740-de3480e90421","savedPayload":{"position":{"x":31414.44419194971,"y":30615.639370576555},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Gentle\"","id":"3cef9be4-e642-4af5-b845-d63592ea22e9","savedPayload":{"position":{"x":31007.075520478138,"y":30382.25756547327},"targetPosition":{"x":31419.584840032832,"y":30469.569394286285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a23ee119-f4f5-4fe6-9013-27055d634051","savedPayload":{"position":{"x":31419.584840032832,"y":30469.569394286285},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H NOT Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope != \"Side\"","id":"7fa69f52-edfe-42b6-bda3-40e9ad7af808","savedPayload":{"position":{"x":31116.712625722495,"y":30110.76594490264},"targetPosition":{"x":31474.4688041132,"y":30333.762234397087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"50495c21-1a7b-4c38-9c6c-4cec9fb5a0f1","savedPayload":{"position":{"x":31474.4688041132,"y":30333.762234397087},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"0770176a-5af8-479d-8a7e-7bafaf04cb05","savedPayload":{"position":{"x":31312.539242984873,"y":29893.174081317917},"targetPosition":{"x":31572.61684784771,"y":30224.87918255947},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0538f837-fbba-4e7c-b1db-8a574559d584","savedPayload":{"position":{"x":31572.61684784771,"y":30224.87918255947},"targetPosition":{"x":31832.446754081677,"y":30557.303404222446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b2dd0458-53e0-4d8c-8f46-bb45946cdb65","savedPayload":{"position":{"x":31832.446754081677,"y":30557.303404222446},"targetPosition":{"x":32254.205048920863,"y":30381.34366988766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"642f8610-4b1d-4178-8bae-12abf00b7812","savedPayload":{"position":{"x":32254.205048920863,"y":30381.34366988766},"targetPosition":{"x":32655.355644345367,"y":30250.83828378207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","id":"9d2e77ef-dc06-4357-8739-44065c83f8cb","savedPayload":{"position":{"x":31152.477915800475,"y":29485.148637629547},"targetPosition":{"x":31528.139844398356,"y":29676.425811184978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65d4f331-e81f-44d4-834b-9e786d9d2a36","savedPayload":{"position":{"x":31528.139844398356,"y":29676.425811184978},"targetPosition":{"x":31903.821467182715,"y":29867.826371430037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9753c7d0-7d95-4464-8331-a7d4bac71a9b","savedPayload":{"position":{"x":31903.821467182715,"y":29867.826371430037},"targetPosition":{"x":32279.619316977198,"y":30058.961696217935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"99db5a57-b7b5-44d2-b046-c5784a51bffc","savedPayload":{"position":{"x":32279.619316977198,"y":30058.961696217935},"targetPosition":{"x":32655.355644345367,"y":30250.83828378207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"Previous Breakup","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","id":"190f6e85-1f6e-4088-a156-a82e3b0e72cb","savedPayload":{"position":{"x":31467.337122690104,"y":29960.14749786813},"targetPosition":{"x":31839.670467427597,"y":29762.856324091823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"07da9742-43f4-4bfb-8720-3272474740d1","savedPayload":{"position":{"x":31839.670467427597,"y":29762.856324091823},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"56b61beb-3df4-4577-b39e-90c3c3fc7075","savedPayload":{"position":{"x":31377.480759506314,"y":29682.883283317376},"targetPosition":{"x":31795.183056971782,"y":29624.795860058675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"34460859-dffb-4fba-93b2-fe143c3a25de","savedPayload":{"position":{"x":31795.183056971782,"y":29624.795860058675},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","id":"16a3f794-7209-437c-a272-c1f945374af2","savedPayload":{"position":{"x":31388.098788101044,"y":29391.140811100908},"targetPosition":{"x":31800.391690375553,"y":29478.963861724398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"28a397a8-b5f1-44fd-afe2-3e366e7e938d","savedPayload":{"position":{"x":31800.391690375553,"y":29478.963861724398},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","id":"e6fa32e6-37a4-40ae-a68d-8d046eed13b6","savedPayload":{"position":{"x":31497.861935999175,"y":29119.985100224807},"targetPosition":{"x":31855.294923134716,"y":29343.32643845144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ba113199-ed6c-4b10-8312-4d938c7e8c39","savedPayload":{"position":{"x":31855.294923134716,"y":29343.32643845144},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","id":"b76599cd-7312-4aac-9dee-8e21dac4b1c6","savedPayload":{"position":{"x":31693.887694668956,"y":28902.656474209638},"targetPosition":{"x":31953.340689905217,"y":29234.595917062725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d274dddf-c518-4602-9e20-001b6b348fde","savedPayload":{"position":{"x":31953.340689905217,"y":29234.595917062725},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Gentle\"","id":"ef31d5cf-d980-494c-a6af-1970b0e5e172","savedPayload":{"position":{"x":31952.609151253357,"y":28765.393109525332},"targetPosition":{"x":32082.723348863343,"y":29165.905849972234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1e6adf92-f58a-4ebd-a125-f9b61d51ec59","savedPayload":{"position":{"x":32082.723348863343,"y":29165.905849972234},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H NOT Side","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope != \"Side\"","id":"d6005505-7c26-4f5c-b94e-3c2a9e812f5c","savedPayload":{"position":{"x":32242.21296721509,"y":28724.70054371358},"targetPosition":{"x":32227.550058824927,"y":29145.566309120117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dac090bd-5be4-4193-b40b-3ce250f62d91","savedPayload":{"position":{"x":32227.550058824927,"y":29145.566309120117},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","id":"6198450f-adf9-4208-a125-e47b101f9b41","savedPayload":{"position":{"x":32528.89266902186,"y":28785.576656817986},"targetPosition":{"x":32370.9875785451,"y":29176.112998723962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b1f55195-9a70-49fa-8025-51cdf0acdbeb","savedPayload":{"position":{"x":32370.9875785451,"y":29176.112998723962},"targetPosition":{"x":32212.846706910997,"y":29567.026440768434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"196d7981-9230-4a94-b8c2-39ff25a22bb9","savedPayload":{"position":{"x":32212.846706910997,"y":29567.026440768434},"targetPosition":{"x":32525.82609477754,"y":29849.549374255723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[{"type":"Announcement","name":"Take Position","code":"{ \n\"text\": \"Take Position Event.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB took position at $\" + chart.at01hs.candle.close.toFixed(0) + \"!\"","id":"1457056f-1f84-46e0-a144-f2113df411f7","savedPayload":{"position":{"x":32948.80552506662,"y":29504.836523760896},"targetPosition":{"x":32773.5,"y":29698.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4e4c322c-4604-431c-912c-6227d05d2e0b","savedPayload":{"position":{"x":32515.672915242736,"y":29638.436349027324},"targetPosition":{"x":32525.82609477754,"y":29849.549374255723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1c30f570-4f8e-47cf-95c1-dd1f4244a77a","savedPayload":{"position":{"x":32525.82609477754,"y":29849.549374255723},"targetPosition":{"x":32655.355644345367,"y":30250.83828378207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"999bf574-a88b-467f-a107-7e0770e6bd53","savedPayload":{"position":{"x":32655.355644345367,"y":30250.83828378207},"targetPosition":{"x":33029.75192573155,"y":30442.29103770232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","initialDefinition":{"type":"Initial Definition","name":"New Initial Definition","stopLoss":{"type":"Initial Stop","name":"New Initial Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate + positionRate * 3 / 100","id":"8b0471ee-2c41-4195-99fc-4025d65a390e","savedPayload":{"position":{"x":31579.929199715712,"y":28329.796759479224},"targetPosition":{"x":31853.910414355745,"y":28171.703838281486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < positionRate - positionRate * 3 / 100","id":"a4ad262a-5f92-497f-9411-56c338d9292b","savedPayload":{"position":{"x":30754.122545444774,"y":27540.973438886354},"targetPosition":{"x":31028.003443564146,"y":27698.876056028217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f953a499-ba93-476f-8af5-61e25f1f9657","savedPayload":{"position":{"x":31031.316375796425,"y":27697.923160732968},"targetPosition":{"x":31305.440043072456,"y":27855.852868035698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"abf13b1e-7ce1-41d1-87b8-c2e1f25c2a6d","savedPayload":{"position":{"x":31305.45786506844,"y":27855.824594382415},"targetPosition":{"x":31579.688155962634,"y":28013.767656946442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"2a270aac-6cd2-4b25-b1a4-ff18d1ccaa4b","savedPayload":{"position":{"x":31579.700107722136,"y":28013.74550246922},"targetPosition":{"x":31853.910414355745,"y":28171.703838281486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"72aea6dd-85da-4291-b993-17b6ab9827b1","savedPayload":{"position":{"x":31853.910414355745,"y":28171.703838281486},"targetPosition":{"x":32170.01608559407,"y":28171.536416079904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3a958f65-ab12-4404-8c2d-14a1b1d80c84","savedPayload":{"position":{"x":32170.01608559407,"y":28171.536416079904},"targetPosition":{"x":32485.715088985602,"y":28171.15713012959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Initial Take Profit","name":"New Initial Take Profit","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"positionRate - positionRate * 0.05","id":"407b0f9f-573e-4def-b3d1-a9eeabde83f7","savedPayload":{"position":{"x":31659.81139987375,"y":27766.388292401327},"targetPosition":{"x":31974.524291845133,"y":27799.41763208544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"1H EMA7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate","id":"881fe7f0-1527-499a-80f5-89bcce726dac","savedPayload":{"position":{"x":31879.089046140864,"y":26402.837294233297},"targetPosition":{"x":32077.218214079843,"y":26647.230374764797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b18879da-9fa8-4926-aa76-ad8b401c37d1","savedPayload":{"position":{"x":31457.151266858393,"y":27035.4549659169},"targetPosition":{"x":31714.090630726034,"y":27222.201315049584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"positionPeriods > 2","id":"c5713c55-47b3-42a8-ab19-08cf2d749396","savedPayload":{"position":{"x":32505.5752595207,"y":26300.82685022934},"targetPosition":{"x":32391.551298605093,"y":26598.486857980544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dba5f292-de5e-490c-ad0f-350ba7a79ba6","savedPayload":{"position":{"x":31747.847047714342,"y":26907.48381747061},"targetPosition":{"x":31714.090630726034,"y":27222.201315049584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6feb04a3-4e72-4cb3-8e80-d924677fd866","savedPayload":{"position":{"x":31712.19231193666,"y":27225.216897539707},"targetPosition":{"x":31841.69595034157,"y":27513.601035817344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"21268798-061f-4dbd-b3ae-62ed06497e7b","savedPayload":{"position":{"x":31846.13723379902,"y":27510.332013678686},"targetPosition":{"x":31974.524291845133,"y":27799.41763208544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"331d8a1e-2395-419d-b119-6f81a8b29085","savedPayload":{"position":{"x":31974.551736945174,"y":27799.396454380087},"targetPosition":{"x":32229.944270623495,"y":27985.490598327917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"74cbbf23-af31-4a53-9e2d-1d2be04f1f00","savedPayload":{"position":{"x":32229.970512281805,"y":27985.475088728974},"targetPosition":{"x":32485.715088985602,"y":28171.15713012959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionSize":{"type":"Position Size","name":"New Position Size","formula":{"type":"Formula","name":"New Formula","code":"balanceBaseAsset","id":"532a9467-6b89-4ac8-b4e0-d5015bf2dd36","savedPayload":{"position":{"x":32291.8645065362,"y":27569.273658194026},"targetPosition":{"x":32388.85888378356,"y":27870.231835006754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"46530eb5-5bbf-4e1a-b635-ed22afe99dfb","savedPayload":{"position":{"x":32388.863816650617,"y":27870.223459811998},"targetPosition":{"x":32485.715088985602,"y":28171.15713012959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionRate":{"type":"Position Rate","name":"New Position Rate","formula":{"type":"Formula","name":"New Formula","code":"candle.close","id":"9f1b0754-b1f7-4e2b-9962-5555b951e026","savedPayload":{"position":{"x":32681.756599468277,"y":27569.863267139586},"targetPosition":{"x":32583.851836528476,"y":27870.62263043729},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fc1eda7f-ae0a-46cb-89cf-8ec3bb01ad94","savedPayload":{"position":{"x":32583.85638300542,"y":27870.61332054747},"targetPosition":{"x":32485.715088985602,"y":28171.15713012959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6da69684-0123-401b-94e8-a3ca551665d1","savedPayload":{"position":{"x":32485.956593586066,"y":28171.143151808643},"targetPosition":{"x":33227.79337521052,"y":29193.269686449254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","id":"599dc297-9684-46c2-a061-e5f0fe08b0cc","savedPayload":{"position":{"x":33277.42298551964,"y":28880.820143413617},"targetPosition":{"x":33227.79337521052,"y":29193.269686449254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Open","code":"{ \n\"text\": \"Open Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"Initial stop loss at $\" + stopLoss.toFixed(0) + \" and take profit at $\" + takeProfit.toFixed(0) + \". Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"5de18ec0-2f00-4c77-92b9-955a5923d698","savedPayload":{"position":{"x":33909.10084655184,"y":29201.12957454463},"targetPosition":{"x":33603.5,"y":29152.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"82532147-3a82-4ae5-8758-8ac080add9c7","savedPayload":{"position":{"x":33483.99096742361,"y":29007.16578768379},"targetPosition":{"x":33227.79337521052,"y":29193.269686449254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2a5f2b55-f09e-4be9-92d8-3527a134dac3","savedPayload":{"position":{"x":33227.79337521052,"y":29193.269686449254},"targetPosition":{"x":33029.75192573155,"y":30442.29103770232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Controlled Run","stopLoss":{"type":"Stop","name":"New Stop","phases":[{"type":"Phase","name":"New Phase","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100 < stopLoss) {chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.movingAverage * 2 / 100} else {stopLoss}","id":"928d3add-1690-4dfd-b2f8-455668fc742c","savedPayload":{"position":{"x":34446.54072965572,"y":29566.263118815612},"targetPosition":{"x":34118.74229678125,"y":29831.655797585274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"51924a8f-f6b0-41f0-9fb5-8cd97d8d6531","savedPayload":{"position":{"x":34118.74229678125,"y":29831.655797585274},"targetPosition":{"x":33774.18998850245,"y":30110.61435184037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6ba3063d-c882-44d2-a7c4-9915a220b17e","savedPayload":{"position":{"x":33694.781614397805,"y":30034.89501850924},"targetPosition":{"x":33446.54561839851,"y":30376.4041629772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","phases":[{"type":"Phase","name":"Manage: 3% Below ema7","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.03} else {positionRate - positionRate * 0.03}","id":"f0ba9068-9fd8-46c1-89c6-c51c2127fad3","savedPayload":{"position":{"x":34405.03823312209,"y":30291.840263281058},"targetPosition":{"x":34253.55735010361,"y":30685.388405891084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"3d7e602e-ca81-4d0f-808c-0b6987a224d4","savedPayload":{"position":{"x":35787.30615527667,"y":35398.810989911646},"targetPosition":{"x":35627.67545695055,"y":35040.81781656664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3cf490f8-fb04-4a14-aab8-1215009b40bd","savedPayload":{"position":{"x":35627.67545695055,"y":35040.81781656664},"targetPosition":{"x":35467.72999550737,"y":34682.783353016006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"399b9981-c283-4140-8600-904bd8fae636","savedPayload":{"position":{"x":35467.72999550737,"y":34682.783353016006},"targetPosition":{"x":35307.55009149936,"y":34324.66524598421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"19a0d710-315f-43b8-b1f0-8aca0f21d63e","savedPayload":{"position":{"x":35307.55009149936,"y":34324.66524598421},"targetPosition":{"x":34253.55735010361,"y":30685.388405891084},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"6407cb18-e862-47c7-8c3d-2ac857597595","savedPayload":{"position":{"x":34530.30464769007,"y":32086.76032216619},"targetPosition":{"x":34241.56519862483,"y":31779.736945370492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3218784f-7ac6-4f71-89ca-c13de6fb1e08","savedPayload":{"position":{"x":34241.56519862483,"y":31779.736945370492},"targetPosition":{"x":33952.40791518047,"y":31472.687567332738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"31096ee3-5cb2-437c-911c-b8dac600eeda","savedPayload":{"position":{"x":34206.86770563993,"y":32276.766339734662},"targetPosition":{"x":34079.78645287453,"y":31874.887902369603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4a59f893-ce98-40a8-a456-14758c0e3b72","savedPayload":{"position":{"x":34079.78645287453,"y":31874.887902369603},"targetPosition":{"x":33952.40791518047,"y":31472.687567332738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < positionRate - positionRate * 0.01","id":"39e213d0-6871-4fcc-8ba7-6485b15b8010","savedPayload":{"position":{"x":33833.90249584932,"y":32307.77576085133},"targetPosition":{"x":33893.183785079695,"y":31890.35694745995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a2c15f0e-3edb-4849-862a-dce24f143be6","savedPayload":{"position":{"x":33893.183785079695,"y":31890.35694745995},"targetPosition":{"x":33952.40791518047,"y":31472.687567332738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"5d4916ab-3a59-42cd-ad42-2c9be833bb36","savedPayload":{"position":{"x":33483.71175603528,"y":32173.510662283734},"targetPosition":{"x":33718.10598421068,"y":31823.189571328785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e90a9e18-c05e-4c34-8931-f934311d8be4","savedPayload":{"position":{"x":33718.10598421068,"y":31823.189571328785},"targetPosition":{"x":33952.40791518047,"y":31472.687567332738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"1578e195-a319-4748-8204-f90d816fc4ae","savedPayload":{"position":{"x":33226.90835172038,"y":31900.891944952567},"targetPosition":{"x":33589.60744328863,"y":31686.70649617647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b48541a5-46c2-4e7e-a072-07d94c1b2ac9","savedPayload":{"position":{"x":33589.60744328863,"y":31686.70649617647},"targetPosition":{"x":33952.40791518047,"y":31472.687567332738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\"","id":"fb1f280f-632e-4097-b5da-dfdbacd169c3","savedPayload":{"position":{"x":33113.8985015411,"y":31543.13031314437},"targetPosition":{"x":33533.18645691627,"y":31507.901950537547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0000df02-7c31-423f-a377-ee7a54e745b1","savedPayload":{"position":{"x":33533.18645691627,"y":31507.901950537547},"targetPosition":{"x":33952.40791518047,"y":31472.687567332738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a9ea4174-771b-4b50-8376-05494437d912","savedPayload":{"position":{"x":33952.40791518047,"y":31472.687567332738},"targetPosition":{"x":34103.02164774582,"y":31078.959490898098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"730610f1-2311-4486-8905-37c9c001d766","savedPayload":{"position":{"x":34103.02164774582,"y":31078.959490898098},"targetPosition":{"x":34253.55735010361,"y":30685.388405891084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"1a7c350c-eb3a-4d8a-af57-68aabda6fea7"}}}],"announcements":[],"id":"f631120e-4f0f-41f4-85b3-74778c8060c0","savedPayload":{"position":{"x":34253.55735010361,"y":30685.388405891084},"targetPosition":{"x":33839.85571089323,"y":30526.991004243064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < positionRate - positionRate * 0.03) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {positionRate - positionRate * 0.03}","id":"e0cee676-0034-4512-9ed3-b4f61df739bf","savedPayload":{"position":{"x":35032.298511827415,"y":30664.025220907624},"targetPosition":{"x":34647.207041214446,"y":30836.09669131313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Move to Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"2cd48b45-e3f4-4a76-8bf7-19470c990e1e","savedPayload":{"position":{"x":36107.40410258614,"y":30517.225318510787},"targetPosition":{"x":35780.230573333596,"y":30782.31136999146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"17193755-5b37-4ee7-82ca-a14db05dbd30","savedPayload":{"position":{"x":35780.230573333596,"y":30782.31136999146},"targetPosition":{"x":35452.761665177284,"y":31047.66467334929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","id":"b8cb24ca-a2ce-4ae6-b5d9-63471af0095f","savedPayload":{"position":{"x":36284.90515124963,"y":30915.913862933052},"targetPosition":{"x":35869.021951828036,"y":30981.751761376323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4facbae1-8244-47d9-bf81-2ebf58477c34","savedPayload":{"position":{"x":35869.021951828036,"y":30981.751761376323},"targetPosition":{"x":35452.761665177284,"y":31047.66467334929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"4e3f128a-a12a-444d-b706-c54a910da68b","savedPayload":{"position":{"x":36239.371881971114,"y":31349.282569362353},"targetPosition":{"x":35846.26069286043,"y":31198.494132839478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2460f9b-c5ab-4502-9b39-38159b55534b","savedPayload":{"position":{"x":35846.26069286043,"y":31198.494132839478},"targetPosition":{"x":35452.761665177284,"y":31047.66467334929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","id":"2a370595-33f8-4cf8-af80-e7871edcf8fa","savedPayload":{"position":{"x":35983.1325692914,"y":31702.277925781378},"targetPosition":{"x":35718.094088328195,"y":31375.038293037353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"133e251e-2ac5-4ebd-8f4c-73eb8c8ba7e1","savedPayload":{"position":{"x":35718.094088328195,"y":31375.038293037353},"targetPosition":{"x":35452.761665177284,"y":31047.66467334929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side or Gentle","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\"","id":"55435ac8-859e-4665-842c-f6603923589e","savedPayload":{"position":{"x":35584.73289655696,"y":31879.94420607729},"targetPosition":{"x":35518.86240709847,"y":31463.838891768813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ee4dad2e-77dd-4f45-9847-c3c2e563d015","savedPayload":{"position":{"x":35518.86240709847,"y":31463.838891768813},"targetPosition":{"x":35452.761665177284,"y":31047.66467334929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"42bd767a-7a9e-40dc-9973-ad6e2411e769","savedPayload":{"position":{"x":35452.761665177284,"y":31047.66467334929},"targetPosition":{"x":35058.85073610298,"y":30896.89534740672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f9f58805-ee92-40ac-be13-6d242a6a476f","savedPayload":{"position":{"x":35058.85073610298,"y":30896.89534740672},"targetPosition":{"x":34647.207041214446,"y":30836.09669131313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"1a7c350c-eb3a-4d8a-af57-68aabda6fea7"}}},{"type":"Move to Phase Event","name":"Cancel Close","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 div ema14","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"32c1fa99-99b6-4bdd-ad3d-fcb3858413fe","savedPayload":{"position":{"x":35776.79345269899,"y":31909.47813652903},"targetPosition":{"x":35383.44828063969,"y":31758.293786669023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8f146719-384b-4e16-a0b3-c7501eeca1dd","savedPayload":{"position":{"x":35383.44828063969,"y":31758.293786669023},"targetPosition":{"x":34989.99851802312,"y":31606.922286071378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"b1d2c06e-3c41-474c-b241-62639db26336","savedPayload":{"position":{"x":35332.887818885174,"y":32377.069703162415},"targetPosition":{"x":35161.53533828581,"y":31992.11486723846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"655cd860-35be-4db4-8786-758133ade2f8","savedPayload":{"position":{"x":35161.53533828581,"y":31992.11486723846},"targetPosition":{"x":34989.99851802312,"y":31606.922286071378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","id":"7b14d5ba-d792-4d0e-9c33-aae6abc015dd","savedPayload":{"position":{"x":34688.90853441315,"y":32393.902044815673},"targetPosition":{"x":34839.54017120311,"y":32000.460775300373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"41486047-0d08-4227-8d03-3e844c75a3ea","savedPayload":{"position":{"x":34839.54017120311,"y":32000.460775300373},"targetPosition":{"x":34989.99851802312,"y":31606.922286071378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"78031caf-041a-4f69-aea1-f9666aef959d","savedPayload":{"position":{"x":34989.99851802312,"y":31606.922286071378},"targetPosition":{"x":34818.416667519436,"y":31221.49527777832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"ad7504d5-49ec-4fed-bc74-44f5f398def7","savedPayload":{"position":{"x":34818.416667519436,"y":31221.49527777832},"targetPosition":{"x":34647.207041214446,"y":30836.09669131313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"f631120e-4f0f-41f4-85b3-74778c8060c0"}}}],"announcements":[],"id":"bee5a88b-489f-48ce-be58-4531f815462a","savedPayload":{"position":{"x":34647.207041214446,"y":30836.09669131313},"targetPosition":{"x":34253.55735010361,"y":30685.388405891084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.23 < positionRate - positionRate * 0.03) {chart.at01hs.base7EMA.ema7 - chart.at01hs.base7EMA.ema7 * 0.23} else {takeProfit}","id":"6e3648cc-0d59-428a-acc2-afcf2a6e86c4","savedPayload":{"position":{"x":35364.36754637443,"y":30743.79677885484},"targetPosition":{"x":35036.48540989503,"y":31009.357437908086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move to Phase Event","name":"Cancel Run","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"ema7 conv ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","id":"d68720e4-049f-46b9-b412-f0378573a413","savedPayload":{"position":{"x":35025.93602050318,"y":36418.753466704875},"targetPosition":{"x":34780.354363777864,"y":36112.85268730106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"609ce0eb-a9ec-495a-9f99-cd5adeaa5824","savedPayload":{"position":{"x":34780.354363777864,"y":36112.85268730106},"targetPosition":{"x":34538.157968652435,"y":35811.39270619528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","id":"49efa579-e07f-432e-ab03-458909afe80a","savedPayload":{"position":{"x":34453.75516050035,"y":36592.785713769365},"targetPosition":{"x":34495.98103573446,"y":36202.207555966874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"70e024f2-8dc4-443b-b7d0-8d979bd7879a","savedPayload":{"position":{"x":34495.98103573446,"y":36202.207555966874},"targetPosition":{"x":34538.157968652435,"y":35811.39270619528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Up || Side, Gentle or Medium","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Up\" || chart.at01hs.bollingerSubChannel.slope === \"Side\" || chart.at01hs.bollingerSubChannel.slope === \"Gentle\" || chart.at01hs.bollingerSubChannel.slope === \"Medium\"","id":"199cc33c-0e13-4de9-910a-c9d356e9d0d6","savedPayload":{"position":{"x":33926.32049835032,"y":36306.55289460314},"targetPosition":{"x":34232.21759903413,"y":36059.063968740695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3621eed7-d3f5-4350-8e53-6eb76377b10a","savedPayload":{"position":{"x":34232.21759903413,"y":36059.063968740695},"targetPosition":{"x":34538.157968652435,"y":35811.39270619528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dede1ba7-70c6-417a-a54a-14177afbd413","savedPayload":{"position":{"x":34538.157968652435,"y":35811.39270619528},"targetPosition":{"x":34588.210715482724,"y":35403.96530795689},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"76a5126e-7d21-4160-b25a-08631b6d519a","savedPayload":{"position":{"x":35302.17787738192,"y":31337.322692776477},"targetPosition":{"x":35036.48540989503,"y":31009.357437908086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"f631120e-4f0f-41f4-85b3-74778c8060c0"}}}],"announcements":[],"id":"1a7c350c-eb3a-4d8a-af57-68aabda6fea7","savedPayload":{"position":{"x":35036.48540989503,"y":31009.357437908086},"targetPosition":{"x":34647.207041214446,"y":30836.09669131313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a3dd2636-1b11-4d0a-8a32-945e790a97e5","savedPayload":{"position":{"x":33863.77572993962,"y":30310.715804922856},"targetPosition":{"x":33446.54561839851,"y":30376.4041629772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[{"type":"Announcement","name":"Manage","code":"{ \n\"text\": \"Manage Stage: you will get the proper message when the trading session is run at a time frame lower than 1H.\",\n\"valueVariantion\": 2.5\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB Trade Management Status! Current TP, current price, and stop: \" + takeProfit.toFixed(0) + \", \" + chart.at01min.candle.close.toFixed(0) + \", \" + stopLoss.toFixed(0) + \".\"","id":"0204092d-3d12-43b7-95e3-f2146a2a0324","savedPayload":{"position":{"x":33695.04809078839,"y":31034.634409852893},"targetPosition":{"x":33632.5,"y":30636.849894291758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8096b40e-271b-407a-b75c-7de3136b04a5","savedPayload":{"position":{"x":33788.0138298563,"y":30624.219309845328},"targetPosition":{"x":33446.54561839851,"y":30376.4041629772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6af83cfb-a8f9-4313-8013-495ed37ee6f5","savedPayload":{"position":{"x":33446.54561839851,"y":30376.4041629772},"targetPosition":{"x":33029.75192573155,"y":30442.29103770232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","closeExecution":{"type":"Close Execution","name":"New Close Execution","id":"a0def27f-df31-4c8e-b5de-12cf8376aa64","savedPayload":{"position":{"x":33575.8445053462,"y":31047.439459383855},"targetPosition":{"x":33221.458597344295,"y":30817.50496330991},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"announcements":[{"type":"Announcement","name":"Close","code":"{ \n\"text\": \"Close Stage.\"\n}","formula":{"type":"Formula","name":"New Formula","code":"\"BBTB trade closed! P&L: \" + lastTradeProfitLoss.toFixed(2) * 100 + \"%. Balances: \" + balanceBaseAsset.toFixed(2) + \" BTC and \" + balanceQuotedAsset.toFixed(0) + \" USDT.\"","id":"9a31cc2b-bfb0-43b9-8ad7-0d0135c2a593","savedPayload":{"position":{"x":33396.399305638624,"y":31144.805189286868},"targetPosition":{"x":33615.65194935859,"y":30806.396421048194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"952a1b99-cc01-414a-a583-69486a70cde8","savedPayload":{"position":{"x":33309.75440271151,"y":31230.662234131596},"targetPosition":{"x":33221.458597344295,"y":30817.50496330991},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e49340f8-ed08-46a6-b4f8-b1992e7780b4","savedPayload":{"position":{"x":33221.458597344295,"y":30817.50496330991},"targetPosition":{"x":33029.75192573155,"y":30442.29103770232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f1787887-41aa-41d4-80c5-34db452cd148","savedPayload":{"position":{"x":33029.75192573155,"y":30442.29103770232},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3313017d-fdce-481b-9679-fe8e4f67cd45","savedPayload":{"position":{"x":32433.356993272086,"y":31038.668778615298},"targetPosition":{"x":32433.356993272086,"y":31038.668778615298},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}]} \ No newline at end of file diff --git a/Workspace.json b/Workspace.json deleted file mode 100644 index 0bb71b7f6..000000000 --- a/Workspace.json +++ /dev/null @@ -1 +0,0 @@ -{"type":"Workspace","name":"Default Workspace","rootNodes":[{"type":"Network","name":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","code":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34247\", \n\"webSocketsPort\": \"8080\"\n}","dataStorage":{"type":"Data Storage","name":"New Data Storage","sessionIndependentData":{"type":"Session Independent Data","name":"New Session Independent Data","exchangeDataProducts":[{"type":"Exchange Data Products","name":"Binance","singleMarketData":[{"type":"Single Market Data","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"431ea989-085b-40ae-aa2a-d371d7cb68c6","savedPayload":{"position":{"x":24932.511140174844,"y":31869.750557360872},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"cc76acbb-9fd2-43f0-95de-dc78e1aaa2b5","savedPayload":{"position":{"x":24843.874257455736,"y":31943.103579980623},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"683e24f7-010a-412e-ba21-f280e63a0f1d","savedPayload":{"position":{"x":24748.85401394781,"y":32007.08769637134},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"210b7e14-a6f0-4c56-b5e4-108f57ebb4c6","savedPayload":{"position":{"x":24648.094528241738,"y":32061.389427113263},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"ddd34b26-4fa8-4d7c-b76d-f671c92a6181","savedPayload":{"position":{"x":24542.52429894684,"y":32105.531096469156},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"302bfaf2-6466-4aa0-9924-33999366b774","savedPayload":{"position":{"x":24433.14826134718,"y":32139.10047507596},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"10142313-9ac8-4f4c-8105-88aec7bb7ce9","savedPayload":{"position":{"x":24321.013502485006,"y":32161.785259112734},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"80ed873e-8017-45ec-b211-fc4604f5aaf6","savedPayload":{"position":{"x":24207.197944630294,"y":32173.368867997546},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"6635502b-5366-430e-8dc1-4edaa21c2a7f","savedPayload":{"position":{"x":24093.093129961107,"y":32173.739279862366},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"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","id":"3d048c1f-d45a-442a-9d44-362ad7770bb6","savedPayload":{"position":{"x":23979.210125787013,"y":32162.894598056188},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"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","id":"c92d9454-d5fb-4954-a188-367dcd697af6","savedPayload":{"position":{"x":23866.935785461683,"y":32140.939261825577},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"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":"Popular EMAs","id":"4810638a-c137-4df6-8016-c8a2540dc9e7","savedPayload":{"position":{"x":23757.353555905916,"y":32108.084997484744},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"9c1f6b84-409e-4257-92ea-a9481d3509cd","savedPayload":{"position":{"x":23651.519455833408,"y":32064.64799544436},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"dcd46168-1662-42c5-be91-f489d9a55833","savedPayload":{"position":{"x":23550.452235012137,"y":32011.046653785743},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"be7e47ef-a530-4dc1-bf59-b731f1e49fa1","savedPayload":{"position":{"x":23455.125315478406,"y":31947.796675307076},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"f6868e09-2559-4fac-9631-54cf1a867c8a","savedPayload":{"position":{"x":23366.45667008943,"y":31875.507874454284},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"c424ba00-bbe0-4ae9-830a-3d2aa6fcaf4d","savedPayload":{"position":{"x":23285.300551163327,"y":31794.87569671494},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"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":"Base5 SMAs","id":"3ebce074-9080-426a-baf9-61c1a04fc05b","savedPayload":{"position":{"x":23212.43815251551,"y":31706.677099143046},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"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":"Bollinger Channels","id":"303572ad-cc90-46c9-8620-8454d557897b","savedPayload":{"position":{"x":23148.571158735027,"y":31611.760692723947},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"afbf02cf-97a6-4dc0-a3d5-95f29ba7781f","savedPayload":{"position":{"x":23094.31533999354,"y":31511.041040132637},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"f23ed030-62cc-408b-8966-245a86db6096","savedPayload":{"position":{"x":23050.193030207938,"y":31405.48772814446},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"0333bb7c-5101-441b-be9a-d9ff1a84f116","savedPayload":{"position":{"x":23016.629167431493,"y":31296.1169107748},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"913f8079-b038-444a-ad43-465fa0443c04","savedPayload":{"position":{"x":22993.947925204775,"y":31183.98148413413},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"bba7e1ab-5bca-44c0-a8aa-cd9570b338f3","savedPayload":{"position":{"x":22982.366774350547,"y":31070.162375761025},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"30016fca-86bc-4ba7-bc2b-95cdc1b1f048","savedPayload":{"position":{"x":22982.00011011269,"y":30956.047930631943},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"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","id":"db5f07f4-0008-46b0-ad05-b5902b847ea7","savedPayload":{"position":{"x":22992.850849190625,"y":30842.152099222247},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"1ae6002d-fe1a-4ba7-8ed7-7449e0cd1ee0","savedPayload":{"position":{"x":23014.817211734488,"y":30729.858718532232},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"3e571150-bba3-437b-94e3-3906183713d1","savedPayload":{"position":{"x":23047.693109997686,"y":30620.245830545235},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"48a88db2-8a4c-485c-8ffd-ef08bb72f0e8","savedPayload":{"position":{"x":23091.172679590025,"y":30514.353967236675},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"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"}}},{"type":"Data Product","name":"Resistances","id":"0669d924-aace-46d1-b126-ccced8fd33cf","savedPayload":{"position":{"x":23143.969145378844,"y":30414.665704041094},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Resistances","id":"7a734501-a0fb-4305-803e-7e95d477c513"}}},{"type":"Data Product","name":"Supports","id":"5e7a0e50-e6ed-4106-8025-8b35ad6c597c","savedPayload":{"position":{"x":23209.592365400207,"y":30315.83219010329},"targetPosition":{"x":24146.405904950017,"y":31009.32813115183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Supports","id":"bc3c43de-6312-47d4-ae3d-0c95c1b039e0"}}}],"id":"65485ef6-3a78-4075-81b6-74d13956e055","savedPayload":{"position":{"x":24146.405904950017,"y":31009.32813115183},"targetPosition":{"x":24926.125679148896,"y":30143.434476097653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},{"type":"Single Market Data","name":"Binance ETH/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"2d7d22ec-f671-4090-9c9c-e4b0c6c2775e","savedPayload":{"position":{"x":39641.333811210454,"y":28936.98413868935},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"77bbb005-e635-4a07-a00e-5d0f25bc9084","savedPayload":{"position":{"x":39612.59634583407,"y":28848.5110343909},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"36099c73-db76-421f-a708-3034438521fd","savedPayload":{"position":{"x":39594.15352768551,"y":28758.904338266497},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"85bba657-c6e4-47bd-ba9b-90896d7a0dfb","savedPayload":{"position":{"x":39585.513470979095,"y":28668.600155855387},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"64e94c82-d070-485a-a117-01a4b77412ce","savedPayload":{"position":{"x":39586.515890435076,"y":28578.275802249987},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"83fd70d7-063a-491e-bb0e-49da3fdbbc79","savedPayload":{"position":{"x":39597.01323868843,"y":28488.759535006342},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"f70fcd18-3dcb-4fb4-b6a5-3c747fffbb4c","savedPayload":{"position":{"x":39616.82107043368,"y":28400.936525998834},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"f1c226bf-68b1-4cc3-bbfb-719742db129b","savedPayload":{"position":{"x":39645.70528040039,"y":28315.720626172813},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"4a2e6c31-6ac4-4cfb-afd3-3a80351f820d","savedPayload":{"position":{"x":39683.34058679891,"y":28234.020419812852},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"1e19eb33-7c3f-4b24-99e3-e5bf275a4b14","savedPayload":{"position":{"x":39729.311389966206,"y":28156.718652140855},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"559be759-fcc7-4c8f-bfe5-fe2ad5699e64","savedPayload":{"position":{"x":39783.1123675581,"y":28084.656149508282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Popular EMAs","id":"f7bb88aa-5624-4164-8353-c1006976ce5a","savedPayload":{"position":{"x":39844.15303173856,"y":28018.61953084089},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"ca3b14d4-b9b4-42be-89c9-d1f6f03e2584","savedPayload":{"position":{"x":39911.76371803724,"y":27959.33092647535},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"3616f54f-d12a-4a33-8493-d79943095b40","savedPayload":{"position":{"x":39985.20283169866,"y":27907.43928775395},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"077fe5ec-7fab-402b-b39a-752c0b8ee216","savedPayload":{"position":{"x":40063.66492102786,"y":27863.51284455778},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"a22caa08-ca88-4217-a718-54256191090d","savedPayload":{"position":{"x":40146.28952675484,"y":27828.032723488246},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"06c72bab-01ca-446b-a0b4-7d7eee109839","savedPayload":{"position":{"x":40232.170594436364,"y":27801.387550178282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Base5 SMAs","id":"9e8c58c4-c1eb-4465-b679-ac9d3e8f4c4e","savedPayload":{"position":{"x":40320.36641444746,"y":27783.86918815466},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Bollinger Channels","id":"7c579b34-cec9-4088-8356-6456aaf584f9","savedPayload":{"position":{"x":40409.909923101404,"y":27775.669478131724},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"a74b855f-2618-48a1-a205-912c0706d557","savedPayload":{"position":{"x":40499.81663014655,"y":27776.909528674598},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"e16b6d08-456c-4d7c-9254-21527386e7e9","savedPayload":{"position":{"x":40589.09169664543,"y":27787.555002280842},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"32daacad-779a-468e-af1e-f481169a140a","savedPayload":{"position":{"x":40676.76137062555,"y":27807.472594093873},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"5c5274f1-d2e6-467a-b0d0-5c608a7f8cd1","savedPayload":{"position":{"x":40761.86594350216,"y":27836.447055375374},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"6b2f9252-dd53-448b-9ec3-b40f38d6967b","savedPayload":{"position":{"x":40843.47350168687,"y":27874.160297912516},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"cb797003-f635-4e8b-9b23-62b6e2b55987","savedPayload":{"position":{"x":40917.71602191771,"y":27917.913249620826},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"6c589edf-7930-443a-9e73-e0d3db280669","savedPayload":{"position":{"x":40986.24755380669,"y":27967.183543605785},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"e71e4bd2-d1bb-499c-89d1-99b13ce6540b","savedPayload":{"position":{"x":41056.98651886182,"y":28030.330808475923},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"0e4fb01a-cdf0-43c9-8a2c-456e4bdf5631","savedPayload":{"position":{"x":41118.83139724332,"y":28100.72015635104},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"9ce941d0-5fbd-4ddb-91fd-53a1ea9a8962","savedPayload":{"position":{"x":41186.43383723706,"y":28204.23453473696},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}}],"id":"a6c5c5cf-f16f-4134-921d-4c1fd58c1bd3","savedPayload":{"position":{"x":23762.31423242076,"y":30203.830266168174},"targetPosition":{"x":24926.125679148896,"y":30143.434476097653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},{"type":"Single Market Data","name":"Binance ETH/BTC","dataProducts":[{"type":"Data Product","name":"Candles","id":"16b9f4a3-a8d5-4dee-9e06-ebf6dc99a0dd","savedPayload":{"position":{"x":39641.333811210454,"y":28936.98413868935},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"3e3efaba-d646-4ed1-84e4-e557d6577cff","savedPayload":{"position":{"x":39612.59634583407,"y":28848.5110343909},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"f5a6c648-702c-4a09-b31f-172a39667a0d","savedPayload":{"position":{"x":39594.15352768551,"y":28758.904338266497},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"b79faabd-ce5d-4c0f-83f9-cf92872ef865","savedPayload":{"position":{"x":39585.513470979095,"y":28668.600155855387},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"ad4e270d-d05a-4c08-a5d9-77eee5b0c1df","savedPayload":{"position":{"x":39586.515890435076,"y":28578.275802249987},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"6b44528c-99f2-4481-bb5a-4543ce9eeb23","savedPayload":{"position":{"x":39597.01323868843,"y":28488.759535006342},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"a61f956e-17b3-4dd7-97a6-d752909f25ba","savedPayload":{"position":{"x":39616.82107043368,"y":28400.936525998834},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"fdee854a-412d-4da3-bfc6-097328a7b08b","savedPayload":{"position":{"x":39645.70528040039,"y":28315.720626172813},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"d65052b9-889e-4e5b-bf27-1f69eac2c1dd","savedPayload":{"position":{"x":39683.34058679891,"y":28234.020419812852},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"b9800757-deb3-460a-b21a-b1ded164bfe3","savedPayload":{"position":{"x":39729.311389966206,"y":28156.718652140855},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"2d36dd55-4a17-4c7c-ad99-f8e155cf79df","savedPayload":{"position":{"x":39783.1123675581,"y":28084.656149508282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Popular EMAs","id":"6260b35f-cb85-462b-b231-75d0300c319b","savedPayload":{"position":{"x":39844.15303173856,"y":28018.61953084089},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"dae4c509-b392-48fb-8719-c885e113e582","savedPayload":{"position":{"x":39911.76371803724,"y":27959.33092647535},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"3a752ddd-2215-4875-9d30-bdafa1e56330","savedPayload":{"position":{"x":39985.20283169866,"y":27907.43928775395},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"37aea73f-0321-4711-82f0-27f2331851f9","savedPayload":{"position":{"x":40063.66492102786,"y":27863.51284455778},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"762df080-244a-44a5-a10e-e6f90547e039","savedPayload":{"position":{"x":40146.28952675484,"y":27828.032723488246},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"f50e39e6-fccf-4641-a5b9-c4999ea85bc9","savedPayload":{"position":{"x":40232.170594436364,"y":27801.387550178282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Base5 SMAs","id":"7bb9b38c-0720-4cba-93d0-5e8df34f7b37","savedPayload":{"position":{"x":40320.36641444746,"y":27783.86918815466},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Bollinger Channels","id":"3f5f5748-7e39-45c6-9e35-f9ef72ee49b4","savedPayload":{"position":{"x":40409.909923101404,"y":27775.669478131724},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"6e7ed7af-2ab2-4c26-a945-5ff282ba708e","savedPayload":{"position":{"x":40499.81663014655,"y":27776.909528674598},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"75cd4d2b-0b18-4650-8337-93b80260171a","savedPayload":{"position":{"x":40589.09169664543,"y":27787.555002280842},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"4dd66811-c216-4488-80ae-f5fb86527782","savedPayload":{"position":{"x":40676.76137062555,"y":27807.472594093873},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"cdeb9d99-2e44-457e-aa1a-77e4e83128f2","savedPayload":{"position":{"x":40761.86594350216,"y":27836.447055375374},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"8c7efbf3-df1e-4d2a-b16f-2c44610a92f0","savedPayload":{"position":{"x":40843.47350168687,"y":27874.160297912516},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"1745c5a0-f14f-432e-a7b1-5efd41411fa1","savedPayload":{"position":{"x":40917.71602191771,"y":27917.913249620826},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"d5810f9e-5ee1-4d99-a08f-8a72720401d8","savedPayload":{"position":{"x":40986.24755380669,"y":27967.183543605785},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"c263e4aa-e8c1-426a-bee8-d1a0955d57c4","savedPayload":{"position":{"x":41056.98651886182,"y":28030.330808475923},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"9d65e5bd-8354-4433-9911-95e2f975ee0f","savedPayload":{"position":{"x":41118.83139724332,"y":28100.72015635104},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"5fca8f85-1152-4f04-b64b-6876f4b66e5a","savedPayload":{"position":{"x":41186.43383723706,"y":28204.23453473696},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}}],"id":"27d90aec-9540-497f-a326-ea224ecbf851","savedPayload":{"position":{"x":24060.147369538085,"y":29363.56104166905},"targetPosition":{"x":24926.125679148896,"y":30143.434476097653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}}],"id":"d87f998e-5b58-4df5-9080-8d9c3a4ba1a6","savedPayload":{"position":{"x":24925.331154205214,"y":30143.582283947504},"targetPosition":{"x":25508.203215259186,"y":30113.20296378238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}},{"type":"Exchange Data Products","name":"Bitfinex","singleMarketData":[{"type":"Single Market Data","name":"Bitfinex BTC/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"8ca5590a-f8fd-4451-beb4-6f129503917f","savedPayload":{"position":{"x":23857.518796632572,"y":30948.595796617203},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"40ad627e-1b42-471c-bf9c-5d2ac61811f9","savedPayload":{"position":{"x":23743.126518472814,"y":30937.776038794687},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"a5534859-2c15-4848-8083-a1eb33485e21","savedPayload":{"position":{"x":23630.675720084266,"y":30915.819014446486},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"8969e130-aa60-47c1-a301-99f1908db6df","savedPayload":{"position":{"x":23520.980204366722,"y":30882.95085481248},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"51e94a87-e6cf-4245-a74b-96c3032abb05","savedPayload":{"position":{"x":23415.055045667486,"y":30839.4907241862},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"1ef0b65e-d904-4a82-bf61-a6ba3aaf5443","savedPayload":{"position":{"x":23313.908638646677,"y":30785.85810333353},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"eb35295a-b358-4688-8482-74307091466e","savedPayload":{"position":{"x":23218.510619076456,"y":30722.569939692887},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"d525e21f-ea75-4844-8e09-87f5f478045e","savedPayload":{"position":{"x":23129.777709181402,"y":30650.235965199005},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"d4905d55-abce-4fa9-95a2-1875c16fb4b7","savedPayload":{"position":{"x":23048.563441648075,"y":30569.552929243273},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"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","id":"891c972c-e624-42af-ab10-056b6d6f194b","savedPayload":{"position":{"x":22975.64940532264,"y":30481.29793394236},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"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","id":"dbfb5bbc-ebb7-41da-8a45-eaf75d943736","savedPayload":{"position":{"x":22911.737491235457,"y":30386.320972435075},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"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":"Popular EMAs","id":"5bcf67c8-5a50-477f-9dce-c23993104cea","savedPayload":{"position":{"x":22857.44302651283,"y":30285.53675487433},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"83243cbe-ccb6-4aef-94a2-5fa4870c674b","savedPayload":{"position":{"x":22813.28879462196,"y":30179.91590606886},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"62ae801f-e2e0-4611-9cc0-a3dc66a76da1","savedPayload":{"position":{"x":22779.699972033926,"y":30070.475621930564},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"e19f6e55-47de-4f92-99ae-e7e10d755561","savedPayload":{"position":{"x":22757.000017865823,"y":29958.269875887152},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"90374e6f-9568-4211-b3a6-7c650c45f1e3","savedPayload":{"position":{"x":22745.40755033013,"y":29844.379270193356},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"850a58e9-2da0-43dc-b5be-739bd478309e","savedPayload":{"position":{"x":22745.034438801205,"y":29730.096602904843},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"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":"Base5 SMAs","id":"9e1a2843-59a0-485e-8ce0-e8c98e5a2001","savedPayload":{"position":{"x":22755.884207749565,"y":29616.134022975937},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"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":"Bollinger Channels","id":"56d92d99-a094-4b18-9e22-37eba7b7dfdb","savedPayload":{"position":{"x":22777.85228102424,"y":29503.78213580036},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"158d1589-7e86-4a42-819b-f3992495d35c","savedPayload":{"position":{"x":22810.727234717422,"y":29394.124128930966},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"fd7cefdd-57a6-4d42-920f-85f26ef9003b","savedPayload":{"position":{"x":22854.192594540717,"y":29288.216162193945},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"bbfcd667-2876-4432-acdd-c4c18a10da9f","savedPayload":{"position":{"x":22907.82994849088,"y":29187.07818980611},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"3331fec3-bb84-41ba-aec6-e8859970cbf5","savedPayload":{"position":{"x":22971.123009403243,"y":29091.68420748834},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"aeb10072-f55f-49e3-96bf-46967054f62f","savedPayload":{"position":{"x":23043.46264415907,"y":29002.95288106252},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"0fdf9d81-9385-44d0-9377-8c569b1a083e","savedPayload":{"position":{"x":23124.1528499236,"y":28921.73869624482},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"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","id":"ad5e3de6-59c4-49d5-9634-d24e6f10fff0","savedPayload":{"position":{"x":23212.41768674634,"y":28848.82371772441},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"ebfb6d57-a2eb-4795-bbd4-60cb683eb985","savedPayload":{"position":{"x":23307.40928300375,"y":28784.910027264916},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"648437ed-379a-4ec3-b36e-88ed3c9eb924","savedPayload":{"position":{"x":23408.217457439972,"y":28730.612862030557},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"b60cf50c-726b-4161-a917-60c94ce0a814","savedPayload":{"position":{"x":23512.21060383111,"y":28686.991280881037},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"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"}}},{"type":"Data Product","name":"Resistances","id":"c09cd1cf-bdc9-44eb-96f5-c5be6ff73018","savedPayload":{"position":{"x":23618.871306723137,"y":28653.64827017649},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Resistances","id":"7a734501-a0fb-4305-803e-7e95d477c513"}}},{"type":"Data Product","name":"Supports","id":"73629d93-5410-4146-abcf-cec699e6508f","savedPayload":{"position":{"x":23742.373887671045,"y":28628.769267696025},"targetPosition":{"x":23910.256954200282,"y":29783.445329166498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Supports","id":"bc3c43de-6312-47d4-ae3d-0c95c1b039e0"}}}],"id":"9ee38046-b40d-4f09-9ffa-5cc47e14d3ef","savedPayload":{"position":{"x":23909.89673985658,"y":29783.624657238204},"targetPosition":{"x":25074.516130996362,"y":29722.721410284623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},{"type":"Single Market Data","name":"Bitfinex ETH/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"db5a0847-7d32-407f-b998-504e6987ac5d","savedPayload":{"position":{"x":39641.333811210454,"y":28936.98413868935},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"1aa532fa-b407-484a-b905-ffcaabbd18dd","savedPayload":{"position":{"x":39612.59634583407,"y":28848.5110343909},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"311b5bc6-89b8-4111-9dff-297c8cada756","savedPayload":{"position":{"x":39594.15352768551,"y":28758.904338266497},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"55f7eed7-d7d8-4d6c-aeeb-37dc4f19e250","savedPayload":{"position":{"x":39585.513470979095,"y":28668.600155855387},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"1b8b981a-f564-4be0-b964-5a6e8aac483c","savedPayload":{"position":{"x":39586.515890435076,"y":28578.275802249987},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"6318dc61-c509-4f55-8bc1-f8c354750373","savedPayload":{"position":{"x":39597.01323868843,"y":28488.759535006342},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"b5a92b7b-49f7-4e81-96b0-65139a052f31","savedPayload":{"position":{"x":39616.82107043368,"y":28400.936525998834},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"6ce07f50-22e1-4067-89d5-35197f49c12d","savedPayload":{"position":{"x":39645.70528040039,"y":28315.720626172813},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"5ee22014-e965-4bd3-9dc4-5f278fa645e2","savedPayload":{"position":{"x":39683.34058679891,"y":28234.020419812852},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"16c5f929-dfa2-491d-8840-f7364d585534","savedPayload":{"position":{"x":39729.311389966206,"y":28156.718652140855},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"ccd8661e-6c55-4487-85c8-c8a78ef69449","savedPayload":{"position":{"x":39783.1123675581,"y":28084.656149508282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Popular EMAs","id":"99141ad2-c42b-4a92-905a-a5204bdbd028","savedPayload":{"position":{"x":39844.15303173856,"y":28018.61953084089},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"606c917d-f3c8-4bda-876b-f2a330c9e080","savedPayload":{"position":{"x":39911.76371803724,"y":27959.33092647535},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"55faf55c-a35d-4fab-b06e-a741c79eb649","savedPayload":{"position":{"x":39985.20283169866,"y":27907.43928775395},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"91c0af7b-fb28-4579-a9cd-f3bb72d3a7b5","savedPayload":{"position":{"x":40063.66492102786,"y":27863.51284455778},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"6050a905-5b53-4564-839c-704689a8040c","savedPayload":{"position":{"x":40146.28952675484,"y":27828.032723488246},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"427f90de-6fcb-4118-81ad-8edbbc56d69e","savedPayload":{"position":{"x":40232.170594436364,"y":27801.387550178282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Base5 SMAs","id":"0bc50648-a584-454e-a1f2-aa10ca3bf584","savedPayload":{"position":{"x":40320.36641444746,"y":27783.86918815466},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Bollinger Channels","id":"8443e827-1f25-4628-ad26-ae9b2ed75a4c","savedPayload":{"position":{"x":40409.909923101404,"y":27775.669478131724},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"2e75cfc3-0672-4036-ab3c-e442f25e67c5","savedPayload":{"position":{"x":40499.81663014655,"y":27776.909528674598},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"83349bb9-eb3b-420e-9179-51e5fed53a4d","savedPayload":{"position":{"x":40589.09169664543,"y":27787.555002280842},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"c691a7ca-0ca2-40e3-8d3c-0aa2d0dc67df","savedPayload":{"position":{"x":40676.76137062555,"y":27807.472594093873},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"e70866c1-2510-4173-955c-c5f051675fc2","savedPayload":{"position":{"x":40761.86594350216,"y":27836.447055375374},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"244258eb-32a2-4461-82b0-189843ae2938","savedPayload":{"position":{"x":40843.47350168687,"y":27874.160297912516},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"9142fb14-ef44-4145-8a12-f478740f683d","savedPayload":{"position":{"x":40917.71602191771,"y":27917.913249620826},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"f162aa37-3254-40df-bf80-ad675ec7013e","savedPayload":{"position":{"x":40986.24755380669,"y":27967.183543605785},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"d27bcabe-7c58-4cde-982e-7df6371566c2","savedPayload":{"position":{"x":41056.98651886182,"y":28030.330808475923},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"d8d7ee2a-c7ba-4af6-bb9b-5f079fd2bc97","savedPayload":{"position":{"x":41118.83139724332,"y":28100.72015635104},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"f7de320f-62ed-4895-a8ec-f428b4ae257e","savedPayload":{"position":{"x":41186.43383723706,"y":28204.23453473696},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}}],"id":"24ffe12b-2bb6-4fb0-be14-10c991da0f71","savedPayload":{"position":{"x":24207.876849318975,"y":28942.403177936478},"targetPosition":{"x":25074.516130996362,"y":29722.721410284623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},{"type":"Single Market Data","name":"Bitfinex ETH/BTC","dataProducts":[{"type":"Data Product","name":"Candles","id":"7231bf36-59d4-488a-92f6-b86cac06a4ee","savedPayload":{"position":{"x":39641.333811210454,"y":28936.98413868935},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"89545d86-176a-4d6c-a3c6-f5aa91bc81f9","savedPayload":{"position":{"x":39612.59634583407,"y":28848.5110343909},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"6d6dbb96-9000-4823-a406-21e08b23d9b1","savedPayload":{"position":{"x":39594.15352768551,"y":28758.904338266497},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"2e918fbb-7a86-4a0a-a2d6-63f96aba723c","savedPayload":{"position":{"x":39585.513470979095,"y":28668.600155855387},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"8cd8fadf-5f8e-4bd9-b94f-60ecc6458b2f","savedPayload":{"position":{"x":39586.515890435076,"y":28578.275802249987},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"c8addbbe-1357-4b4b-be80-8d393382ecf1","savedPayload":{"position":{"x":39597.01323868843,"y":28488.759535006342},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"1862c44e-a987-400c-912a-700c71afca0f","savedPayload":{"position":{"x":39616.82107043368,"y":28400.936525998834},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"dabf0634-d480-42fb-bb2e-412bd2f5a91a","savedPayload":{"position":{"x":39645.70528040039,"y":28315.720626172813},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"bcd2f058-b482-470b-8b05-524070d15aed","savedPayload":{"position":{"x":39683.34058679891,"y":28234.020419812852},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"544b0d58-b0a2-4d0a-b93e-6bcc8049bdfa","savedPayload":{"position":{"x":39729.311389966206,"y":28156.718652140855},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"b9992ccb-be3f-4bde-bf0c-d4f57adbbe60","savedPayload":{"position":{"x":39783.1123675581,"y":28084.656149508282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Popular EMAs","id":"dfec915e-0506-45ec-a312-f479c82f053f","savedPayload":{"position":{"x":39844.15303173856,"y":28018.61953084089},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"e887f7a3-6b04-4350-b4af-2e93f83a3f5e","savedPayload":{"position":{"x":39911.76371803724,"y":27959.33092647535},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"302cc843-8d79-40e0-91e5-55dd67ec72a1","savedPayload":{"position":{"x":39985.20283169866,"y":27907.43928775395},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"f58fb743-f2a8-4057-a8b1-94de5abfed2a","savedPayload":{"position":{"x":40063.66492102786,"y":27863.51284455778},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"a4462e08-b9c2-4087-8a28-db60b1e73da0","savedPayload":{"position":{"x":40146.28952675484,"y":27828.032723488246},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"7406f236-8c84-4667-a664-a99f4e7f7e9a","savedPayload":{"position":{"x":40232.170594436364,"y":27801.387550178282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Base5 SMAs","id":"1532eee5-30cc-402e-bccd-215e369ec6d5","savedPayload":{"position":{"x":40320.36641444746,"y":27783.86918815466},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Bollinger Channels","id":"8bbbd6dd-2046-46aa-8371-b72b6a854dd3","savedPayload":{"position":{"x":40409.909923101404,"y":27775.669478131724},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"b4723c12-5eee-4332-a2d8-5121621ec67c","savedPayload":{"position":{"x":40499.81663014655,"y":27776.909528674598},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"725e166a-50c8-4bc6-89c3-982568b131de","savedPayload":{"position":{"x":40589.09169664543,"y":27787.555002280842},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"abf1cca1-7712-49f0-ba75-5da62c3a392a","savedPayload":{"position":{"x":40676.76137062555,"y":27807.472594093873},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"eb71fb91-c7e2-41ad-9076-8ff6b16f19e7","savedPayload":{"position":{"x":40761.86594350216,"y":27836.447055375374},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"9a1c3271-ec28-4b22-bcbd-d774fd697b2a","savedPayload":{"position":{"x":40843.47350168687,"y":27874.160297912516},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"f3b6ad0d-6f9e-4326-aa14-358642d1307e","savedPayload":{"position":{"x":40917.71602191771,"y":27917.913249620826},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"e7d09883-ff94-4e49-999c-aafaca89ff88","savedPayload":{"position":{"x":40986.24755380669,"y":27967.183543605785},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"1890a6a3-73aa-49eb-86ca-ea3560f16703","savedPayload":{"position":{"x":41056.98651886182,"y":28030.330808475923},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"13e5d062-5f46-41ea-86f1-a1ea522cad64","savedPayload":{"position":{"x":41118.83139724332,"y":28100.72015635104},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"61189f6e-65e8-48c8-bdd1-7b75fad66538","savedPayload":{"position":{"x":41186.43383723706,"y":28204.23453473696},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}}],"id":"98a11c64-20d8-49f8-aee6-aad97aaef25d","savedPayload":{"position":{"x":25013.53946172551,"y":28558.101819509862},"targetPosition":{"x":25074.516130996362,"y":29722.721410284623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}}],"id":"dedbd027-6896-43e4-98f9-abb48612bfbe","savedPayload":{"position":{"x":25074.455450160727,"y":29722.665363931737},"targetPosition":{"x":25508.203215259186,"y":30113.20296378238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Bitfinex","id":"3ff59cad-42ae-4527-b060-4585cc4e7e1a"}}},{"type":"Exchange Data Products","name":"Bittrex","singleMarketData":[{"type":"Single Market Data","name":"Bittrex BTC/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"18386b37-31c2-4e85-8e17-e46e036de5b9","savedPayload":{"position":{"x":39641.333811210454,"y":28936.98413868935},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"bf4456fc-661b-4059-8cd8-9249de117055","savedPayload":{"position":{"x":39612.59634583407,"y":28848.5110343909},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"f058cb8d-ac26-49b2-a71e-03b6da20cf2c","savedPayload":{"position":{"x":39594.15352768551,"y":28758.904338266497},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"712a8c20-3a29-4c01-8292-9f7dd49626d1","savedPayload":{"position":{"x":39585.513470979095,"y":28668.600155855387},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"c944bfd2-3366-4ef8-8d86-17fb07b8236b","savedPayload":{"position":{"x":39586.515890435076,"y":28578.275802249987},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"c6b2aa08-7810-44e7-b41e-cf2c5ed6bdaa","savedPayload":{"position":{"x":39597.01323868843,"y":28488.759535006342},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"a1bdc52f-a93c-468a-9a57-3730eaf653b0","savedPayload":{"position":{"x":39616.82107043368,"y":28400.936525998834},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"8cb86b9c-bd1c-40f2-932d-39c3463c281b","savedPayload":{"position":{"x":39645.70528040039,"y":28315.720626172813},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"ae18cd86-b31a-4205-84ee-1ae5fa13a80e","savedPayload":{"position":{"x":39683.34058679891,"y":28234.020419812852},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"4d76dcf6-8f1e-46c9-a635-36f5c2afa299","savedPayload":{"position":{"x":39729.311389966206,"y":28156.718652140855},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"f06e0f2d-3494-488a-9d61-fe8ceaa22294","savedPayload":{"position":{"x":39783.1123675581,"y":28084.656149508282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Popular EMAs","id":"a660ba6d-92e9-46d4-9a44-a3f753acc5c2","savedPayload":{"position":{"x":39844.15303173856,"y":28018.61953084089},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"ec9da642-733f-4906-9030-bec8f124af77","savedPayload":{"position":{"x":39911.76371803724,"y":27959.33092647535},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"b7652a67-6fd3-458b-b1e1-c44781a2a277","savedPayload":{"position":{"x":39985.20283169866,"y":27907.43928775395},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"e66a9113-31a7-480d-93f5-4b3030fcb59a","savedPayload":{"position":{"x":40063.66492102786,"y":27863.51284455778},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"f40c85ab-ea9f-4218-b9fb-b772a80f6573","savedPayload":{"position":{"x":40146.28952675484,"y":27828.032723488246},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"cae7b3ba-fe2c-47de-8df9-d06e4c8f461d","savedPayload":{"position":{"x":40232.170594436364,"y":27801.387550178282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Base5 SMAs","id":"3249ddb7-692a-4c09-a4c3-77b96b0a64c7","savedPayload":{"position":{"x":40320.36641444746,"y":27783.86918815466},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Bollinger Channels","id":"c93aa11a-f985-47bd-b455-7e29e74ae110","savedPayload":{"position":{"x":40409.909923101404,"y":27775.669478131724},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"ad145a69-4b17-4d3e-ac0d-8457100b79db","savedPayload":{"position":{"x":40499.81663014655,"y":27776.909528674598},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"8d96c5ee-a93c-4998-9921-97df5c9bf029","savedPayload":{"position":{"x":40589.09169664543,"y":27787.555002280842},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"ed3a7c39-e271-465c-b851-28e732280269","savedPayload":{"position":{"x":40676.76137062555,"y":27807.472594093873},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"36e8fd8c-1ee2-4eb5-aee4-1ebe41904d6b","savedPayload":{"position":{"x":40761.86594350216,"y":27836.447055375374},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"cf1ee8e6-1535-407a-96a8-9fa3ca0fe961","savedPayload":{"position":{"x":40843.47350168687,"y":27874.160297912516},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"51498d52-85b8-457c-a3c0-408b2508da35","savedPayload":{"position":{"x":40917.71602191771,"y":27917.913249620826},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"1dae3f21-76fd-4c1c-9996-bcf47979864e","savedPayload":{"position":{"x":40986.24755380669,"y":27967.183543605785},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"54e34635-4dcc-419c-90eb-be0dc9e32133","savedPayload":{"position":{"x":41056.98651886182,"y":28030.330808475923},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"7611c40e-3062-4a96-9674-f226f5c597ee","savedPayload":{"position":{"x":41118.83139724332,"y":28100.72015635104},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"639fcc78-6450-44a7-910f-7dc77ff05ebd","savedPayload":{"position":{"x":41186.43383723706,"y":28204.23453473696},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}}],"id":"ab149c28-1094-4494-9f12-1b5e127dd2c9","savedPayload":{"position":{"x":24352.747582438504,"y":29229.32576578101},"targetPosition":{"x":25478.3404478132,"y":29530.81450844425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},{"type":"Single Market Data","name":"Bittrex ETH/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"e24f042c-71b5-4647-ac90-c0068c30e202","savedPayload":{"position":{"x":39641.333811210454,"y":28936.98413868935},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"05f3214d-b73d-4f1d-ac9f-df9c4f1d9872","savedPayload":{"position":{"x":39612.59634583407,"y":28848.5110343909},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"8cb63f19-fd93-4aee-b69f-b89b15e908b2","savedPayload":{"position":{"x":39594.15352768551,"y":28758.904338266497},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"9b2f804e-ff08-4f83-8608-ec6548cb8859","savedPayload":{"position":{"x":39585.513470979095,"y":28668.600155855387},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"ae616763-d384-41cc-a61a-e8a2ae01752b","savedPayload":{"position":{"x":39586.515890435076,"y":28578.275802249987},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"b0e5bf78-4bb7-478f-817a-5f5f85f7890d","savedPayload":{"position":{"x":39597.01323868843,"y":28488.759535006342},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"0d1b6fe2-e5f4-4724-89fa-f5443084ccd0","savedPayload":{"position":{"x":39616.82107043368,"y":28400.936525998834},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"22799460-416a-4ea4-9e19-bea31f5ae5b4","savedPayload":{"position":{"x":39645.70528040039,"y":28315.720626172813},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"c8cab685-fea6-4224-afee-ffa7c45e3069","savedPayload":{"position":{"x":39683.34058679891,"y":28234.020419812852},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"876b4c27-42db-430c-99eb-208d0562cc86","savedPayload":{"position":{"x":39729.311389966206,"y":28156.718652140855},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"f556f3d0-1c6e-4ee0-8128-280892ab378a","savedPayload":{"position":{"x":39783.1123675581,"y":28084.656149508282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Popular EMAs","id":"be67744f-7ee5-490e-ad75-b0ed1563df09","savedPayload":{"position":{"x":39844.15303173856,"y":28018.61953084089},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"60f28f50-15fd-4e1b-88eb-c2e1b24610fa","savedPayload":{"position":{"x":39911.76371803724,"y":27959.33092647535},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"fca7ffa6-b650-46f3-8b0a-768fdfd54332","savedPayload":{"position":{"x":39985.20283169866,"y":27907.43928775395},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"92950803-603f-49c8-b4d6-b72f86162365","savedPayload":{"position":{"x":40063.66492102786,"y":27863.51284455778},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"6da79673-bb47-4600-b4a5-fb8f88522b36","savedPayload":{"position":{"x":40146.28952675484,"y":27828.032723488246},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"dd2a07fe-1572-471b-9f9b-48a7e0392555","savedPayload":{"position":{"x":40232.170594436364,"y":27801.387550178282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Base5 SMAs","id":"3d0fbf6d-c623-4b21-8381-8641952cf6f1","savedPayload":{"position":{"x":40320.36641444746,"y":27783.86918815466},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Bollinger Channels","id":"843b0322-9811-4417-bc50-065fbe04b5d3","savedPayload":{"position":{"x":40409.909923101404,"y":27775.669478131724},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"fd558fef-2d8b-4744-aecf-754744b3cb90","savedPayload":{"position":{"x":40499.81663014655,"y":27776.909528674598},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"024b78b3-31b5-482b-8932-20e9f3abed34","savedPayload":{"position":{"x":40589.09169664543,"y":27787.555002280842},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"98d0042b-ba9a-497f-8b06-742a54c0b829","savedPayload":{"position":{"x":40676.76137062555,"y":27807.472594093873},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"510d89e2-5395-49d1-bd51-6625e52cb270","savedPayload":{"position":{"x":40761.86594350216,"y":27836.447055375374},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"a2a50fb8-37e0-4b15-9e37-ad6ed7d7d5e3","savedPayload":{"position":{"x":40843.47350168687,"y":27874.160297912516},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"dc09914f-c106-4f9e-abd1-4568e397f1ae","savedPayload":{"position":{"x":40917.71602191771,"y":27917.913249620826},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"dfc24bd8-cd07-4274-92fd-8c0c744e2c68","savedPayload":{"position":{"x":40986.24755380669,"y":27967.183543605785},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"5ed353b3-55bd-426a-99fd-1f06e244a2ac","savedPayload":{"position":{"x":41056.98651886182,"y":28030.330808475923},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"24643a9a-d0a7-4b2e-9819-2b35a6d04a59","savedPayload":{"position":{"x":41118.83139724332,"y":28100.72015635104},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"a6833160-42da-4870-ac11-4708cdc33ab5","savedPayload":{"position":{"x":41186.43383723706,"y":28204.23453473696},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}}],"id":"dc3de33d-d8b0-4ed0-8cd9-24a9c2f6ae39","savedPayload":{"position":{"x":24501.069126562343,"y":28896.093047070186},"targetPosition":{"x":25478.3404478132,"y":29530.81450844425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},{"type":"Single Market Data","name":"Bittrex ETC/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"ddd87ac2-ab9c-4ed9-9e0c-a3f3a8f343b3","savedPayload":{"position":{"x":39641.333811210454,"y":28936.98413868935},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"1c1f88b7-277c-4f55-a84c-1ae3d65880ee","savedPayload":{"position":{"x":39612.59634583407,"y":28848.5110343909},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"ed6af1ef-8cf9-44c6-aeeb-d2158e55de0c","savedPayload":{"position":{"x":39594.15352768551,"y":28758.904338266497},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"633b20d4-01c5-4690-9ce7-b88cdbd60a06","savedPayload":{"position":{"x":39585.513470979095,"y":28668.600155855387},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"fd5865d8-cdfd-4ed9-9f5d-32b2921a1405","savedPayload":{"position":{"x":39586.515890435076,"y":28578.275802249987},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"02cf98d8-a0c7-4660-a2a6-3e036fa164f1","savedPayload":{"position":{"x":39597.01323868843,"y":28488.759535006342},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"ccb3113d-5688-43fd-8d56-50c0203e83c8","savedPayload":{"position":{"x":39616.82107043368,"y":28400.936525998834},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"d8abe022-57c9-4a5b-8659-cac54108db52","savedPayload":{"position":{"x":39645.70528040039,"y":28315.720626172813},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"04a7403b-5b37-40ff-b89f-9dfa89ba823d","savedPayload":{"position":{"x":39683.34058679891,"y":28234.020419812852},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"25ffeeb8-15ae-4100-9ba1-0fd871c6ab0e","savedPayload":{"position":{"x":39729.311389966206,"y":28156.718652140855},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"b38b6d6a-66cc-4b57-84ad-5e5b68e87b12","savedPayload":{"position":{"x":39783.1123675581,"y":28084.656149508282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Popular EMAs","id":"c90fef1e-d849-40e9-bf33-daa7fab0b5a8","savedPayload":{"position":{"x":39844.15303173856,"y":28018.61953084089},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"c1db1eb1-51fd-4c6e-9337-a8ed3990544a","savedPayload":{"position":{"x":39911.76371803724,"y":27959.33092647535},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"61c35ce6-f516-4a9d-b59f-02827725baae","savedPayload":{"position":{"x":39985.20283169866,"y":27907.43928775395},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"b8927c70-a6cf-4efe-b0e1-2aa65c04f014","savedPayload":{"position":{"x":40063.66492102786,"y":27863.51284455778},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"35bbd8e0-d1e3-4958-b0ec-bd75398c5de1","savedPayload":{"position":{"x":40146.28952675484,"y":27828.032723488246},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"59ca793f-73b6-4da1-8ef8-e8d9e7f26dc2","savedPayload":{"position":{"x":40232.170594436364,"y":27801.387550178282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Base5 SMAs","id":"6de43c70-eecf-461a-a8f9-545bc53ad361","savedPayload":{"position":{"x":40320.36641444746,"y":27783.86918815466},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Bollinger Channels","id":"8d4b6559-0a08-45c3-a366-6078f233c85d","savedPayload":{"position":{"x":40409.909923101404,"y":27775.669478131724},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"0c9e1772-2c58-4c44-836f-4b26a48f9553","savedPayload":{"position":{"x":40499.81663014655,"y":27776.909528674598},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"23a549f6-48e1-457a-8cad-24ae2212c474","savedPayload":{"position":{"x":40589.09169664543,"y":27787.555002280842},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"6ea466b2-82c1-4df1-a019-76fa01c31e24","savedPayload":{"position":{"x":40676.76137062555,"y":27807.472594093873},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"4bd4551d-122d-448e-b057-7d0fea80861f","savedPayload":{"position":{"x":40761.86594350216,"y":27836.447055375374},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"6618a228-456d-4750-bfc1-1d67c30dd342","savedPayload":{"position":{"x":40843.47350168687,"y":27874.160297912516},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"397f9ef6-9408-4ff0-a648-c613eba608c3","savedPayload":{"position":{"x":40917.71602191771,"y":27917.913249620826},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"a99e142e-0d9f-4a4b-b1d6-5543515021dd","savedPayload":{"position":{"x":40986.24755380669,"y":27967.183543605785},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"2c7f3547-5f6d-43c1-b847-c3c5a50e1065","savedPayload":{"position":{"x":41056.98651886182,"y":28030.330808475923},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"2bf97109-0348-4667-8997-602fa9881b90","savedPayload":{"position":{"x":41118.83139724332,"y":28100.72015635104},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"f0dd17db-bfce-49ce-bd9e-d4fcd727ab0b","savedPayload":{"position":{"x":41186.43383723706,"y":28204.23453473696},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}}],"id":"06090a1b-21b3-4730-92e6-344bcdace9ae","savedPayload":{"position":{"x":24744.89147317478,"y":28625.12966205948},"targetPosition":{"x":25478.3404478132,"y":29530.81450844425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},{"type":"Single Market Data","name":"Bittrex XMR/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"38cff471-d74c-4fe0-b53b-9d64290df615","savedPayload":{"position":{"x":39641.333811210454,"y":28936.98413868935},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"b6e14358-eb68-4e7f-baf5-cd05ebbd9faf","savedPayload":{"position":{"x":39612.59634583407,"y":28848.5110343909},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"c8b61164-d8fc-445b-b8ab-81b35e19abb4","savedPayload":{"position":{"x":39594.15352768551,"y":28758.904338266497},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"379870d9-4fb7-42c0-aef1-0c054b89dafb","savedPayload":{"position":{"x":39585.513470979095,"y":28668.600155855387},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"ac5dd233-6cf9-4820-9ab9-a7adbd9b2429","savedPayload":{"position":{"x":39586.515890435076,"y":28578.275802249987},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"d10b824a-b980-4b29-a982-a8e1666d53ec","savedPayload":{"position":{"x":39597.01323868843,"y":28488.759535006342},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"64bb097f-4821-4e8c-bfa6-b3af05f8443d","savedPayload":{"position":{"x":39616.82107043368,"y":28400.936525998834},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"4b05b9c6-8794-45d6-b782-5e071ae635b5","savedPayload":{"position":{"x":39645.70528040039,"y":28315.720626172813},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"0417fe10-ec0d-48a5-b8e9-e0cc16a47159","savedPayload":{"position":{"x":39683.34058679891,"y":28234.020419812852},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"a28b9b3c-1b09-48fb-98f2-0adc73ba9e45","savedPayload":{"position":{"x":39729.311389966206,"y":28156.718652140855},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"8ebcc43b-051e-436d-99c9-84b16a5575f9","savedPayload":{"position":{"x":39783.1123675581,"y":28084.656149508282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Popular EMAs","id":"e2054a67-d691-415b-a17c-a6dfbc026ba7","savedPayload":{"position":{"x":39844.15303173856,"y":28018.61953084089},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"04b7414a-04eb-4913-8d27-e91c4d5207bf","savedPayload":{"position":{"x":39911.76371803724,"y":27959.33092647535},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"e46be264-9b3c-4672-b057-477fd5b4ff17","savedPayload":{"position":{"x":39985.20283169866,"y":27907.43928775395},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"24fc564c-b387-47a7-b884-e7ef8c5fb43c","savedPayload":{"position":{"x":40063.66492102786,"y":27863.51284455778},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"4e592467-d045-4d8f-85d8-051966d5f7c6","savedPayload":{"position":{"x":40146.28952675484,"y":27828.032723488246},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"1fdae58b-ae24-40a7-b6af-2422c8fc6305","savedPayload":{"position":{"x":40232.170594436364,"y":27801.387550178282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Base5 SMAs","id":"70651c9f-8d7f-40aa-8c9d-e5b6968025e6","savedPayload":{"position":{"x":40320.36641444746,"y":27783.86918815466},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Bollinger Channels","id":"504af5a8-686f-47ca-a2c7-a9d1faf9b4c4","savedPayload":{"position":{"x":40409.909923101404,"y":27775.669478131724},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"cb385521-0845-4ed1-8775-1cf4d3a7f277","savedPayload":{"position":{"x":40499.81663014655,"y":27776.909528674598},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"cabe366d-0fb1-4ad6-8a19-1339ce5411f6","savedPayload":{"position":{"x":40589.09169664543,"y":27787.555002280842},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"5df032a9-2fd9-4c4c-8a22-0ef6fcebea43","savedPayload":{"position":{"x":40676.76137062555,"y":27807.472594093873},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"b74c6e0d-997a-4b05-ab6d-59b2d9f95082","savedPayload":{"position":{"x":40761.86594350216,"y":27836.447055375374},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"32e3d829-1991-440e-b2fb-b738fc0bb0dd","savedPayload":{"position":{"x":40843.47350168687,"y":27874.160297912516},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"f0b18ad2-e19e-49ab-9330-66ea4735e8e3","savedPayload":{"position":{"x":40917.71602191771,"y":27917.913249620826},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"c627f2f0-4ed4-4f65-87f3-8b2119ec381a","savedPayload":{"position":{"x":40986.24755380669,"y":27967.183543605785},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"ead70d5a-fb27-4b8c-9d43-abd6413e849b","savedPayload":{"position":{"x":41056.98651886182,"y":28030.330808475923},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"44f08ac2-b9f2-497d-842e-e06a0f930b03","savedPayload":{"position":{"x":41118.83139724332,"y":28100.72015635104},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"deec79da-3141-4d86-908c-f2c0b72a5c13","savedPayload":{"position":{"x":41186.43383723706,"y":28204.23453473696},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}}],"id":"502a5e5b-d635-4cd8-8d4e-b4803816cb95","savedPayload":{"position":{"x":25060.992615072733,"y":28442.256412874933},"targetPosition":{"x":25478.3404478132,"y":29530.81450844425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},{"type":"Single Market Data","name":"Bittrex DASH/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"a7b8e4ed-e341-478f-ade9-608a15ca978a","savedPayload":{"position":{"x":39641.333811210454,"y":28936.98413868935},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"6735e760-6024-47c2-9005-61041c63dad1","savedPayload":{"position":{"x":39612.59634583407,"y":28848.5110343909},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"cf406371-01ec-4213-aadf-a73ca6dd7c2a","savedPayload":{"position":{"x":39594.15352768551,"y":28758.904338266497},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"60c11137-e5e8-4b1e-8440-0fe54d8eaad1","savedPayload":{"position":{"x":39585.513470979095,"y":28668.600155855387},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"47ed9747-aa4b-444d-a1ae-ee5bcd22b41b","savedPayload":{"position":{"x":39586.515890435076,"y":28578.275802249987},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"75aa5ebb-8a85-4edc-a49c-50aee8469e13","savedPayload":{"position":{"x":39597.01323868843,"y":28488.759535006342},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"2a0b2849-8f3c-42ed-bf53-4b5b3a95152a","savedPayload":{"position":{"x":39616.82107043368,"y":28400.936525998834},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"c62b975f-ec36-4c4e-bf9c-ad88c6f6b145","savedPayload":{"position":{"x":39645.70528040039,"y":28315.720626172813},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"530cf439-80c9-42e8-8d68-b22d36a3f7d5","savedPayload":{"position":{"x":39683.34058679891,"y":28234.020419812852},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"540e982f-042a-41b8-b13b-48dad95ae02d","savedPayload":{"position":{"x":39729.311389966206,"y":28156.718652140855},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"56fdc71f-06a1-4d8f-b68a-eadf7d51d504","savedPayload":{"position":{"x":39783.1123675581,"y":28084.656149508282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Popular EMAs","id":"a4bb4d63-e1f8-4de8-84b4-00cb8c33d0d3","savedPayload":{"position":{"x":39844.15303173856,"y":28018.61953084089},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"a2a18651-52ab-446e-b332-737416c50833","savedPayload":{"position":{"x":39911.76371803724,"y":27959.33092647535},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"fc8ea3a8-8dbe-4c4d-a5ec-bbbeec11bca4","savedPayload":{"position":{"x":39985.20283169866,"y":27907.43928775395},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"11ea11bd-a2cf-4be5-9a49-2ba89525146b","savedPayload":{"position":{"x":40063.66492102786,"y":27863.51284455778},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"d16eac0e-b7aa-46e8-b72d-d7053a6043c7","savedPayload":{"position":{"x":40146.28952675484,"y":27828.032723488246},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"fc7ec38a-c62f-4c0d-9883-1d7a000fc2ae","savedPayload":{"position":{"x":40232.170594436364,"y":27801.387550178282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Base5 SMAs","id":"bb037972-8e14-4029-9f39-3a53274ef2fb","savedPayload":{"position":{"x":40320.36641444746,"y":27783.86918815466},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Bollinger Channels","id":"65e1feda-46c5-474f-980a-bbc152c36176","savedPayload":{"position":{"x":40409.909923101404,"y":27775.669478131724},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"2a89e458-4e2f-4272-89e5-acf366a7579b","savedPayload":{"position":{"x":40499.81663014655,"y":27776.909528674598},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"cbb77a2c-8dce-4973-b180-635a67524784","savedPayload":{"position":{"x":40589.09169664543,"y":27787.555002280842},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"9537855d-7860-46ae-bdda-41ceaf907454","savedPayload":{"position":{"x":40676.76137062555,"y":27807.472594093873},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"375aef7f-62da-45b3-8dbd-5280a3ef1603","savedPayload":{"position":{"x":40761.86594350216,"y":27836.447055375374},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"7f8edb46-c490-468f-b8c1-9af512b9a493","savedPayload":{"position":{"x":40843.47350168687,"y":27874.160297912516},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"42110796-f5e4-490d-8b12-64bc6a0ffc08","savedPayload":{"position":{"x":40917.71602191771,"y":27917.913249620826},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"75dbbb68-6728-4297-bda9-34b73d27ad64","savedPayload":{"position":{"x":40986.24755380669,"y":27967.183543605785},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"1b3583f7-05ad-4f11-930b-3b210955c8c9","savedPayload":{"position":{"x":41056.98651886182,"y":28030.330808475923},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"21d462da-6a1f-40f5-9cec-4acb0b785a0e","savedPayload":{"position":{"x":41118.83139724332,"y":28100.72015635104},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"aa95315e-d2ce-4b3f-8b00-7cc8146dea33","savedPayload":{"position":{"x":41186.43383723706,"y":28204.23453473696},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}}],"id":"b6149abf-0b50-4cd7-bdc3-fa3763146940","savedPayload":{"position":{"x":25417.4978218559,"y":28366.902373573834},"targetPosition":{"x":25478.3404478132,"y":29530.81450844425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},{"type":"Single Market Data","name":"Bittrex ADA/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"e8f78daf-66e6-4af7-9efc-51d543d341ad","savedPayload":{"position":{"x":39641.333811210454,"y":28936.98413868935},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"5ed2aff0-7419-4c86-89ba-5c55dccc5945","savedPayload":{"position":{"x":39612.59634583407,"y":28848.5110343909},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"a2e6d9b6-bd60-481f-ac56-9594f808b78c","savedPayload":{"position":{"x":39594.15352768551,"y":28758.904338266497},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"dcec564f-b166-4808-a7bc-02cc0d172eb1","savedPayload":{"position":{"x":39585.513470979095,"y":28668.600155855387},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"56fc841c-2d61-4cc0-b009-b967270bfaab","savedPayload":{"position":{"x":39586.515890435076,"y":28578.275802249987},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"10ececf3-e4b7-4d0e-af1d-5efa2d86a911","savedPayload":{"position":{"x":39597.01323868843,"y":28488.759535006342},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"d54420f0-dfbe-4fd5-b96f-230c78e8bbc9","savedPayload":{"position":{"x":39616.82107043368,"y":28400.936525998834},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"796cbd91-12b4-48bd-880f-4a83a6e97aea","savedPayload":{"position":{"x":39645.70528040039,"y":28315.720626172813},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"691337d4-1a6c-4531-9dbf-9acf9549c531","savedPayload":{"position":{"x":39683.34058679891,"y":28234.020419812852},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"a705d1dc-5ad7-482e-99be-64b1ad09748f","savedPayload":{"position":{"x":39729.311389966206,"y":28156.718652140855},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"3064ee6c-602a-4303-bbcb-43a66af7021b","savedPayload":{"position":{"x":39783.1123675581,"y":28084.656149508282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Popular EMAs","id":"64476647-d34d-402b-82a5-521a8b647264","savedPayload":{"position":{"x":39844.15303173856,"y":28018.61953084089},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"8560c11f-af83-47b7-afe2-37c16e18ea4f","savedPayload":{"position":{"x":39911.76371803724,"y":27959.33092647535},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"c144d391-12df-47a7-b483-b0f02f731f66","savedPayload":{"position":{"x":39985.20283169866,"y":27907.43928775395},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"45d13953-e76a-4a87-9c7f-6908936d3a0e","savedPayload":{"position":{"x":40063.66492102786,"y":27863.51284455778},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"f2a5e267-e248-465c-9ebf-e5ab244a7b5f","savedPayload":{"position":{"x":40146.28952675484,"y":27828.032723488246},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"c4c49042-542d-4f50-b14d-e9860cda4150","savedPayload":{"position":{"x":40232.170594436364,"y":27801.387550178282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Base5 SMAs","id":"0b595a2a-2748-4ae4-b502-2d2cdfef5d24","savedPayload":{"position":{"x":40320.36641444746,"y":27783.86918815466},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Bollinger Channels","id":"caf7b9e1-0576-4d9f-a414-3ba9b46e75eb","savedPayload":{"position":{"x":40409.909923101404,"y":27775.669478131724},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"d8b32f0e-220e-4a5a-87ed-3588d790f4e2","savedPayload":{"position":{"x":40499.81663014655,"y":27776.909528674598},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"21dcc7b6-859b-470a-9c82-97a63e65dd2e","savedPayload":{"position":{"x":40589.09169664543,"y":27787.555002280842},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"e15720e5-644b-41cd-b18c-a98166d84d62","savedPayload":{"position":{"x":40676.76137062555,"y":27807.472594093873},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"4c7e1297-9fa7-47fe-825f-14ffb4e902f4","savedPayload":{"position":{"x":40761.86594350216,"y":27836.447055375374},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"bbc32836-a05d-4b66-a284-74b7174e50f1","savedPayload":{"position":{"x":40843.47350168687,"y":27874.160297912516},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"3969faaf-0b07-403e-a9cd-a7fabfff72bd","savedPayload":{"position":{"x":40917.71602191771,"y":27917.913249620826},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"84ebe8cf-1ef0-4fc3-9a00-4bd2b7511bdc","savedPayload":{"position":{"x":40986.24755380669,"y":27967.183543605785},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"b404c9b4-0b4d-45da-b7e5-fa19200ca7cb","savedPayload":{"position":{"x":41056.98651886182,"y":28030.330808475923},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"6b7dddbd-1781-4083-b668-2ef924dfc373","savedPayload":{"position":{"x":41118.83139724332,"y":28100.72015635104},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"bb6dff46-0a7c-433f-ab76-0b3c693d95bb","savedPayload":{"position":{"x":41186.43383723706,"y":28204.23453473696},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}}],"id":"725c3e71-f0c6-4f02-8b31-92af30289c69","savedPayload":{"position":{"x":25779.856009638646,"y":28404.93023465381},"targetPosition":{"x":25478.3404478132,"y":29530.81450844425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},{"type":"Single Market Data","name":"Bittrex TRX/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"969b13bf-452e-48bf-9000-4eed11ff644d","savedPayload":{"position":{"x":39641.333811210454,"y":28936.98413868935},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"7a0fc8bc-dd6e-4f25-aa78-27b301b57fb2","savedPayload":{"position":{"x":39612.59634583407,"y":28848.5110343909},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"11bfda30-024f-4bbe-9650-df3b30565d4f","savedPayload":{"position":{"x":39594.15352768551,"y":28758.904338266497},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"85112a16-298d-49d0-a0d4-40fa28514991","savedPayload":{"position":{"x":39585.513470979095,"y":28668.600155855387},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"a8649655-58ba-4613-ad5d-73e0cb09a968","savedPayload":{"position":{"x":39586.515890435076,"y":28578.275802249987},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"402ced77-4d3e-4e7e-a4ec-48515db4aa75","savedPayload":{"position":{"x":39597.01323868843,"y":28488.759535006342},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"f56b72d8-679d-4088-a9c6-f06261b20b12","savedPayload":{"position":{"x":39616.82107043368,"y":28400.936525998834},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"bf5c0cfe-e275-4f55-b7c1-3a239c26bc73","savedPayload":{"position":{"x":39645.70528040039,"y":28315.720626172813},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"0584f969-d053-4fad-bf9c-5e7ca5c91d80","savedPayload":{"position":{"x":39683.34058679891,"y":28234.020419812852},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"d73d610d-f649-424c-b01a-d86ebb2f2408","savedPayload":{"position":{"x":39729.311389966206,"y":28156.718652140855},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"36b804ed-9849-4ee7-bae8-8fd0e3cb4591","savedPayload":{"position":{"x":39783.1123675581,"y":28084.656149508282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Popular EMAs","id":"ceeed58a-0740-4dd8-87b5-eeeafaf435a7","savedPayload":{"position":{"x":39844.15303173856,"y":28018.61953084089},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"2d40c3fd-6ffc-4e4b-af68-cf982c651c48","savedPayload":{"position":{"x":39911.76371803724,"y":27959.33092647535},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"2ffc6f95-5ebc-4899-b47f-66c5acf3935f","savedPayload":{"position":{"x":39985.20283169866,"y":27907.43928775395},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"b407ebab-eb7f-4e61-bc62-767279c5a5b7","savedPayload":{"position":{"x":40063.66492102786,"y":27863.51284455778},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"c9520ba2-bf76-4dc7-a72b-5fd16f1a9d63","savedPayload":{"position":{"x":40146.28952675484,"y":27828.032723488246},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"4f3e6f14-1e5f-4fdd-80ce-fbe78967aaa4","savedPayload":{"position":{"x":40232.170594436364,"y":27801.387550178282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Base5 SMAs","id":"559256e3-0cea-4280-af2b-174a971fbb74","savedPayload":{"position":{"x":40320.36641444746,"y":27783.86918815466},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Bollinger Channels","id":"b084ff36-9793-4af8-a9b5-d7d106e59add","savedPayload":{"position":{"x":40409.909923101404,"y":27775.669478131724},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"fe56310c-617c-4f69-b133-a38e6fcd1695","savedPayload":{"position":{"x":40499.81663014655,"y":27776.909528674598},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"c3abee6a-f6d2-45c9-a4b7-328d04ae466d","savedPayload":{"position":{"x":40589.09169664543,"y":27787.555002280842},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"cd3da659-6d9d-4624-bb89-c637c89c2dda","savedPayload":{"position":{"x":40676.76137062555,"y":27807.472594093873},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"6b210cd5-0961-41aa-bb1f-49f06bd7a8c4","savedPayload":{"position":{"x":40761.86594350216,"y":27836.447055375374},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"37cad52c-3e13-43b4-a939-cfe22ff35dc3","savedPayload":{"position":{"x":40843.47350168687,"y":27874.160297912516},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"f5801a77-c149-431d-b3b4-52c609b68b66","savedPayload":{"position":{"x":40917.71602191771,"y":27917.913249620826},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"247ba6dd-829b-48bb-9d3f-9543ebbd03ba","savedPayload":{"position":{"x":40986.24755380669,"y":27967.183543605785},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"6337456d-169a-4ba7-a3bd-6f4830df8175","savedPayload":{"position":{"x":41056.98651886182,"y":28030.330808475923},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"dc59e3a8-8894-4058-9da6-c6807ad77262","savedPayload":{"position":{"x":41118.83139724332,"y":28100.72015635104},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"3d86a2e2-8336-4955-b3dc-7ca8c5faf5a6","savedPayload":{"position":{"x":41186.43383723706,"y":28204.23453473696},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}}],"id":"342c663b-35e2-40e5-9b7f-5e84405cc951","savedPayload":{"position":{"x":26113.0968057542,"y":28553.248728579336},"targetPosition":{"x":25478.3404478132,"y":29530.81450844425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},{"type":"Single Market Data","name":"Bittrex XLM/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"5bbb8d3b-f4a0-443d-b8f7-446057118471","savedPayload":{"position":{"x":39641.333811210454,"y":28936.98413868935},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"5655d994-fab9-4648-8294-ac801040be2b","savedPayload":{"position":{"x":39612.59634583407,"y":28848.5110343909},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"cca878dd-2f01-45e0-9802-7483b42b4215","savedPayload":{"position":{"x":39594.15352768551,"y":28758.904338266497},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"ab510dbb-bf7d-4ead-8bef-95b9879c36c1","savedPayload":{"position":{"x":39585.513470979095,"y":28668.600155855387},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"e14abcc3-2fa6-481a-8a81-a92029da9366","savedPayload":{"position":{"x":39586.515890435076,"y":28578.275802249987},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"df680775-c023-4053-afe8-c19f4d115335","savedPayload":{"position":{"x":39597.01323868843,"y":28488.759535006342},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"4efedf7e-dab7-433a-9618-f99e4fe49a0b","savedPayload":{"position":{"x":39616.82107043368,"y":28400.936525998834},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"72979cdb-b3d5-4f6f-919f-9c686645d5eb","savedPayload":{"position":{"x":39645.70528040039,"y":28315.720626172813},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"291decd2-466c-41a9-8151-804479477adb","savedPayload":{"position":{"x":39683.34058679891,"y":28234.020419812852},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"a27654cd-6702-4493-a88a-10b20544821e","savedPayload":{"position":{"x":39729.311389966206,"y":28156.718652140855},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"25c69e81-14db-4730-b7b7-20af2191dc82","savedPayload":{"position":{"x":39783.1123675581,"y":28084.656149508282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Popular EMAs","id":"bb17d643-2b04-4ada-8541-dc2ef8695f9d","savedPayload":{"position":{"x":39844.15303173856,"y":28018.61953084089},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"b5124327-5cbd-48a7-b503-88bdbef311f4","savedPayload":{"position":{"x":39911.76371803724,"y":27959.33092647535},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"e7e994e4-fd5e-4e1a-824b-4b22abc0529e","savedPayload":{"position":{"x":39985.20283169866,"y":27907.43928775395},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"11022614-5256-4cfc-b173-bc14399ff681","savedPayload":{"position":{"x":40063.66492102786,"y":27863.51284455778},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"e16bb3c7-c4d0-4657-8847-3da74df42eb5","savedPayload":{"position":{"x":40146.28952675484,"y":27828.032723488246},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"a8a96c84-a857-4e37-b01d-26fdb08d7307","savedPayload":{"position":{"x":40232.170594436364,"y":27801.387550178282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Base5 SMAs","id":"5a36f514-879f-4443-b37a-d40ff2a03970","savedPayload":{"position":{"x":40320.36641444746,"y":27783.86918815466},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Bollinger Channels","id":"d1b38bb9-1c33-4a6c-8bac-f596a8ba35fa","savedPayload":{"position":{"x":40409.909923101404,"y":27775.669478131724},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"5f2a5acb-6dee-4190-b4f2-a86dd0a04ea3","savedPayload":{"position":{"x":40499.81663014655,"y":27776.909528674598},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"fee0fa2a-eea9-4d4e-834a-9337642d570e","savedPayload":{"position":{"x":40589.09169664543,"y":27787.555002280842},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"7dd49ba4-7acf-4d69-b5d0-12baec0062e6","savedPayload":{"position":{"x":40676.76137062555,"y":27807.472594093873},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"7c5a650e-292b-4a1f-a3a2-9c70f8640392","savedPayload":{"position":{"x":40761.86594350216,"y":27836.447055375374},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"69373311-1e44-4c8c-8db4-88c32c7275aa","savedPayload":{"position":{"x":40843.47350168687,"y":27874.160297912516},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"6fa635b4-61d4-49c2-8968-51f916c742b1","savedPayload":{"position":{"x":40917.71602191771,"y":27917.913249620826},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"59c5ad31-6b02-44d5-82b5-5243a7235cec","savedPayload":{"position":{"x":40986.24755380669,"y":27967.183543605785},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"d7bac61e-3408-4b59-b4f2-4c4dd31b10a1","savedPayload":{"position":{"x":41056.98651886182,"y":28030.330808475923},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"14ef8c1f-3e5e-4f2e-8a1f-7bf01456add4","savedPayload":{"position":{"x":41118.83139724332,"y":28100.72015635104},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"fd88626d-4ea2-40ce-b4d5-df984e0b51eb","savedPayload":{"position":{"x":41186.43383723706,"y":28204.23453473696},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}}],"id":"3294aebb-8a68-4ec1-b8b5-3e3b9c73c15b","savedPayload":{"position":{"x":26383.906234579415,"y":28797.485459631727},"targetPosition":{"x":25478.3404478132,"y":29530.81450844425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},{"type":"Single Market Data","name":"Bittrex EOS/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"1a7ba5e5-ea1d-4d08-a6da-a124be2cf405","savedPayload":{"position":{"x":39641.333811210454,"y":28936.98413868935},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"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","id":"ba417f39-c1ca-4735-8652-aa1759d0952b","savedPayload":{"position":{"x":39612.59634583407,"y":28848.5110343909},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"7b5d970c-a09f-4fd9-a1bd-243d558d851b","savedPayload":{"position":{"x":39594.15352768551,"y":28758.904338266497},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"f4b99732-9571-467b-ace0-a52ac23231f2","savedPayload":{"position":{"x":39585.513470979095,"y":28668.600155855387},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"18b9684f-69ea-4768-a7e1-c48a90c70fee","savedPayload":{"position":{"x":39586.515890435076,"y":28578.275802249987},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"8dd768bd-c47c-4bca-9a0a-744ce3c5cbaf","savedPayload":{"position":{"x":39597.01323868843,"y":28488.759535006342},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"08b3fb60-b2f3-4a24-8b6d-f686f860a8a9","savedPayload":{"position":{"x":39616.82107043368,"y":28400.936525998834},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"a8d309f1-437b-4f03-abf2-d226535443d5","savedPayload":{"position":{"x":39645.70528040039,"y":28315.720626172813},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"8d30954e-e8cb-4422-9936-b3db8eeb2230","savedPayload":{"position":{"x":39683.34058679891,"y":28234.020419812852},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"93116bf3-566d-473c-8778-ab6b2f273b14","savedPayload":{"position":{"x":39729.311389966206,"y":28156.718652140855},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"cacef726-dff8-4943-a17f-7d8bdb4b9597","savedPayload":{"position":{"x":39783.1123675581,"y":28084.656149508282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Popular EMAs","id":"8f495edb-4a00-4bad-a2cf-7bd33dcc3d74","savedPayload":{"position":{"x":39844.15303173856,"y":28018.61953084089},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"1843ab42-2d74-4473-8059-cb27a5945383","savedPayload":{"position":{"x":39911.76371803724,"y":27959.33092647535},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"4355b685-22c8-4117-bde8-a24bde773d43","savedPayload":{"position":{"x":39985.20283169866,"y":27907.43928775395},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"6a4acfa9-3272-4d9c-acda-db0965821b1b","savedPayload":{"position":{"x":40063.66492102786,"y":27863.51284455778},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"bfc6057a-19d3-498c-bcf4-80c07ade8d94","savedPayload":{"position":{"x":40146.28952675484,"y":27828.032723488246},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"402b3d3f-7860-4dd8-8d35-d514c1e1dd04","savedPayload":{"position":{"x":40232.170594436364,"y":27801.387550178282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Base5 SMAs","id":"0b7ef0ae-a553-4fb2-b48a-4c8f420ad664","savedPayload":{"position":{"x":40320.36641444746,"y":27783.86918815466},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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":"Bollinger Channels","id":"7e67d8a3-5ef5-4367-84dc-e9fa04a24237","savedPayload":{"position":{"x":40409.909923101404,"y":27775.669478131724},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"5cb33464-e8b8-4fa7-80f5-9706644af076","savedPayload":{"position":{"x":40499.81663014655,"y":27776.909528674598},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"eed55490-f343-4776-9b11-abe576113cef","savedPayload":{"position":{"x":40589.09169664543,"y":27787.555002280842},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"56953a9e-d54f-4d93-99df-3aee612b4e87","savedPayload":{"position":{"x":40676.76137062555,"y":27807.472594093873},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"50f3059d-175c-429f-ba3f-92e375789894","savedPayload":{"position":{"x":40761.86594350216,"y":27836.447055375374},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"0022476c-d823-4277-9baa-0528a23eadd1","savedPayload":{"position":{"x":40843.47350168687,"y":27874.160297912516},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"468616a3-d103-47d8-b3fe-a70d285e0119","savedPayload":{"position":{"x":40917.71602191771,"y":27917.913249620826},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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","id":"cc89dc87-2b5a-47de-8b80-eb8aafccfcd0","savedPayload":{"position":{"x":40986.24755380669,"y":27967.183543605785},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}},{"type":"Data Product","name":"Bollinger Channels","id":"92cbf1a4-0309-46e9-b2b5-3ce1a602bd24","savedPayload":{"position":{"x":41056.98651886182,"y":28030.330808475923},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"f3cf71ca-2147-4e4a-9361-094ec2a24e1b","savedPayload":{"position":{"x":41118.83139724332,"y":28100.72015635104},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"671e1bec-40a8-44e1-9838-ec86f815b9b9","savedPayload":{"position":{"x":41186.43383723706,"y":28204.23453473696},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"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"}}}],"id":"448d0b37-7cdf-4f23-8c92-dd978390606e","savedPayload":{"position":{"x":26566.393552495545,"y":29113.19524113364},"targetPosition":{"x":25478.3404478132,"y":29530.81450844425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}}],"id":"066e8485-6104-4462-b9b0-4f7a6cb7a852","savedPayload":{"position":{"x":25477.643710378197,"y":29530.33464456329},"targetPosition":{"x":25508.203215259186,"y":30113.20296378238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Bittrex","id":"a9a5c7bc-797b-4cd1-b24e-a627cd396d3e"}}}],"id":"bf04ccea-266d-4115-b50e-fefdf29b873a","savedPayload":{"position":{"x":25508.203215259186,"y":30113.20296378238},"targetPosition":{"x":25941.95025015318,"y":30503.689499234977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"i"}}},"sessionBasedData":{"type":"Session Based Data","name":"New Session Based Data","exchangeSessions":[{"type":"Exchange Sessions","name":"Binance","sessionReferences":[{"type":"Session Reference","name":"Back WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"c53d8a77-b1d4-446c-9bef-8458b832c5e5","savedPayload":{"position":{"x":40971.62547458223,"y":28704.67815778764},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"0f1e10be-0da8-4d10-93d7-35e407579cb0","savedPayload":{"position":{"x":40739.2805936536,"y":28612.68448755448},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"302de277-a428-4cc0-8757-b2ef7de6040b","savedPayload":{"position":{"x":40648.47472250254,"y":28380.33960662585},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"a85fc58e-5b58-449b-b733-c3a623e1d5d4","savedPayload":{"position":{"x":40749.374350272024,"y":28158.088482315645},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"38a030ff-3c7c-4177-ab90-59721be64e6e","savedPayload":{"position":{"x":40971.62547458223,"y":28380.33960662585},"targetPosition":{"x":41034.51136563778,"y":28696.544935681453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"5395e975-901e-4d8f-95a8-685b538f7d01","savedPayload":{"position":{"x":25010.649164135288,"y":29442.0306094599},"targetPosition":{"x":25883.325943783108,"y":29378.936500086696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"44357648-e96f-4e38-b23d-192f2a73107a"}}},{"type":"Session Reference","name":"Paper WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"86135c4b-7161-4602-8331-5ada9f2621ea","savedPayload":{"position":{"x":41557.474267378886,"y":28704.538380895512},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"a19aea16-1776-4222-abc3-9441c55fdff8","savedPayload":{"position":{"x":41328.36437304013,"y":28614.669001956987},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"48bafad6-7649-4128-ade0-c9d706fc895b","savedPayload":{"position":{"x":41238.701960314706,"y":28385.55910761823},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"716af81c-fb38-4488-9e39-73ca2fdbaa21","savedPayload":{"position":{"x":41328.657032916315,"y":28156.74187315566},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"766e1cd9-ad8d-4d49-b7ed-855e818fb25c","savedPayload":{"position":{"x":41557.474267378886,"y":28385.55910761823},"targetPosition":{"x":41536.37709492533,"y":28707.266395142844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"dde98548-3790-4d32-9bef-b576599c6803","savedPayload":{"position":{"x":25020.896519131282,"y":29231.525321925536},"targetPosition":{"x":25883.325943783108,"y":29378.936500086696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"1d6b5b33-21b7-4331-998c-bf9225c76bd6"}}},{"type":"Session Reference","name":"Live Trading WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"527c6b54-c797-4977-99d1-36b89e08f5bb","savedPayload":{"position":{"x":42124.2954678251,"y":28863.166820214137},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"8a538782-87e4-45e7-90fe-879d921f3a84","savedPayload":{"position":{"x":41899.82203310804,"y":28765.34236295704},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"824314e2-9950-4479-af8d-ed86864b935f","savedPayload":{"position":{"x":41803.41381185934,"y":28540.86892823998},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"f4cceeeb-e0a3-4e0b-81e8-f4d1a9c64d8f","savedPayload":{"position":{"x":41897.44019113757,"y":28314.01365155245},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"1eb86f13-5736-431d-9485-b9004407ff9e","savedPayload":{"position":{"x":42124.2954678251,"y":28540.86892823998},"targetPosition":{"x":42020.66210112073,"y":28846.1629818523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"7b5b5ff5-d9b8-4f83-838b-805383e0c8f7","savedPayload":{"position":{"x":25081.33694793941,"y":29029.499127829233},"targetPosition":{"x":25883.325943783108,"y":29378.936500086696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"e50eb025-56d8-4c8e-a1aa-004f3a3e2f41"}}},{"type":"Session Reference","name":"Fwd WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"11799e85-e7db-4069-8485-24039fb9ec8c","savedPayload":{"position":{"x":42492.63963403888,"y":28500.7397102676},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"4b336f24-4ef4-47bd-a768-ce8ff0bf3ddc","savedPayload":{"position":{"x":42710.36396962775,"y":28492.07047492605},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"69df429a-96ca-4830-b234-a9c214beef8c","savedPayload":{"position":{"x":42891.7169300037,"y":28613.377753949273},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"8219cb27-d00c-404c-af8d-707ed0e5bf93","savedPayload":{"position":{"x":42967.139262708275,"y":28818.147267745622},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"720a88be-9408-418d-9545-8e8e8bfe6a53","savedPayload":{"position":{"x":42636.198275976094,"y":28799.555013396635},"targetPosition":{"x":42436.14135357761,"y":29099.04809298164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"af8c7ef9-1611-44f8-9fc9-f600c7cc1887","savedPayload":{"position":{"x":25188.357207296576,"y":28847.8140904285},"targetPosition":{"x":25883.325943783108,"y":29378.936500086696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Forward Testing Session","name":"Fwd WHB","id":"b59b370b-634d-45ea-b4ec-49b1fb32fc9a"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"ac6e339c-3702-4311-81c7-b6a4f6e556bd","savedPayload":{"position":{"x":40971.62547458223,"y":28704.67815778764},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"75198a71-5f02-4975-b8c6-161e883c946b","savedPayload":{"position":{"x":40739.2805936536,"y":28612.68448755448},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"ae479800-3046-4727-a7fd-c34eb55facd5","savedPayload":{"position":{"x":40648.47472250254,"y":28380.33960662585},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"bb3a2219-7fa9-466a-99c8-7d0143ba9cd2","savedPayload":{"position":{"x":40749.374350272024,"y":28158.088482315645},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"8f1fb70f-50e1-415a-b527-fcac706ef5d9","savedPayload":{"position":{"x":40971.62547458223,"y":28380.33960662585},"targetPosition":{"x":41034.51136563778,"y":28696.544935681453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"cedbd67e-72b6-48b5-9059-0d97981209b8","savedPayload":{"position":{"x":25335.7183824325,"y":28696.934515964716},"targetPosition":{"x":25883.325943783108,"y":29378.936500086696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"40d6fe94-8e96-452a-9138-bd2cdeea66fb"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"e08f86ed-a70e-4992-a629-aba8cb5974a0","savedPayload":{"position":{"x":41557.474267378886,"y":28704.538380895512},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"2fa173f0-7dc6-4092-a353-df11cbbf94e6","savedPayload":{"position":{"x":41328.36437304013,"y":28614.669001956987},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"371864f3-f899-49bf-9550-8eeac54cc4e0","savedPayload":{"position":{"x":41238.701960314706,"y":28385.55910761823},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"1480e422-f905-462a-8472-4abef0c8a9c3","savedPayload":{"position":{"x":41328.657032916315,"y":28156.74187315566},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"fc65a91a-7abe-4553-a4fa-abd428f8f811","savedPayload":{"position":{"x":41557.474267378886,"y":28385.55910761823},"targetPosition":{"x":41536.37709492533,"y":28707.266395142844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"77da287f-4094-4523-922e-67e3f14e7901","savedPayload":{"position":{"x":25514.839481318377,"y":28585.713349810034},"targetPosition":{"x":25883.325943783108,"y":29378.936500086696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"62400ed1-c5b2-48dc-a706-58b4657a2dd9"}}},{"type":"Session Reference","name":"Live Trading WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"d7302c42-c04d-4e40-ae81-53a3d5ab6973","savedPayload":{"position":{"x":42124.2954678251,"y":28863.166820214137},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"7cd519e8-5891-49c9-85ae-ee9be4af47b1","savedPayload":{"position":{"x":41899.82203310804,"y":28765.34236295704},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"a7e568fd-34cc-4947-823e-de9537a218f4","savedPayload":{"position":{"x":41803.41381185934,"y":28540.86892823998},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"983419aa-c0b7-443c-9662-ab5ebc7789bb","savedPayload":{"position":{"x":41897.44019113757,"y":28314.01365155245},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"f1595852-bcbe-4b62-b28d-85929e5ee0ac","savedPayload":{"position":{"x":42124.2954678251,"y":28540.86892823998},"targetPosition":{"x":42020.66210112073,"y":28846.1629818523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"94be2668-9050-4f6c-92d6-1edb3c643d66","savedPayload":{"position":{"x":25715.154096691116,"y":28520.794406506804},"targetPosition":{"x":25883.325943783108,"y":29378.936500086696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"1e3014ed-577c-4c13-92e8-538071779248"}}},{"type":"Session Reference","name":"Fwd WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"9dbc8439-506c-45f6-9fff-53efa1b9e49e","savedPayload":{"position":{"x":42492.63963403888,"y":28500.7397102676},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"72912a92-465b-475c-adba-38eccfdc3feb","savedPayload":{"position":{"x":42710.36396962775,"y":28492.07047492605},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"78f9823a-c50f-4181-851f-6e7ce7dfec68","savedPayload":{"position":{"x":42891.7169300037,"y":28613.377753949273},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"4df740e7-dc01-4d8b-a524-921242be2461","savedPayload":{"position":{"x":42967.139262708275,"y":28818.147267745622},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"af8adf14-b9c1-4c6f-84ec-2e1edd8a407b","savedPayload":{"position":{"x":42636.198275976094,"y":28799.555013396635},"targetPosition":{"x":42436.14135357761,"y":29099.04809298164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"1243a61e-5359-4597-8edd-29be8ad4650d","savedPayload":{"position":{"x":25925.410595795944,"y":28505.076958254806},"targetPosition":{"x":25883.325943783108,"y":29378.936500086696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Forward Testing Session","name":"Fwd WHB","id":"985b10f7-2506-4bd8-bd60-1e8d0e1b521c"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"e2ac8a3b-67a4-4fb0-92e7-520cccb48d82","savedPayload":{"position":{"x":40971.62547458223,"y":28704.67815778764},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"7a5fb561-1307-43e6-9b34-2a35dac865ad","savedPayload":{"position":{"x":40739.2805936536,"y":28612.68448755448},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"24962019-f13a-4530-907c-492af5dd145d","savedPayload":{"position":{"x":40648.47472250254,"y":28380.33960662585},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"2e976c51-c1c9-4347-9db2-7c7deca89d28","savedPayload":{"position":{"x":40749.374350272024,"y":28158.088482315645},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"12e19547-4dca-4cc2-a1c2-2d084e1f352e","savedPayload":{"position":{"x":40971.62547458223,"y":28380.33960662585},"targetPosition":{"x":41034.51136563778,"y":28696.544935681453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"97819a51-c58e-4cd8-9354-6099ee00a1f3","savedPayload":{"position":{"x":26167.374714856644,"y":28519.42758780614},"targetPosition":{"x":25883.325943783108,"y":29378.936500086696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"343a2069-23b2-46ff-93ee-06df825bb14a"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"b34828ab-b807-49c9-ad9a-dd42c0f4f656","savedPayload":{"position":{"x":41557.474267378886,"y":28704.538380895512},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"8624e12a-5ed5-45d5-b142-f80182af0633","savedPayload":{"position":{"x":41328.36437304013,"y":28614.669001956987},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"248329f6-dff0-473d-9a8f-ef4cd20669f5","savedPayload":{"position":{"x":41238.701960314706,"y":28385.55910761823},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"6555b383-f5e5-4dbf-8a35-47bcfcec27a5","savedPayload":{"position":{"x":41328.657032916315,"y":28156.74187315566},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"d99f8b63-a533-4ae8-8674-4a63d1b02ef8","savedPayload":{"position":{"x":41557.474267378886,"y":28385.55910761823},"targetPosition":{"x":41536.37709492533,"y":28707.266395142844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"e3561327-2ad4-4475-8b2a-81a615b01ab0","savedPayload":{"position":{"x":26327.212443877335,"y":28624.67901658556},"targetPosition":{"x":25883.325943783108,"y":29378.936500086696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"60e0ea62-1451-4c13-a9f0-222cd24f1230"}}},{"type":"Session Reference","name":"Live Trading WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"ccf46688-a170-415e-b02a-2086ea54303a","savedPayload":{"position":{"x":42124.2954678251,"y":28863.166820214137},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"d4ec1ce0-bb1e-4264-bf21-cb8a5fc1a503","savedPayload":{"position":{"x":41899.82203310804,"y":28765.34236295704},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"979497e1-fc1d-45ff-a315-dc38732d1f5d","savedPayload":{"position":{"x":41803.41381185934,"y":28540.86892823998},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"a31e1238-a02a-4f7f-afb4-4eccb55d7134","savedPayload":{"position":{"x":41897.44019113757,"y":28314.01365155245},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"6b206211-66ff-4115-9a89-231c91a632d1","savedPayload":{"position":{"x":42124.2954678251,"y":28540.86892823998},"targetPosition":{"x":42020.66210112073,"y":28846.1629818523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"3a4157f4-9b0e-43a6-9585-046f18850dbc","savedPayload":{"position":{"x":26494.96914576387,"y":28752.997550641692},"targetPosition":{"x":25883.325943783108,"y":29378.936500086696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"ed1c4e01-7ea7-4ecb-8421-dfbb6b860d6a"}}},{"type":"Session Reference","name":"Fwd WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"fb7a0d59-28c0-4e85-8263-2fca9291395f","savedPayload":{"position":{"x":42492.63963403888,"y":28500.7397102676},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"a895b4b5-54be-420d-9f60-4afefce04b20","savedPayload":{"position":{"x":42710.36396962775,"y":28492.07047492605},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"ed2abc11-a45f-4e39-b4ae-ef677aec9690","savedPayload":{"position":{"x":42891.7169300037,"y":28613.377753949273},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"dc4f0ddf-405d-4f6a-8954-3dbab72561ae","savedPayload":{"position":{"x":42967.139262708275,"y":28818.147267745622},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"d388f020-16a7-4618-a100-a2520bb44978","savedPayload":{"position":{"x":42636.198275976094,"y":28799.555013396635},"targetPosition":{"x":42436.14135357761,"y":29099.04809298164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"1715f8aa-7698-4bbb-92ed-3431e390cef7","savedPayload":{"position":{"x":26626.70866456434,"y":28917.479674969618},"targetPosition":{"x":25883.325943783108,"y":29378.936500086696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Forward Testing Session","name":"Fwd WHB","id":"2de12c44-9f02-4fa9-995b-cd4e0702d642"}}}],"id":"4fa4b48a-6c18-42d0-addc-f5a02d2e8952","savedPayload":{"position":{"x":25882.842626084057,"y":29377.683067753285},"targetPosition":{"x":26063.15791303317,"y":29932.8015750637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}},{"type":"Exchange Sessions","name":"Bitfinex","sessionReferences":[{"type":"Session Reference","name":"Back WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"516a1509-9f5f-4b61-b68d-9c909d3b8e68","savedPayload":{"position":{"x":40971.62547458223,"y":28704.67815778764},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"977ad327-512d-4d5d-9eda-7300e1e9b155","savedPayload":{"position":{"x":40739.2805936536,"y":28612.68448755448},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"b32f6163-26d6-48ad-8cfe-895962be4423","savedPayload":{"position":{"x":40648.47472250254,"y":28380.33960662585},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"c6fc5b0d-ff9b-4bac-a5d5-2202b4b6bf65","savedPayload":{"position":{"x":40749.374350272024,"y":28158.088482315645},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"3c8668f0-7e2e-445d-80ce-7c1cee6287b5","savedPayload":{"position":{"x":40971.62547458223,"y":28380.33960662585},"targetPosition":{"x":41034.51136563778,"y":28696.544935681453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"c54d7121-d148-4151-a355-cca605325307","savedPayload":{"position":{"x":25962.90392131191,"y":28776.823652722684},"targetPosition":{"x":26454.006407405348,"y":29500.459902456496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"7de73196-0e44-4e7f-b86e-bc5d89cd8c18"}}},{"type":"Session Reference","name":"Paper WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"2bb7ea2d-a457-4ac9-98db-36498996679c","savedPayload":{"position":{"x":41557.474267378886,"y":28704.538380895512},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"80f1751b-0a93-414b-b1ff-a26361ea7ca8","savedPayload":{"position":{"x":41328.36437304013,"y":28614.669001956987},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"7ab2d3fd-c160-4db8-baef-9751dff11606","savedPayload":{"position":{"x":41238.701960314706,"y":28385.55910761823},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"1702e9f5-5319-4c2b-a42f-66f37ad6db47","savedPayload":{"position":{"x":41328.657032916315,"y":28156.74187315566},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"5512cf00-77f4-4159-b95f-bf60864f4660","savedPayload":{"position":{"x":41557.474267378886,"y":28385.55910761823},"targetPosition":{"x":41536.37709492533,"y":28707.266395142844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"b086c48a-b55c-442a-a20b-9d59c7d9e7f3","savedPayload":{"position":{"x":26150.629790947874,"y":28680.834634873616},"targetPosition":{"x":26454.006407405348,"y":29500.459902456496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"9b06d8ea-606c-4935-a9de-cfaebdb0f13e"}}},{"type":"Session Reference","name":"Live Trading WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"69356347-8b0c-4fbc-b280-aa9062704fae","savedPayload":{"position":{"x":42124.2954678251,"y":28863.166820214137},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"454eab4f-b3e1-4bb1-bd63-fdbd0f1a873a","savedPayload":{"position":{"x":41899.82203310804,"y":28765.34236295704},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"362e6861-aac6-49bf-b7e3-393fd0e1a4e5","savedPayload":{"position":{"x":41803.41381185934,"y":28540.86892823998},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"5754e659-008a-4c78-a74d-abe6cae82799","savedPayload":{"position":{"x":41897.44019113757,"y":28314.01365155245},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"e9456961-7e55-4d0c-8416-6b66ca2c3789","savedPayload":{"position":{"x":42124.2954678251,"y":28540.86892823998},"targetPosition":{"x":42020.66210112073,"y":28846.1629818523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"09143240-af0a-4636-ac2b-308aac35ac81","savedPayload":{"position":{"x":26392.014350022226,"y":28637.36775996326},"targetPosition":{"x":26454.006407405348,"y":29500.459902456496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"dcf7c50c-1136-4dec-a148-e2df09f2a9e0"}}},{"type":"Session Reference","name":"Fwd WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"2daaf951-8ba9-41a8-8f00-4823e5a060b8","savedPayload":{"position":{"x":42492.63963403888,"y":28500.7397102676},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"a42db4cb-8572-438b-a904-e09a26239622","savedPayload":{"position":{"x":42710.36396962775,"y":28492.07047492605},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"8a5e18dd-59c7-48a9-af1a-963fb114889b","savedPayload":{"position":{"x":42891.7169300037,"y":28613.377753949273},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"7f2b1543-352b-44f1-bcff-501bf021dec9","savedPayload":{"position":{"x":42967.139262708275,"y":28818.147267745622},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"aeb1fd45-44ae-4b44-af2f-504e319038a0","savedPayload":{"position":{"x":42636.198275976094,"y":28799.555013396635},"targetPosition":{"x":42436.14135357761,"y":29099.04809298164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"132a40e3-6f61-4c3a-a1b0-661d391fa5e1","savedPayload":{"position":{"x":26567.13884161537,"y":28632.273677243604},"targetPosition":{"x":26454.006407405348,"y":29500.459902456496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Forward Testing Session","name":"Fwd WHB","id":"cd251c3a-d744-4c7c-95f7-e25767cad491"}}},{"type":"Session Reference","name":"Back WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"d3366b10-fa22-4725-baf9-7a32e539ea1f","savedPayload":{"position":{"x":40971.62547458223,"y":28704.67815778764},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"eab6c873-15e1-4d89-be61-283ce19466c4","savedPayload":{"position":{"x":40739.2805936536,"y":28612.68448755448},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"dfcaaffc-321f-4c66-a3f7-71204cc2270d","savedPayload":{"position":{"x":40648.47472250254,"y":28380.33960662585},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"85e9d71f-7cde-48d6-b2c7-941c201ce607","savedPayload":{"position":{"x":40749.374350272024,"y":28158.088482315645},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"f26ef586-d2a5-41b0-9a6c-e48f1ea3549a","savedPayload":{"position":{"x":40971.62547458223,"y":28380.33960662585},"targetPosition":{"x":41034.51136563778,"y":28696.544935681453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"8e99bb64-6032-48e2-90e6-e067f081ea64","savedPayload":{"position":{"x":26771.175110434127,"y":28684.86264579188},"targetPosition":{"x":26454.006407405348,"y":29500.459902456496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"79d39424-cb62-4067-9d61-79ee417b3d8b"}}},{"type":"Session Reference","name":"Paper WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"57f048db-6099-4b22-860e-9ee0d03cb642","savedPayload":{"position":{"x":41557.474267378886,"y":28704.538380895512},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"011bbfc9-2c72-4295-b4ba-f620003b7687","savedPayload":{"position":{"x":41328.36437304013,"y":28614.669001956987},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"8edfaf6e-b6d8-475c-8378-29d8605515b6","savedPayload":{"position":{"x":41238.701960314706,"y":28385.55910761823},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"160d4652-15a8-44dd-a230-a5c5bd4fd8de","savedPayload":{"position":{"x":41328.657032916315,"y":28156.74187315566},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"0b554a70-9528-48df-8083-806a16c055ab","savedPayload":{"position":{"x":41557.474267378886,"y":28385.55910761823},"targetPosition":{"x":41536.37709492533,"y":28707.266395142844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"57c3440b-db40-45ee-8e94-982bd7fea991","savedPayload":{"position":{"x":26956.97696599467,"y":28784.527448910492},"targetPosition":{"x":26454.006407405348,"y":29500.459902456496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"bf175700-6956-4130-8132-8b7b041544bc"}}},{"type":"Session Reference","name":"Live Trading WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"8b53b255-12d3-47b3-a871-0d851c8bc8ae","savedPayload":{"position":{"x":42124.2954678251,"y":28863.166820214137},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"843d8d51-1117-41ff-a49a-8c4997ab4c2d","savedPayload":{"position":{"x":41899.82203310804,"y":28765.34236295704},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"98b9505a-321f-4a53-9f26-285e75511bf3","savedPayload":{"position":{"x":41803.41381185934,"y":28540.86892823998},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"47996c06-9545-4455-ac2d-d1a7ec09fa55","savedPayload":{"position":{"x":41897.44019113757,"y":28314.01365155245},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"169bf89c-1b48-4bde-bd4e-b6529995f342","savedPayload":{"position":{"x":42124.2954678251,"y":28540.86892823998},"targetPosition":{"x":42020.66210112073,"y":28846.1629818523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"f5fd2e7d-26f5-4630-8e12-3a4a05a8b3d0","savedPayload":{"position":{"x":27113.610001585297,"y":28925.700151524816},"targetPosition":{"x":26454.006407405348,"y":29500.459902456496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"cefe5475-ad20-46b0-8ebc-92bb213626bf"}}},{"type":"Session Reference","name":"Fwd WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"56f265cd-0b1e-4a6b-be41-edfed0323a0b","savedPayload":{"position":{"x":42492.63963403888,"y":28500.7397102676},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"e644e7dc-8362-41dd-b4be-e2cc5dd6a117","savedPayload":{"position":{"x":42710.36396962775,"y":28492.07047492605},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"97805367-6a8c-4b1c-b44c-6621f76e23e9","savedPayload":{"position":{"x":42891.7169300037,"y":28613.377753949273},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"7b70c767-5bd4-4933-a691-7a92e80bf40c","savedPayload":{"position":{"x":42967.139262708275,"y":28818.147267745622},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"d5b038e3-4ce8-4848-b1b3-5c43bac3ed29","savedPayload":{"position":{"x":42636.198275976094,"y":28799.555013396635},"targetPosition":{"x":42436.14135357761,"y":29099.04809298164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"e1d60f09-45d5-42af-9b49-193f96e30656","savedPayload":{"position":{"x":27231.963653097013,"y":29100.23324410124},"targetPosition":{"x":26454.006407405348,"y":29500.459902456496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Forward Testing Session","name":"Fwd WHB","id":"ae8da722-ddef-463f-8439-e3a9e5501eff"}}},{"type":"Session Reference","name":"Back WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"91ab681f-50ea-4b07-a7b4-1e8387b91662","savedPayload":{"position":{"x":40971.62547458223,"y":28704.67815778764},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"c5a1bfa7-a778-41c0-9f83-05af2de17ce1","savedPayload":{"position":{"x":40739.2805936536,"y":28612.68448755448},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"e447664b-aef8-4ad1-b097-aa9e44bed78d","savedPayload":{"position":{"x":40648.47472250254,"y":28380.33960662585},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"4c25509e-56e7-49c0-a78a-61de55438179","savedPayload":{"position":{"x":40749.374350272024,"y":28158.088482315645},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"f26abff5-0351-4fec-8f05-6af08eca4f3e","savedPayload":{"position":{"x":40971.62547458223,"y":28380.33960662585},"targetPosition":{"x":41034.51136563778,"y":28696.544935681453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"7c93facc-7d0d-4a87-a11c-23cfab94f4b8","savedPayload":{"position":{"x":27305.137998205868,"y":29298.043652102042},"targetPosition":{"x":26454.006407405348,"y":29500.459902456496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"99d2a76d-3c58-411c-abeb-7c49a7a41171"}}},{"type":"Session Reference","name":"Paper WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"3a1d3d5f-5655-49a9-890d-89f7ba153c24","savedPayload":{"position":{"x":41557.474267378886,"y":28704.538380895512},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"846b361f-f5d2-431f-bfd4-137033d8b7f5","savedPayload":{"position":{"x":41328.36437304013,"y":28614.669001956987},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"4bf25656-ea71-44fc-92f9-52f33c327333","savedPayload":{"position":{"x":41238.701960314706,"y":28385.55910761823},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"0905aa96-ac6c-4a0a-987c-d8833fbfd2ee","savedPayload":{"position":{"x":41328.657032916315,"y":28156.74187315566},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"1d64468f-6621-441e-81bc-3ed3270f5791","savedPayload":{"position":{"x":41557.474267378886,"y":28385.55910761823},"targetPosition":{"x":41536.37709492533,"y":28707.266395142844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"ac5af50d-d2dc-4a0d-834e-48f48729dcf9","savedPayload":{"position":{"x":27328.850895499,"y":29507.311290222664},"targetPosition":{"x":26454.006407405348,"y":29500.459902456496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"979d1da8-7e14-43d0-a34a-3cb82ffbcea6"}}},{"type":"Session Reference","name":"Live Trading WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"d73f67de-e135-4692-b4d8-f00a28560ffd","savedPayload":{"position":{"x":42124.2954678251,"y":28863.166820214137},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"8680d446-bcce-4286-a06c-50406f1d4f50","savedPayload":{"position":{"x":41899.82203310804,"y":28765.34236295704},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"e806ba98-35cf-4e32-ac95-6acf1a4617e7","savedPayload":{"position":{"x":41803.41381185934,"y":28540.86892823998},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"abaeed4c-618f-48c7-8e25-fe9ceba6c905","savedPayload":{"position":{"x":41897.44019113757,"y":28314.01365155245},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"63551887-501d-441e-a552-035580ddc6ca","savedPayload":{"position":{"x":42124.2954678251,"y":28540.86892823998},"targetPosition":{"x":42020.66210112073,"y":28846.1629818523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"ac776aa0-7991-4d04-995c-6467b9a43015","savedPayload":{"position":{"x":27301.73514303333,"y":29716.459063181224},"targetPosition":{"x":26454.006407405348,"y":29500.459902456496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"a2d515ce-de72-49e3-b58e-81186c595f74"}}},{"type":"Session Reference","name":"Fwd WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"7b75ee15-4932-4d1d-82a3-ae281babd47f","savedPayload":{"position":{"x":42492.63963403888,"y":28500.7397102676},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"057c9f67-a4f4-4976-8f6a-611e3dafce90","savedPayload":{"position":{"x":42710.36396962775,"y":28492.07047492605},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"a482b127-3391-4e03-a8c7-d4e589f7ba92","savedPayload":{"position":{"x":42891.7169300037,"y":28613.377753949273},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"d426fa48-5102-4908-a4ec-7c288bb8be61","savedPayload":{"position":{"x":42967.139262708275,"y":28818.147267745622},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"319eae81-25be-4712-8fec-fc7812a1806c","savedPayload":{"position":{"x":42636.198275976094,"y":28799.555013396635},"targetPosition":{"x":42436.14135357761,"y":29099.04809298164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"7b6c1bf8-62e4-42a5-8b9c-48702cd4f596","savedPayload":{"position":{"x":27225.302450701627,"y":29913.115204763348},"targetPosition":{"x":26454.006407405348,"y":29500.459902456496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Forward Testing Session","name":"Fwd WHB","id":"bb2a5ffe-3b5b-461d-90e7-ce348bc7bb97"}}}],"id":"f2b59e54-225c-4933-9bbe-3f6b65569a89","savedPayload":{"position":{"x":26453.503473612465,"y":29499.694512361344},"targetPosition":{"x":26063.15791303317,"y":29932.8015750637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Bitfinex","id":"3ff59cad-42ae-4527-b060-4585cc4e7e1a"}}}],"id":"29ca14e5-dabe-470a-be64-ed7996bd1e55","savedPayload":{"position":{"x":26063.15791303317,"y":29932.8015750637},"targetPosition":{"x":25941.95025015318,"y":30503.689499234977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0726a9e4-23b6-4d27-a8de-e91a9665a8ba","savedPayload":{"position":{"x":25941.899249729755,"y":30503.488020550398},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"d"}}},"dataMining":{"type":"Data Mining","name":"New Data Mining","exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Masters BTC/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"42c726ad-b9a0-445e-b259-70423f3ffd12","savedPayload":{"position":{"x":24978.07277815993,"y":30601.00095525652},"targetPosition":{"x":25223.946151545286,"y":30442.827063526787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"a776e96c-9824-4734-895c-7ead23e47b55","savedPayload":{"position":{"x":25223.946151545286,"y":30442.827063526787},"targetPosition":{"x":25469.798794155027,"y":30284.37326963926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"746a39b8-9fc7-42eb-892e-aa9d3084a49c","savedPayload":{"position":{"x":25469.798794155027,"y":30284.37326963926},"targetPosition":{"x":25715.8283004815,"y":30125.55722710666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6dfa7264-7d02-4a9d-8da1-fda9633d9cd0","savedPayload":{"position":{"x":25715.8283004815,"y":30125.55722710666},"targetPosition":{"x":26206.458405843925,"y":29808.379380539973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"d5446580-e0c9-4831-803d-828a8a0f960f","savedPayload":{"position":{"x":24813.966744794838,"y":30214.952420294285},"targetPosition":{"x":25078.68327585426,"y":30090.12727781268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"0f91d692-fe8d-4b30-be5e-4a6dd89be199","savedPayload":{"position":{"x":25078.68327585426,"y":30090.12727781268},"targetPosition":{"x":25343.2959107317,"y":29965.262938804237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"4b16be25-c976-474a-8ca7-04dcc2adc6da","savedPayload":{"position":{"x":24469.16954398774,"y":29893.811980982406},"targetPosition":{"x":24906.11285552085,"y":29929.558089300655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"336c62aa-cb1d-40bf-81e0-2cd305e3c392","savedPayload":{"position":{"x":24906.11285552085,"y":29929.558089300655},"targetPosition":{"x":25343.2959107317,"y":29965.262938804237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"902da064-06f6-49f3-a90c-edcfb10095dd","savedPayload":{"position":{"x":25343.2959107317,"y":29965.262938804237},"targetPosition":{"x":25631.55615328322,"y":29912.914955774966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"29f44e1a-cc67-431c-8250-8c76a0ee4166","savedPayload":{"position":{"x":25631.55615328322,"y":29912.914955774966},"targetPosition":{"x":26206.458405843925,"y":29808.379380539973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"7ae30888-309f-4df7-aff2-fb23a80477b4","savedPayload":{"position":{"x":24764.097605037605,"y":29650.9129681462},"targetPosition":{"x":25056.498625542867,"y":29637.0537515088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"5de236c0-62c7-4bc5-b798-72f04075c10b","savedPayload":{"position":{"x":25056.498625542867,"y":29637.0537515088},"targetPosition":{"x":25348.8518665333,"y":29623.147038116185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"bd6ddf73-e9d3-429e-88e5-3df884a9c23e","savedPayload":{"position":{"x":24568.661133331647,"y":29222.390841382785},"targetPosition":{"x":24958.614860473892,"y":29422.6804073874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"fea72a1d-1b85-48fb-866f-191b8c580790","savedPayload":{"position":{"x":24958.614860473892,"y":29422.6804073874},"targetPosition":{"x":25348.8518665333,"y":29623.147038116185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":true,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"bb99d9fa-f244-4899-8725-a070c40cff13","savedPayload":{"position":{"x":25348.8518665333,"y":29623.147038116185},"targetPosition":{"x":25635.24580092078,"y":29684.970891834582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"5f84bba8-05f8-4d26-80bb-55e15e359c15","savedPayload":{"position":{"x":25635.24580092078,"y":29684.970891834582},"targetPosition":{"x":26206.458405843925,"y":29808.379380539973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"eff7af91-29cc-436d-b941-659c8c3a975f","savedPayload":{"position":{"x":24934.261252326593,"y":29110.903177555258},"targetPosition":{"x":25209.75281626466,"y":29209.792502900502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"9c31c436-a97d-4856-ac7f-27d25e4ddf6f","savedPayload":{"position":{"x":25209.75281626466,"y":29209.792502900502},"targetPosition":{"x":25485.202468486226,"y":29308.651512617344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"2782400f-a023-4674-a646-a9f5d84c0f6e","savedPayload":{"position":{"x":24917.98473759134,"y":28639.686681834835},"targetPosition":{"x":25201.51444939651,"y":28974.069876837384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"001bb14a-d4f5-4fdc-b9ed-3b818fbe2f39","savedPayload":{"position":{"x":25201.51444939651,"y":28974.069876837384},"targetPosition":{"x":25485.202468486226,"y":29308.651512617344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"188e8927-c5ee-48d2-9e93-427d1bfbe9a0","savedPayload":{"position":{"x":25485.202468486226,"y":29308.651512617344},"targetPosition":{"x":25726.044813314016,"y":29475.610791072653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6f10753e-f00f-44e9-90b6-2f30d13498f5","savedPayload":{"position":{"x":25726.044813314016,"y":29475.610791072653},"targetPosition":{"x":26206.458405843925,"y":29808.379380539973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"cb47918d-0105-4d93-93cd-4d47ccbc13a1","savedPayload":{"position":{"x":25298.451266612246,"y":28676.50987824493},"targetPosition":{"x":25515.11541154967,"y":28873.471078174625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"d0c4d932-2047-4af9-9f4c-575644763855","savedPayload":{"position":{"x":25515.11541154967,"y":28873.471078174625},"targetPosition":{"x":25731.642975489744,"y":29070.2873730733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"458dda98-96ec-4f0b-9b4d-2a148f11da72","savedPayload":{"position":{"x":25464.123824697257,"y":28235.059848405643},"targetPosition":{"x":25597.896757585153,"y":28652.431061442407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"10d2e176-4730-48bc-9223-02d87a12d28d","savedPayload":{"position":{"x":25597.896757585153,"y":28652.431061442407},"targetPosition":{"x":25731.642975489744,"y":29070.2873730733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":true,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"6939a55f-0383-48af-b298-1f5d4eda5d06","savedPayload":{"position":{"x":25731.642975489744,"y":29070.2873730733},"targetPosition":{"x":25890.14599426717,"y":29316.865605592895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"f4761c51-d896-4b1d-94d4-7548e02f69fe","savedPayload":{"position":{"x":25890.14599426717,"y":29316.865605592895},"targetPosition":{"x":26206.458405843925,"y":29808.379380539973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"6f5bc84f-37fc-4858-b1e7-1b2067a25296","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"840aa1e4-9ded-43fc-be2b-5fd7aee2f893","savedPayload":{"position":{"x":25998.367932366837,"y":28656.15058222684},"targetPosition":{"x":26050.386461672537,"y":28944.407113610694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"68698ff2-1bd7-421d-808e-99020cd15091","savedPayload":{"position":{"x":26050.386461672537,"y":28944.407113610694},"targetPosition":{"x":26102.393052298732,"y":29233.049545964852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5be3cb3d-32b8-4ce1-89a2-333eafd13d92","savedPayload":{"position":{"x":26102.393052298732,"y":29233.049545964852},"targetPosition":{"x":26206.458405843925,"y":29808.379380539973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Resistances & Supports","bot":{"type":"Indicator Bot Instance","name":"Resistances & Supports","code":" {\n \"repo\": \"\"\n }","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"5e0f86e6-2a43-49c2-a347-7203f0867c2d","savedPayload":{"position":{"x":26351.38485471997,"y":28074.88256462966},"targetPosition":{"x":26372.36854076702,"y":28512.616405826237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"f9f341a9-ba04-4c03-8f3b-249e72681562","savedPayload":{"position":{"x":26372.36854076702,"y":28512.616405826237},"targetPosition":{"x":26393.32113427409,"y":28950.6921665749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"5d9b2729-43fb-4e7e-aa4f-b8477c424e51"}}},{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"9974d57e-33ac-4fcf-ad75-35a8c4dc549e","savedPayload":{"position":{"x":26661.06625066805,"y":28430.295188724027},"targetPosition":{"x":26527.219406287564,"y":28690.47461293794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"9c93e98f-e166-4c8d-a9d7-08ada9c68eeb","savedPayload":{"position":{"x":26527.219406287564,"y":28690.47461293794},"targetPosition":{"x":26393.32113427409,"y":28950.6921665749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"be19d91b-9337-4f84-96b3-f4e54ea12df5"}}}],"id":"88a4c3b6-e148-47e8-91b2-bf72bb167dc5","savedPayload":{"position":{"x":26393.32113427409,"y":28950.6921665749},"targetPosition":{"x":26330.97484944011,"y":29237.168733187074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c9dc449-6a37-4f34-8984-13aafed439fc","savedPayload":{"position":{"x":26330.97484944011,"y":29237.168733187074},"targetPosition":{"x":26206.458405843925,"y":29808.379380539973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true}}}],"id":"2aa7f43e-0f43-494e-8380-5559751c6138","savedPayload":{"position":{"x":26206.458405843925,"y":29808.379380539973},"targetPosition":{"x":26686.3034094085,"y":30140.21433120546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta BTC/USDT","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"8b8e34e7-5e12-4717-bf57-6daae86165fd","savedPayload":{"position":{"x":24701.37992695034,"y":29734.965997022297},"targetPosition":{"x":24969.191811743553,"y":29618.376219271937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"e0353c29-fda4-4521-812f-10609d0c1f7f","savedPayload":{"position":{"x":24969.191811743553,"y":29618.376219271937},"targetPosition":{"x":25236.93141646924,"y":29501.836917830624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"e3b60672-91b7-413a-85a4-74e9adff8617","savedPayload":{"position":{"x":24297.62589983071,"y":28808.963152258082},"targetPosition":{"x":24767.208067024727,"y":29155.393184212644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"aff35ef5-45bb-44fa-a7bf-64c92016f1b8","savedPayload":{"position":{"x":24767.208067024727,"y":29155.393184212644},"targetPosition":{"x":25236.93141646924,"y":29501.836917830624},"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":"10c9e786-ea1e-4c33-b0b3-b1336cfd424f","savedPayload":{"position":{"x":25236.93141646924,"y":29501.836917830624},"targetPosition":{"x":25816.955535903824,"y":29567.109703556667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7b71601f-3427-49c1-81a4-50993775947a","savedPayload":{"position":{"x":25816.955535903824,"y":29567.109703556667},"targetPosition":{"x":26397.641593248456,"y":29632.285164803907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"9ca92a06-6f84-4a32-9d03-465eb1a7d301","savedPayload":{"position":{"x":24965.171310342437,"y":28718.376750333744},"targetPosition":{"x":25250.42896848256,"y":28781.335355979765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"97a00727-5f27-4bcf-92c8-25de54ff6a51","savedPayload":{"position":{"x":25250.42896848256,"y":28781.335355979765},"targetPosition":{"x":25535.596569847447,"y":28844.281380248587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"2bed94c9-adff-448b-aaff-bf9e32f8b4fd","savedPayload":{"position":{"x":25183.14469176943,"y":27731.527848759644},"targetPosition":{"x":25359.315158257814,"y":28287.85636015459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"2b40984e-af30-4103-8a08-d4a18d956b6b","savedPayload":{"position":{"x":25359.315158257814,"y":28287.85636015459},"targetPosition":{"x":25535.596569847447,"y":28844.281380248587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"fb7d0472-69ba-4dbf-8f50-747aabece7f1","savedPayload":{"position":{"x":25535.596569847447,"y":28844.281380248587},"targetPosition":{"x":25966.378395409625,"y":29238.09315478951},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4bdfdec3-a922-4b96-9b3c-2576e01b8c8b","savedPayload":{"position":{"x":25966.378395409625,"y":29238.09315478951},"targetPosition":{"x":26397.641593248456,"y":29632.285164803907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"3ce35ca5-2f3b-4004-b52f-a52d0cf850e4","savedPayload":{"position":{"x":25776.3733855927,"y":28050.697086888045},"targetPosition":{"x":25970.0374981836,"y":28269.35599365017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"7e704caa-a900-4078-a778-1f8a3ce9b014","savedPayload":{"position":{"x":25970.0374981836,"y":28269.35599365017},"targetPosition":{"x":26163.634591699512,"y":28487.9503460179},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"767f2354-4f95-4532-b24f-3495363b0aa5","savedPayload":{"position":{"x":26532.218857509393,"y":27380.44975218586},"targetPosition":{"x":26347.910107628508,"y":27934.13082069985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"3739134b-bc4b-413f-b123-e83044ee6c8c","savedPayload":{"position":{"x":26347.910107628508,"y":27934.13082069985},"targetPosition":{"x":26163.634591699512,"y":28487.9503460179},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"057b5470-5a8b-4ee1-9014-eaf5b529d233","savedPayload":{"position":{"x":26163.634591699512,"y":28487.9503460179},"targetPosition":{"x":26280.55452672701,"y":29059.809612052995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7d2a8af7-fe6f-41fa-a3f4-ddc2e8fae6aa","savedPayload":{"position":{"x":26280.55452672701,"y":29059.809612052995},"targetPosition":{"x":26397.641593248456,"y":29632.285164803907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"11e704b1-6536-438f-bf83-5c684a5feac1","savedPayload":{"position":{"x":26824.756472222187,"y":27987.35800558964},"targetPosition":{"x":26852.783702834524,"y":28278.12674957439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"7f85d949-7c38-4cab-922d-7c2cbc0fa41a","savedPayload":{"position":{"x":26852.783702834524,"y":28278.12674957439},"targetPosition":{"x":26880.781395645514,"y":28568.805108000353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"03f1f3e7-fbf9-4e65-a218-388c28541407","savedPayload":{"position":{"x":27830.080609385786,"y":27889.804993409125},"targetPosition":{"x":27355.48522745888,"y":28229.25974916865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"f563b514-588d-4c1a-9ec6-f19521c073cf","savedPayload":{"position":{"x":27355.48522745888,"y":28229.25974916865},"targetPosition":{"x":26880.781395645514,"y":28568.805108000353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"9a5d7598-77e1-478f-87c5-93d7f7790e84","savedPayload":{"position":{"x":26880.781395645514,"y":28568.805108000353},"targetPosition":{"x":26639.359437671614,"y":29100.216839552337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"7b4dc7d0-add5-40f8-b182-2a4779dd58ce","savedPayload":{"position":{"x":26639.359437671614,"y":29100.216839552337},"targetPosition":{"x":26397.641593248456,"y":29632.285164803907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"d408dc7a-dedf-4a2e-89de-12fba6929cad","savedPayload":{"position":{"x":26398.628132863265,"y":29632.418168888078},"targetPosition":{"x":26686.3034094085,"y":30140.21433120546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters ETH/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"c0ec58e7-d165-452d-8130-3ce3a09018a2","savedPayload":{"position":{"x":43548.31869375691,"y":28832.74871320079},"targetPosition":{"x":43468.23581599018,"y":29144.465623065378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"d0904db2-9cca-4fdd-b02b-9fdd0911446c","savedPayload":{"position":{"x":43468.23581599018,"y":29144.465623065378},"targetPosition":{"x":43388.21989927531,"y":29456.2064563822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"bf5c15a7-6fb0-49f9-8157-7010313382c8","savedPayload":{"position":{"x":43388.21989927531,"y":29456.2064563822},"targetPosition":{"x":43308.31846626916,"y":29768.295924463717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f0c5d49a-c96a-4c09-ae74-f826b6acc5d3","savedPayload":{"position":{"x":43308.31846626916,"y":29768.295924463717},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"cd2170de-f883-4c6d-9569-5eeec01a2174","savedPayload":{"position":{"x":44044.56919550187,"y":29070.680669232206},"targetPosition":{"x":43907.75296865664,"y":29362.11317316699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"c7ff7702-4d99-44c8-96dd-ce76150a24c9","savedPayload":{"position":{"x":43907.75296865664,"y":29362.11317316699},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"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","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"65560505-5678-4962-b036-5bbb40faf667","savedPayload":{"position":{"x":44562.98482395708,"y":29102.272964030177},"targetPosition":{"x":44167.05042758576,"y":29377.81676557684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"ac1f1101-1e6e-4bdf-9ba3-b53f0b452194","savedPayload":{"position":{"x":44167.05042758576,"y":29377.81676557684},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"b55772ce-f34b-4447-be0d-3055da5c130e","savedPayload":{"position":{"x":43770.940957510276,"y":29653.49333725624},"targetPosition":{"x":43563.27921096938,"y":29899.761189375113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"42183f76-f0a7-409e-a1a0-6e66983574ab","savedPayload":{"position":{"x":43563.27921096938,"y":29899.761189375113},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"0d0e21e4-48d1-452e-9640-96879f9b663a","savedPayload":{"position":{"x":44529.43831259792,"y":29591.160241515347},"targetPosition":{"x":44279.57761586809,"y":29794.164895509643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"0da09221-35eb-4ee4-b9bb-43a40a244784","savedPayload":{"position":{"x":44279.57761586809,"y":29794.164895509643},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"038e045e-0e03-4f9d-b0bc-19f494702496","savedPayload":{"position":{"x":44982.702734016326,"y":29844.505580086603},"targetPosition":{"x":44506.37336418851,"y":29920.77047196001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"fc88db9a-6b82-456e-a4c2-e6d90a7d286b","savedPayload":{"position":{"x":44506.37336418851,"y":29920.77047196001},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"3605c586-0270-4228-aa77-346d1223cf4a","savedPayload":{"position":{"x":44029.76414901768,"y":29997.129510062663},"targetPosition":{"x":43735.659869568226,"y":30128.724866806584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"1378cc77-ee0d-47e5-adb7-fc90f079a864","savedPayload":{"position":{"x":43735.659869568226,"y":30128.724866806584},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"868a509f-c4a5-4833-81a1-224e95efbf16","savedPayload":{"position":{"x":44740.19992947904,"y":30269.709710790212},"targetPosition":{"x":44426.92346740986,"y":30344.087153351575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"aac0ff59-86c4-4edd-8d5a-4719155ab606","savedPayload":{"position":{"x":44426.92346740986,"y":30344.087153351575},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"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":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"d2a9e894-8f73-44ff-ba6c-cd26a8c6a604","savedPayload":{"position":{"x":45038.495695074605,"y":30694.038844894512},"targetPosition":{"x":44576.2033062764,"y":30556.27191701111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"2aa55d01-7388-4bb3-b091-6029b21ece9c","savedPayload":{"position":{"x":44576.2033062764,"y":30556.27191701111},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"f74c9627-9441-44b5-9208-9b4ca75d958b","savedPayload":{"position":{"x":44113.681364955875,"y":30418.40946263666},"targetPosition":{"x":43791.5644814685,"y":30409.41652660318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9c303258-f07a-4f55-9b15-f7555623fccb","savedPayload":{"position":{"x":43791.5644814685,"y":30409.41652660318},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"2fc134ca-6a46-424d-90c6-c3fbbaf02c45","savedPayload":{"position":{"x":44634.8713858913,"y":30972.647789916467},"targetPosition":{"x":44320.40783090555,"y":30903.87226015812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"1175eece-34c9-404f-b595-f0688c0c2b25","savedPayload":{"position":{"x":44320.40783090555,"y":30903.87226015812},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"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":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"fe5e6d0d-4e9d-460c-902a-455cda69106e","savedPayload":{"position":{"x":44719.2935084921,"y":31484.844997094602},"targetPosition":{"x":44362.66897516384,"y":31160.069974503385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"416cc920-f6ac-43ab-906e-6a44c50d1c1e","savedPayload":{"position":{"x":44362.66897516384,"y":31160.069974503385},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"2f1ba714-161c-4538-b71b-a92c64c7a653","savedPayload":{"position":{"x":44005.998383917504,"y":30835.000935669093},"targetPosition":{"x":43719.93790732384,"y":30686.895169007028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"60718098-56a8-4811-afc2-0471c32c6b6a","savedPayload":{"position":{"x":43719.93790732384,"y":30686.895169007028},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"b25cdeaf-202e-4eee-9427-92a03a3e51bf","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"169767c2-0117-46f1-9038-90ce68933c5e","savedPayload":{"position":{"x":43921.27648533482,"y":31421.11867904632},"targetPosition":{"x":43727.95100474325,"y":31163.712277360213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"4cf99f3a-0370-4b59-bb93-961355144b15","savedPayload":{"position":{"x":43727.95100474325,"y":31163.712277360213},"targetPosition":{"x":43534.654105285146,"y":30905.972976263627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c12b5be1-57cd-4f82-8c39-269661bdee30","savedPayload":{"position":{"x":43534.654105285146,"y":30905.972976263627},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Resistances & Supports","bot":{"type":"Indicator Bot Instance","name":"Resistances & Supports","code":" {\n \"repo\": \"\"\n }","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"c3719ab4-6b8e-4f42-8e6c-6af51aae8e98","savedPayload":{"position":{"x":29236.436420488044,"y":28842.058035616512},"targetPosition":{"x":28319.499189363356,"y":29088.253842403756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"10e436a5-6039-4d68-98eb-0946bbd9177a","savedPayload":{"position":{"x":28319.499189363356,"y":29088.253842403756},"targetPosition":{"x":27399.719969764705,"y":29333.89797166919},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"5d9b2729-43fb-4e7e-aa4f-b8477c424e51"}}},{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"71239dda-67b3-4826-bca7-77f195749c26","savedPayload":{"position":{"x":28623.524540193852,"y":29663.637854374636},"targetPosition":{"x":28012.119504473027,"y":29499.180133808037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"aae449a7-a92c-4c8b-bea1-dc1d74b970a9","savedPayload":{"position":{"x":28012.119504473027,"y":29499.180133808037},"targetPosition":{"x":27399.719969764705,"y":29333.89797166919},"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":"be19d91b-9337-4f84-96b3-f4e54ea12df5"}}}],"id":"c6a57b9a-7b49-4873-a873-36f8226ff31c","savedPayload":{"position":{"x":27399.719969764705,"y":29333.89797166919},"targetPosition":{"x":26764.022600248052,"y":29334.301572815737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e082e53a-ed5f-46ba-a495-b743917b41f0","savedPayload":{"position":{"x":26764.022600248052,"y":29334.301572815737},"targetPosition":{"x":26764.022600248052,"y":29334.301572815737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"44441046-ba97-4298-ba81-a7287d7f5f0e","savedPayload":{"position":{"x":26647.79930891195,"y":29557.33190446327},"targetPosition":{"x":26686.3034094085,"y":30140.21433120546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta ETH/USDT","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ba2e453c-f845-44bb-8fab-6621133c973f","savedPayload":{"position":{"x":44071.61797125626,"y":29269.179122287296},"targetPosition":{"x":44017.22604407985,"y":29586.166432086655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"0fdfe732-59c9-432b-99fa-77b199af1814","savedPayload":{"position":{"x":44017.22604407985,"y":29586.166432086655},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"d19ff6b4-5bca-49c5-adeb-8affdd9b169c","savedPayload":{"position":{"x":45168.8488344655,"y":29458.147255078686},"targetPosition":{"x":44565.86589926591,"y":29680.585441818144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"40aad5eb-e8e3-45e8-aafc-9cce55a01125","savedPayload":{"position":{"x":44565.86589926591,"y":29680.585441818144},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"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":"888f4a43-56a7-4b3f-8c6a-a92f68bb5cb4","savedPayload":{"position":{"x":43962.84190684965,"y":29903.09502706654},"targetPosition":{"x":43551.90647643782,"y":30397.266512500442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"80db6513-4873-45fc-a77e-ace7e90d62ba","savedPayload":{"position":{"x":43551.90647643782,"y":30397.266512500442},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"eff4efb9-ed01-4e96-ba43-0dc7db8e9bf2","savedPayload":{"position":{"x":44848.06740265459,"y":30126.954299288456},"targetPosition":{"x":44617.64305938516,"y":30351.280902615003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"f665b3d7-7cb8-4e20-a059-e0a70c46bf69","savedPayload":{"position":{"x":44617.64305938516,"y":30351.280902615003},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"2cb2aec9-082a-4068-99c7-731b616d8d5e","savedPayload":{"position":{"x":45624.60027321795,"y":30924.208529781736},"targetPosition":{"x":45005.977709353945,"y":30749.876937252106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"69c493b3-c52d-46b6-adc1-2d9a6414002d","savedPayload":{"position":{"x":45005.977709353945,"y":30749.876937252106},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"eb53df0b-5bc9-4db7-8f47-6fd81c98a063","savedPayload":{"position":{"x":44387.27143213535,"y":30575.564915785017},"targetPosition":{"x":43764.266809147426,"y":30733.667438768847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d8161c39-7027-4a9e-90d4-38f86362518d","savedPayload":{"position":{"x":43764.266809147426,"y":30733.667438768847},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"02cfefab-d6ca-4902-aa0e-48e9e42b1e19","savedPayload":{"position":{"x":44971.81020849867,"y":31276.620146946167},"targetPosition":{"x":44653.49004123155,"y":31322.55467880252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"32a6b883-acf5-4340-bfb3-a57eaca48d4e","savedPayload":{"position":{"x":44653.49004123155,"y":31322.55467880252},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"e9e20406-d6cb-4e6c-a31a-9ea6d25418b6","savedPayload":{"position":{"x":45131.12724051729,"y":32377.93040356555},"targetPosition":{"x":44733.22183307022,"y":31873.22574960204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"12b09664-60fd-40e9-aa30-219d503b596d","savedPayload":{"position":{"x":44733.22183307022,"y":31873.22574960204},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"55c367f3-6b8c-42cf-a9a4-380cfb7bbd37","savedPayload":{"position":{"x":44335.23861007668,"y":31368.479242651025},"targetPosition":{"x":43738.24708451567,"y":31130.308446359704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8a1057c0-6ca7-457f-8556-8ed709064c0a","savedPayload":{"position":{"x":43738.24708451567,"y":31130.308446359704},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"611d992a-e664-4bea-82d4-0148199d3953","savedPayload":{"position":{"x":44395.607564219106,"y":32279.346270225502},"targetPosition":{"x":44111.06304717549,"y":32129.543698932317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"cee6a154-0032-4691-8e0c-18d5f516599a","savedPayload":{"position":{"x":44111.06304717549,"y":32129.543698932317},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"061a67b1-76c2-4f65-97d9-970cdbed4975","savedPayload":{"position":{"x":43876.85035087776,"y":33264.29116567567},"targetPosition":{"x":43851.71485258066,"y":32622.075786304355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"0a973589-37e4-47ac-bf8f-663d3580ce9d","savedPayload":{"position":{"x":43851.71485258066,"y":32622.075786304355},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"755b9471-aba3-4e5a-90cf-5233a2b7eed0","savedPayload":{"position":{"x":43826.594538981204,"y":31979.768305805377},"targetPosition":{"x":43483.775300077,"y":31436.11470464454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"1c4c284c-3696-490a-88a9-5b053097cc6a","savedPayload":{"position":{"x":43483.775300077,"y":31436.11470464454},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"4082899e-2f43-43c7-80c5-b686cd6190ec","savedPayload":{"position":{"x":26904.349994840362,"y":29597.91266562107},"targetPosition":{"x":26686.3034094085,"y":30140.21433120546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters ETH/BTC","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ed0e7ecc-97d2-44c8-8e8d-e0db75f88bd3","savedPayload":{"position":{"x":43548.31869375691,"y":28832.74871320079},"targetPosition":{"x":43468.23581599018,"y":29144.465623065378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"5db1b2fb-73a2-4f3f-b4a0-5cdd33973e22","savedPayload":{"position":{"x":43468.23581599018,"y":29144.465623065378},"targetPosition":{"x":43388.21989927531,"y":29456.2064563822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"d45dcee0-6ed2-4635-bf10-6dbd39f81616","savedPayload":{"position":{"x":43388.21989927531,"y":29456.2064563822},"targetPosition":{"x":43308.31846626916,"y":29768.295924463717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"71847c88-464a-4ded-8e0d-6bc4f26879d5","savedPayload":{"position":{"x":43308.31846626916,"y":29768.295924463717},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"8870e6e8-c518-4ddf-b8ae-f61e7b458499","savedPayload":{"position":{"x":44044.56919550187,"y":29070.680669232206},"targetPosition":{"x":43907.75296865664,"y":29362.11317316699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"b69c7cac-d974-4437-ae5c-91050e517b95","savedPayload":{"position":{"x":43907.75296865664,"y":29362.11317316699},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"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","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"f6c19fa1-1f40-4e9d-a182-00ecf1486a36","savedPayload":{"position":{"x":44562.98482395708,"y":29102.272964030177},"targetPosition":{"x":44167.05042758576,"y":29377.81676557684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"ad291a9d-27df-4a25-8e9c-a50fbb80bae7","savedPayload":{"position":{"x":44167.05042758576,"y":29377.81676557684},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"c9c5e731-78f4-419d-b06e-df15b8455ea0","savedPayload":{"position":{"x":43770.940957510276,"y":29653.49333725624},"targetPosition":{"x":43563.27921096938,"y":29899.761189375113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f8dea827-aa40-473e-8f37-0ce47b46cff6","savedPayload":{"position":{"x":43563.27921096938,"y":29899.761189375113},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"9431440d-920d-449c-89ec-be4683f9848d","savedPayload":{"position":{"x":44529.43831259792,"y":29591.160241515347},"targetPosition":{"x":44279.57761586809,"y":29794.164895509643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"964273a0-8e34-4dd3-ad2e-297f7fa71bb3","savedPayload":{"position":{"x":44279.57761586809,"y":29794.164895509643},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"8809863d-4211-42e9-8b88-e6d7af932609","savedPayload":{"position":{"x":44982.702734016326,"y":29844.505580086603},"targetPosition":{"x":44506.37336418851,"y":29920.77047196001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"824c80fc-296d-4a50-b400-e88abc25759d","savedPayload":{"position":{"x":44506.37336418851,"y":29920.77047196001},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"5b00ccce-cdb7-427a-956c-942f8191b012","savedPayload":{"position":{"x":44029.76414901768,"y":29997.129510062663},"targetPosition":{"x":43735.659869568226,"y":30128.724866806584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"9b56bb81-8663-435b-bfc2-ae713bce63a8","savedPayload":{"position":{"x":43735.659869568226,"y":30128.724866806584},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"dcfe69c9-9ca4-461b-a8ec-bb8767a7eb42","savedPayload":{"position":{"x":44740.19992947904,"y":30269.709710790212},"targetPosition":{"x":44426.92346740986,"y":30344.087153351575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"68eb1a9c-0b37-4c78-9c60-fc6ff965e232","savedPayload":{"position":{"x":44426.92346740986,"y":30344.087153351575},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"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":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"8e176301-b3e7-4ab3-afa1-d5c79729bdff","savedPayload":{"position":{"x":45038.495695074605,"y":30694.038844894512},"targetPosition":{"x":44576.2033062764,"y":30556.27191701111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"efc12347-4253-4dae-af5d-0018da266f79","savedPayload":{"position":{"x":44576.2033062764,"y":30556.27191701111},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"dcbd305d-d39f-48a2-abc1-ca35136a6c5a","savedPayload":{"position":{"x":44113.681364955875,"y":30418.40946263666},"targetPosition":{"x":43791.5644814685,"y":30409.41652660318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7ea6a8d6-08e3-488a-935e-665c6c2dc162","savedPayload":{"position":{"x":43791.5644814685,"y":30409.41652660318},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"4729a832-f66f-4f8e-8c7e-e2f5b3a76713","savedPayload":{"position":{"x":44634.8713858913,"y":30972.647789916467},"targetPosition":{"x":44320.40783090555,"y":30903.87226015812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"e26b1dbe-8132-44ac-9fc5-ec0abb7ffb00","savedPayload":{"position":{"x":44320.40783090555,"y":30903.87226015812},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"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":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"9eb66bcd-bd27-4465-b1b1-637f7333a317","savedPayload":{"position":{"x":44719.2935084921,"y":31484.844997094602},"targetPosition":{"x":44362.66897516384,"y":31160.069974503385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"4339a651-b953-4557-8b9d-aab8da5c2242","savedPayload":{"position":{"x":44362.66897516384,"y":31160.069974503385},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"d3cd9b20-c7d8-4a65-a3d4-4a34f3bb167e","savedPayload":{"position":{"x":44005.998383917504,"y":30835.000935669093},"targetPosition":{"x":43719.93790732384,"y":30686.895169007028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"1573a7d8-dc33-4c69-9b77-e5280cd85fec","savedPayload":{"position":{"x":43719.93790732384,"y":30686.895169007028},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"03d0ab9c-bf7d-4f94-8113-3d70ea468438","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"b75be613-5e1d-4707-8af2-db8f4a6d4e91","savedPayload":{"position":{"x":43921.27648533482,"y":31421.11867904632},"targetPosition":{"x":43727.95100474325,"y":31163.712277360213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"66d881dc-6b13-4405-914a-faf72345cf10","savedPayload":{"position":{"x":43727.95100474325,"y":31163.712277360213},"targetPosition":{"x":43534.654105285146,"y":30905.972976263627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ae16e085-38fa-42f9-9096-88cad729ed5f","savedPayload":{"position":{"x":43534.654105285146,"y":30905.972976263627},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Resistances & Supports","bot":{"type":"Indicator Bot Instance","name":"Resistances & Supports","code":" {\n \"repo\": \"\"\n }","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"605f52b8-1d21-4a2c-927b-ca56c9bfa261","savedPayload":{"position":{"x":29641.182011013254,"y":29179.06479283302},"targetPosition":{"x":28820.54304885861,"y":29399.13104453354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"c8e61fc3-113c-4992-9ff5-8111aed3a772","savedPayload":{"position":{"x":28820.54304885861,"y":29399.13104453354},"targetPosition":{"x":28001.743393721306,"y":29618.230591851167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"5d9b2729-43fb-4e7e-aa4f-b8477c424e51"}}},{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f8c2b53c-64ed-4183-81ee-11e9fe50d062","savedPayload":{"position":{"x":29094.280096715658,"y":29909.66273187614},"targetPosition":{"x":28546.365190923792,"y":29764.60644121561},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"f9f7c50d-43ed-48e6-ba0e-cefbebe1d1af","savedPayload":{"position":{"x":28546.365190923792,"y":29764.60644121561},"targetPosition":{"x":28001.743393721306,"y":29618.230591851167},"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":"be19d91b-9337-4f84-96b3-f4e54ea12df5"}}}],"id":"605c38e9-d015-4172-adf7-ae9e04ac0c6b","savedPayload":{"position":{"x":28001.743393721306,"y":29618.230591851167},"targetPosition":{"x":27436.4813809028,"y":29617.939288544592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d811892a-4061-409a-9038-1b7ec689b912","savedPayload":{"position":{"x":27436.4813809028,"y":29617.939288544592},"targetPosition":{"x":27436.4813809028,"y":29617.939288544592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"182197b7-10d2-4133-80d4-a5e67f1bb985","savedPayload":{"position":{"x":27118.07471671795,"y":29746.09916259287},"targetPosition":{"x":26686.3034094085,"y":30140.21433120546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta ETH/BTC","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ccb58a3a-dca8-4ee7-8c3a-1610dbc8afec","savedPayload":{"position":{"x":44071.61797125626,"y":29269.179122287296},"targetPosition":{"x":44017.22604407985,"y":29586.166432086655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"e6444995-5bd6-45ae-8258-eba9c8e47e2d","savedPayload":{"position":{"x":44017.22604407985,"y":29586.166432086655},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"d8a59a85-516b-4eb4-b4e1-da9632e7c3f2","savedPayload":{"position":{"x":45168.8488344655,"y":29458.147255078686},"targetPosition":{"x":44565.86589926591,"y":29680.585441818144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"92876941-5b83-402f-92c8-846347688cf1","savedPayload":{"position":{"x":44565.86589926591,"y":29680.585441818144},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"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":"b538a04c-a10f-4468-8c87-ed558c171185","savedPayload":{"position":{"x":43962.84190684965,"y":29903.09502706654},"targetPosition":{"x":43551.90647643782,"y":30397.266512500442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6b2367c2-fa62-48b2-bcd6-023150e22229","savedPayload":{"position":{"x":43551.90647643782,"y":30397.266512500442},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"9a802e64-62f4-4b46-bf7d-bad5518f47b0","savedPayload":{"position":{"x":44848.06740265459,"y":30126.954299288456},"targetPosition":{"x":44617.64305938516,"y":30351.280902615003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"a2faa8e5-1896-4253-b34b-8cab4dc79c9e","savedPayload":{"position":{"x":44617.64305938516,"y":30351.280902615003},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"814c3522-cb17-41e9-9816-6ad1ed93ce8a","savedPayload":{"position":{"x":45624.60027321795,"y":30924.208529781736},"targetPosition":{"x":45005.977709353945,"y":30749.876937252106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"7e26d5f8-9697-4aef-a8b4-4d194e0c0131","savedPayload":{"position":{"x":45005.977709353945,"y":30749.876937252106},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"8430b37f-e34a-4040-95f7-9ba477e9efd6","savedPayload":{"position":{"x":44387.27143213535,"y":30575.564915785017},"targetPosition":{"x":43764.266809147426,"y":30733.667438768847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c0d7d134-354d-4eac-a4e5-f0f30a194630","savedPayload":{"position":{"x":43764.266809147426,"y":30733.667438768847},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"84692f45-e98c-46fb-b3e5-f1896ad469ca","savedPayload":{"position":{"x":44971.81020849867,"y":31276.620146946167},"targetPosition":{"x":44653.49004123155,"y":31322.55467880252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"9b811f15-779b-4c13-96c1-96b343086940","savedPayload":{"position":{"x":44653.49004123155,"y":31322.55467880252},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"e5506dc1-c934-4e56-bb4d-a2ac505a14cb","savedPayload":{"position":{"x":45131.12724051729,"y":32377.93040356555},"targetPosition":{"x":44733.22183307022,"y":31873.22574960204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"4310c411-4621-440e-84f2-d521f1c97fce","savedPayload":{"position":{"x":44733.22183307022,"y":31873.22574960204},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"06802373-c568-43c0-a743-00bbfaa359e8","savedPayload":{"position":{"x":44335.23861007668,"y":31368.479242651025},"targetPosition":{"x":43738.24708451567,"y":31130.308446359704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7fd83d86-81a0-462d-aa18-18d647132476","savedPayload":{"position":{"x":43738.24708451567,"y":31130.308446359704},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"fba73c4e-4987-4eb7-b1ae-3949ccf7aae9","savedPayload":{"position":{"x":44395.607564219106,"y":32279.346270225502},"targetPosition":{"x":44111.06304717549,"y":32129.543698932317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"8a568ac5-3a31-45e7-b126-30d92acf6aa2","savedPayload":{"position":{"x":44111.06304717549,"y":32129.543698932317},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ecd94727-f74a-4de4-b349-0b29d3bbfa20","savedPayload":{"position":{"x":43876.85035087776,"y":33264.29116567567},"targetPosition":{"x":43851.71485258066,"y":32622.075786304355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"245f9ba9-323e-4635-bf44-e49a14105b51","savedPayload":{"position":{"x":43851.71485258066,"y":32622.075786304355},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"4ac3fa30-9d66-4e9d-83c9-dcac2b7abd71","savedPayload":{"position":{"x":43826.594538981204,"y":31979.768305805377},"targetPosition":{"x":43483.775300077,"y":31436.11470464454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"368b1588-2e11-4721-8ec4-fb1d6c56d1a0","savedPayload":{"position":{"x":43483.775300077,"y":31436.11470464454},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"f009b1a8-1d0b-4082-9ba4-e88d3d710186","savedPayload":{"position":{"x":27246.38563957594,"y":29972.747888236656},"targetPosition":{"x":26686.3034094085,"y":30140.21433120546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}}],"id":"1f1186b7-877f-40ad-b8da-5ea0e51a0f92","savedPayload":{"position":{"x":26685.750001843287,"y":30138.80035766106},"targetPosition":{"x":26594.57388499951,"y":30715.633401753315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":true},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}},{"type":"Exchange Tasks","name":"Bitfinex","taskManagers":[{"type":"Task Manager","name":"Masters BTC/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"df1d2f62-8e0d-4219-8d26-3d616d1b4543","savedPayload":{"position":{"x":25532.021932026262,"y":29493.79379095337},"targetPosition":{"x":25818.00473484636,"y":29555.358999718057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"61aa7323-ef1f-4e82-9a0b-a6b0c46880da","savedPayload":{"position":{"x":25818.00473484636,"y":29555.358999718057},"targetPosition":{"x":26104.133992494768,"y":29616.763955676826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"0b70fa5a-a181-4609-be1f-649a4414b2c2","savedPayload":{"position":{"x":26104.133992494768,"y":29616.763955676826},"targetPosition":{"x":26390.65765924354,"y":29677.960884597054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a822c45d-326c-42ab-a0af-8391cb48e977","savedPayload":{"position":{"x":26390.65765924354,"y":29677.960884597054},"targetPosition":{"x":26962.116568852707,"y":29800.03967601551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"cf429952-f4cf-42e1-a898-30b530c30b1f","savedPayload":{"position":{"x":25688.814589107576,"y":29105.58483607894},"targetPosition":{"x":25964.406400548185,"y":29204.191859103936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"979fab00-9291-4300-a95f-ad8e69e77bb0","savedPayload":{"position":{"x":25964.406400548185,"y":29204.191859103936},"targetPosition":{"x":26240.070452400054,"y":29302.715498247944},"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","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"fe3c27e8-92aa-46a0-941b-5e9eb7074125","savedPayload":{"position":{"x":25672.688212822653,"y":28634.077840680555},"targetPosition":{"x":25956.23515634513,"y":28968.32539556099},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"588e68fc-242d-4314-98fd-29ad35db4aa9","savedPayload":{"position":{"x":25956.23515634513,"y":28968.32539556099},"targetPosition":{"x":26240.070452400054,"y":29302.715498247944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"f21f16af-b1e9-4fea-8bce-147ca5e85546","savedPayload":{"position":{"x":26240.070452400054,"y":29302.715498247944},"targetPosition":{"x":26481.603112459772,"y":29469.27778180674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3f08bb1b-eaaf-4653-a9d6-7d66c23f9a2b","savedPayload":{"position":{"x":26481.603112459772,"y":29469.27778180674},"targetPosition":{"x":26962.116568852707,"y":29800.03967601551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"53a46550-4674-404b-9e70-54930c32d0cc","savedPayload":{"position":{"x":26054.672813462385,"y":28668.56728964108},"targetPosition":{"x":26271.3843943752,"y":28865.35149167764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"bdcbfb71-2ed0-4dbc-9d99-c6435b32c75f","savedPayload":{"position":{"x":26271.3843943752,"y":28865.35149167764},"targetPosition":{"x":26488.099910186756,"y":29062.10532435917},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"3a9f29f5-b6b6-4b44-9a78-53d51dfdc473","savedPayload":{"position":{"x":26220.12419176978,"y":28227.00111457274},"targetPosition":{"x":26354.05263211957,"y":28644.407625228792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"e89e0e88-e912-4bc5-b0f5-456b03f5af4c","savedPayload":{"position":{"x":26354.05263211957,"y":28644.407625228792},"targetPosition":{"x":26488.099910186756,"y":29062.10532435917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"c724a8b9-3d1f-4f3c-9574-68ad73a3c931","savedPayload":{"position":{"x":26488.099910186756,"y":29062.10532435917},"targetPosition":{"x":26646.71854334348,"y":29308.808457674942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"a2e76dcd-8be8-435e-8363-b536e053ffc4","savedPayload":{"position":{"x":26646.71854334348,"y":29308.808457674942},"targetPosition":{"x":26962.116568852707,"y":29800.03967601551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"9a38b285-cf9c-4cf9-9686-d3f029c421c7","savedPayload":{"position":{"x":26556.632971123854,"y":28407.04989321531},"targetPosition":{"x":26681.379676886798,"y":28671.853512444075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"fae2906c-35de-4bae-9468-4e9b81b32a12","savedPayload":{"position":{"x":26681.379676886798,"y":28671.853512444075},"targetPosition":{"x":26806.098248834965,"y":28936.59913429553},"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":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"19cf100f-58c4-4e1d-95e3-4d0c3202cb31","savedPayload":{"position":{"x":26877.763637655837,"y":28062.45813441559},"targetPosition":{"x":26841.955512196433,"y":28499.365183855803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"7f30e840-333f-42f0-8551-76fd3c037036","savedPayload":{"position":{"x":26841.955512196433,"y":28499.365183855803},"targetPosition":{"x":26806.098248834965,"y":28936.59913429553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"2561f7b2-39ea-49cd-9857-c661b40a391f","savedPayload":{"position":{"x":26806.098248834965,"y":28936.59913429553},"targetPosition":{"x":26858.149556331882,"y":29225.033123524205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d986ae8d-96ee-4462-b4bd-e90df7331df2","savedPayload":{"position":{"x":26858.149556331882,"y":29225.033123524205},"targetPosition":{"x":26962.116568852707,"y":29800.03967601551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ae3f5f4c-2e76-423a-819d-b23086b0a6fc","savedPayload":{"position":{"x":27120.64518616503,"y":28357.83123612552},"targetPosition":{"x":27134.398160475263,"y":28650.17746438318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"83473783-4543-4d4d-9025-bee3c6bc9449","savedPayload":{"position":{"x":27134.398160475263,"y":28650.17746438318},"targetPosition":{"x":27148.119025102926,"y":28942.492376042133},"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":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"bdfb4afc-ff84-4d30-8076-6af76c62fbc9","savedPayload":{"position":{"x":27549.168197469153,"y":28162.695325706372},"targetPosition":{"x":27348.792429239067,"y":28552.427260105884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"4f494f7f-346d-4699-be3c-526e2d6d8a21","savedPayload":{"position":{"x":27348.792429239067,"y":28552.427260105884},"targetPosition":{"x":27148.119025102926,"y":28942.492376042133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"e1243856-d3ac-4fdc-b73b-e77a335e5c4f","savedPayload":{"position":{"x":27148.119025102926,"y":28942.492376042133},"targetPosition":{"x":27085.967490629784,"y":29228.92678481054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"e290b5bc-985d-4f50-9cc7-91939dc368f1","savedPayload":{"position":{"x":27085.967490629784,"y":29228.92678481054},"targetPosition":{"x":26962.116568852707,"y":29800.03967601551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"4e238bd3-6ab6-45d2-8285-a614677aa4e6","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"d8d2b3bf-67e8-4a7f-aeeb-6770b5f6af03","savedPayload":{"position":{"x":27629.401618955977,"y":28838.493084294812},"targetPosition":{"x":27462.516097358708,"y":29079.06270807697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"d456953a-b0cc-4fa0-a565-4cda9eb1461a","savedPayload":{"position":{"x":27462.516097358708,"y":29079.06270807697},"targetPosition":{"x":27295.350610604924,"y":29319.79480347147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ac3283b-935b-4155-9f04-0e955d975de2","savedPayload":{"position":{"x":27295.350610604924,"y":29319.79480347147},"targetPosition":{"x":26962.116568852707,"y":29800.03967601551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Resistances & Supports","bot":{"type":"Indicator Bot Instance","name":"Resistances & Supports","code":" {\n \"repo\": \"\"\n }","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"853c368e-3788-487c-8956-7c39546a47e0","savedPayload":{"position":{"x":28289.394994747727,"y":28677.16092959221},"targetPosition":{"x":27995.158750445036,"y":29001.498525575964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"4f08f13f-a228-44b4-bc13-dac4fe6d6537","savedPayload":{"position":{"x":27995.158750445036,"y":29001.498525575964},"targetPosition":{"x":27700.641413189478,"y":29326.06185740217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"5d9b2729-43fb-4e7e-aa4f-b8477c424e51"}}},{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"fc214405-4446-455d-ac77-3ad00da6437b","savedPayload":{"position":{"x":28257.721164994255,"y":29147.813467739074},"targetPosition":{"x":27979.23990018851,"y":29236.998909733156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"31b838d2-7663-4523-919a-49ed190532d0","savedPayload":{"position":{"x":27979.23990018851,"y":29236.998909733156},"targetPosition":{"x":27700.641413189478,"y":29326.06185740217},"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":"be19d91b-9337-4f84-96b3-f4e54ea12df5"}}}],"id":"2d8110a8-cebc-45a4-9b48-405c54b0604f","savedPayload":{"position":{"x":27700.641413189478,"y":29326.06185740217},"targetPosition":{"x":27454.110575365186,"y":29484.277700879615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b8245376-d44c-4719-a6fa-30aabe27c552","savedPayload":{"position":{"x":27454.110575365186,"y":29484.277700879615},"targetPosition":{"x":26962.116568852707,"y":29800.03967601551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"31ac6026-554e-45ce-a669-8a0b0278bc9c","savedPayload":{"position":{"x":26961.649049058728,"y":29798.2167754548},"targetPosition":{"x":27066.43132315313,"y":30372.994534588033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta BTC/USDT","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"c4d31822-d051-4f90-852a-3c103b85bce5","savedPayload":{"position":{"x":44071.61797125626,"y":29269.179122287296},"targetPosition":{"x":44017.22604407985,"y":29586.166432086655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"cb15744e-8cd7-489e-81b7-2fc748e3506b","savedPayload":{"position":{"x":44017.22604407985,"y":29586.166432086655},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"350b1206-93e4-44f7-bcf4-6d49c61936c1","savedPayload":{"position":{"x":45168.8488344655,"y":29458.147255078686},"targetPosition":{"x":44565.86589926591,"y":29680.585441818144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"d3253532-e1e6-4267-8579-d914cf57eb54","savedPayload":{"position":{"x":44565.86589926591,"y":29680.585441818144},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"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":"917f13b7-172a-4ac0-afda-4e746f693322","savedPayload":{"position":{"x":43962.84190684965,"y":29903.09502706654},"targetPosition":{"x":43551.90647643782,"y":30397.266512500442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"03fc544b-624d-4fa8-aa5f-3bc3b67ff66c","savedPayload":{"position":{"x":43551.90647643782,"y":30397.266512500442},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"006b7810-4526-4d1c-b0ed-aff089a74e45","savedPayload":{"position":{"x":44848.06740265459,"y":30126.954299288456},"targetPosition":{"x":44617.64305938516,"y":30351.280902615003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"4f36ab44-42a4-4abc-b206-04097eabfa9e","savedPayload":{"position":{"x":44617.64305938516,"y":30351.280902615003},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"c538fc87-7b7e-42eb-b274-1d68146ea689","savedPayload":{"position":{"x":45624.60027321795,"y":30924.208529781736},"targetPosition":{"x":45005.977709353945,"y":30749.876937252106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"364162b9-fed9-42f9-b704-8039af7506d8","savedPayload":{"position":{"x":45005.977709353945,"y":30749.876937252106},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"99d22f6b-ba7b-4ba1-b283-7c3e82fd0af6","savedPayload":{"position":{"x":44387.27143213535,"y":30575.564915785017},"targetPosition":{"x":43764.266809147426,"y":30733.667438768847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2eaa8741-ced1-46ce-ba49-6d44c94178ff","savedPayload":{"position":{"x":43764.266809147426,"y":30733.667438768847},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ac311e42-9b3d-4fd6-a8a5-6928b43dbb1f","savedPayload":{"position":{"x":44971.81020849867,"y":31276.620146946167},"targetPosition":{"x":44653.49004123155,"y":31322.55467880252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"036e10e3-9e1b-4f54-9bcb-f74c00988140","savedPayload":{"position":{"x":44653.49004123155,"y":31322.55467880252},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"e87402c2-3059-4bcf-ab04-c60ed677c613","savedPayload":{"position":{"x":45131.12724051729,"y":32377.93040356555},"targetPosition":{"x":44733.22183307022,"y":31873.22574960204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"6adccfb3-1c94-42ef-a914-00447f15d697","savedPayload":{"position":{"x":44733.22183307022,"y":31873.22574960204},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"578ff1fa-5893-420c-a41d-b9a91b90d18f","savedPayload":{"position":{"x":44335.23861007668,"y":31368.479242651025},"targetPosition":{"x":43738.24708451567,"y":31130.308446359704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a5139fe2-8c7e-4620-af3f-7585dd869885","savedPayload":{"position":{"x":43738.24708451567,"y":31130.308446359704},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"75455cfc-d9b5-4e05-843a-9c647643a8ee","savedPayload":{"position":{"x":44395.607564219106,"y":32279.346270225502},"targetPosition":{"x":44111.06304717549,"y":32129.543698932317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"a24873a5-d188-4023-b520-30e7a6b80d81","savedPayload":{"position":{"x":44111.06304717549,"y":32129.543698932317},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"15ef8801-9493-48a8-8803-7cd7851bf5bf","savedPayload":{"position":{"x":43876.85035087776,"y":33264.29116567567},"targetPosition":{"x":43851.71485258066,"y":32622.075786304355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"613103f0-f472-4018-aa94-7d2a98d189d7","savedPayload":{"position":{"x":43851.71485258066,"y":32622.075786304355},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"6c9d84ef-c6c7-4789-89d2-37f6b97ead3a","savedPayload":{"position":{"x":43826.594538981204,"y":31979.768305805377},"targetPosition":{"x":43483.775300077,"y":31436.11470464454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"02624306-3143-4239-ad6a-ded869322f76","savedPayload":{"position":{"x":43483.775300077,"y":31436.11470464454},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"a59c83d8-66f7-492d-a1d4-5b667c13d1cc","savedPayload":{"position":{"x":27221.552941324044,"y":29809.66235290741},"targetPosition":{"x":27066.43132315313,"y":30372.994534588033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters ETH/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"cc875cdb-48d6-486f-8646-0d2b2141ac85","savedPayload":{"position":{"x":26799.28922398905,"y":28624.385862533323},"targetPosition":{"x":26929.252522576295,"y":28886.465644444495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"33d89faf-122c-46bf-ba77-e2a7dfbca495","savedPayload":{"position":{"x":26929.252522576295,"y":28886.465644444495},"targetPosition":{"x":27059.364774795093,"y":29148.588616065892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"1dcecea0-a097-4662-81c4-732c4d0b1b80","savedPayload":{"position":{"x":27059.364774795093,"y":29148.588616065892},"targetPosition":{"x":27189.7717187341,"y":29410.912360207505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1a624301-03f8-40ff-b830-49866f7bc201","savedPayload":{"position":{"x":27189.7717187341,"y":29410.912360207505},"targetPosition":{"x":27450.123772879848,"y":29934.324575969917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"855821c3-74d9-4535-a79b-b46ed47258a1","savedPayload":{"position":{"x":27201.689117174225,"y":28504.851197973603},"targetPosition":{"x":27296.215301730103,"y":28781.832171101545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"7d062ef8-0d2c-4549-86cb-6560831bb6a9","savedPayload":{"position":{"x":27296.215301730103,"y":28781.832171101545},"targetPosition":{"x":27390.759707784917,"y":29058.783039021946},"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","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"db37abf9-53aa-41f9-b0c1-a9434e75fa80","savedPayload":{"position":{"x":27559.516447458245,"y":28198.28044501},"targetPosition":{"x":27475.126769077044,"y":28628.375157501254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"e8038427-0974-4e69-9876-84fb6ed1b3a7","savedPayload":{"position":{"x":27475.126769077044,"y":28628.375157501254},"targetPosition":{"x":27390.759707784917,"y":29058.783039021946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"51061c76-efe7-4786-a65f-72906b00ba6f","savedPayload":{"position":{"x":27390.759707784917,"y":29058.783039021946},"targetPosition":{"x":27410.582235394315,"y":29351.17874442099},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"25a0d74d-1861-47c0-a152-5cd334940350","savedPayload":{"position":{"x":27410.582235394315,"y":29351.17874442099},"targetPosition":{"x":27450.123772879848,"y":29934.324575969917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"45178c95-9a78-4cde-bec1-14dba38a7379","savedPayload":{"position":{"x":27767.42871584577,"y":28518.636604644005},"targetPosition":{"x":27748.81271280577,"y":28810.77968349651},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"0705c206-6677-469d-b691-2cb57b28d326","savedPayload":{"position":{"x":27748.81271280577,"y":28810.77968349651},"targetPosition":{"x":27730.277613412738,"y":29102.869593913347},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"77c464df-2691-4e19-a403-f0f4f556af0e","savedPayload":{"position":{"x":28215.80321558916,"y":28372.615450095014},"targetPosition":{"x":27973.100474922037,"y":28737.602616347085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"6614248f-ccae-4460-9ffc-d40a991da3e4","savedPayload":{"position":{"x":27973.100474922037,"y":28737.602616347085},"targetPosition":{"x":27730.277613412738,"y":29102.869593913347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"4d01d866-20ef-49ce-89b4-10570ed3df1f","savedPayload":{"position":{"x":27730.277613412738,"y":29102.869593913347},"targetPosition":{"x":27636.74004531444,"y":29380.54446915657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"16b46861-7a1d-42e7-b6ad-080bafe601e2","savedPayload":{"position":{"x":27636.74004531444,"y":29380.54446915657},"targetPosition":{"x":27450.123772879848,"y":29934.324575969917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"96fdc6f1-e909-4bd4-b8bc-4b11c6c2e10c","savedPayload":{"position":{"x":28285.58222355639,"y":28748.402647642302},"targetPosition":{"x":28156.48486418097,"y":29011.061263760545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"d005043d-5331-4595-903c-87885850771c","savedPayload":{"position":{"x":28156.48486418097,"y":29011.061263760545},"targetPosition":{"x":28027.456737436143,"y":29273.697783927004},"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":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"4fa54d06-c19b-4eb2-827e-7424a4ad70a4","savedPayload":{"position":{"x":28755.647939329672,"y":28785.064608308006},"targetPosition":{"x":28391.66558644188,"y":29029.297481480116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"c5efc024-860a-418a-a4c1-1aa02b3445e6","savedPayload":{"position":{"x":28391.66558644188,"y":29029.297481480116},"targetPosition":{"x":28027.456737436143,"y":29273.697783927004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"4f994004-edc7-428f-b24f-a1a143bce141","savedPayload":{"position":{"x":28027.456737436143,"y":29273.697783927004},"targetPosition":{"x":27834.642878189625,"y":29494.316606706954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"00e69607-c8f7-47de-980b-b59c6d3759b3","savedPayload":{"position":{"x":27834.642878189625,"y":29494.316606706954},"targetPosition":{"x":27450.123772879848,"y":29934.324575969917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"53426814-c6e7-4df3-bc60-6704e9e87f45","savedPayload":{"position":{"x":28676.27256607777,"y":29159.18479952907},"targetPosition":{"x":28456.443127789888,"y":29352.274190618195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"2102ad50-0cb1-43c2-90a8-5e1e04e2cc49","savedPayload":{"position":{"x":28456.443127789888,"y":29352.274190618195},"targetPosition":{"x":28236.610647879945,"y":29545.333707099937},"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":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"c532ec79-8a24-44e6-92d9-8bc282efd4cb","savedPayload":{"position":{"x":29096.381304616334,"y":29372.950166020324},"targetPosition":{"x":28666.716786129517,"y":29459.175197837638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"28e6f805-cf75-428e-b854-f607bad8ab4a","savedPayload":{"position":{"x":28666.716786129517,"y":29459.175197837638},"targetPosition":{"x":28236.610647879945,"y":29545.333707099937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"084f1122-caa0-4c5f-93c5-065b1192467e","savedPayload":{"position":{"x":28236.610647879945,"y":29545.333707099937},"targetPosition":{"x":27973.891742378568,"y":29675.170796356197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"5d7ee249-fc02-4c84-aa6e-a43a53b1c2df","savedPayload":{"position":{"x":27973.891742378568,"y":29675.170796356197},"targetPosition":{"x":27450.123772879848,"y":29934.324575969917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"a0ae1762-86ed-487f-8e0d-6c327b8804ab","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"747bcc4c-4e5a-42a5-8253-25d0b8cf740c","savedPayload":{"position":{"x":28618.0883503226,"y":29856.948457726994},"targetPosition":{"x":28325.927606864003,"y":29876.31973560584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"34f0bcb8-7f23-4988-97b8-950e9cef5a30","savedPayload":{"position":{"x":28325.927606864003,"y":29876.31973560584},"targetPosition":{"x":28033.43096550348,"y":29895.59000164221},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"eb7ad8af-7671-4457-8354-9d2431931024","savedPayload":{"position":{"x":28033.43096550348,"y":29895.59000164221},"targetPosition":{"x":27450.123772879848,"y":29934.324575969917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Resistances & Supports","bot":{"type":"Indicator Bot Instance","name":"Resistances & Supports","code":" {\n \"repo\": \"\"\n }","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"d1e36c99-1720-4af5-b015-9339874bf55a","savedPayload":{"position":{"x":29155.13636136289,"y":30271.40711723251},"targetPosition":{"x":28718.416275731586,"y":30243.471550294922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"bf0ce014-7dd3-41c4-9135-e1cd4be76b8c","savedPayload":{"position":{"x":28718.416275731586,"y":30243.471550294922},"targetPosition":{"x":28281.024359391704,"y":30215.885012196104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"5d9b2729-43fb-4e7e-aa4f-b8477c424e51"}}},{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"2f0daec9-d39c-4e27-a317-64841ad95f7f","savedPayload":{"position":{"x":28767.446630228354,"y":30540.33714747424},"targetPosition":{"x":28524.210247653158,"y":30378.348755211653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"2dca58ad-f77e-46a3-9477-9f312e9b4b88","savedPayload":{"position":{"x":28524.210247653158,"y":30378.348755211653},"targetPosition":{"x":28281.024359391704,"y":30215.885012196104},"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":"be19d91b-9337-4f84-96b3-f4e54ea12df5"}}}],"id":"901bc214-c02e-4db2-97cd-4e3d48d9d8b6","savedPayload":{"position":{"x":28281.024359391704,"y":30215.885012196104},"targetPosition":{"x":28003.730867262017,"y":30121.9627357361},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d7907b00-1721-4cba-a3fb-1d03435d2f4e","savedPayload":{"position":{"x":28003.730867262017,"y":30121.9627357361},"targetPosition":{"x":27450.123772879848,"y":29934.324575969917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5d4def57-b5b9-4453-88bb-8649aa561ccf","savedPayload":{"position":{"x":27450.601528424897,"y":29932.897979906265},"targetPosition":{"x":27066.43132315313,"y":30372.994534588033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta ETH/USDT","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"129a2d72-7da7-4d0f-b6fb-dd67b417e2ce","savedPayload":{"position":{"x":44071.61797125626,"y":29269.179122287296},"targetPosition":{"x":44017.22604407985,"y":29586.166432086655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"be016955-a815-46e2-ad93-229e29ba6fe7","savedPayload":{"position":{"x":44017.22604407985,"y":29586.166432086655},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"b2445bee-4612-463a-8539-8a4287f04dc4","savedPayload":{"position":{"x":45168.8488344655,"y":29458.147255078686},"targetPosition":{"x":44565.86589926591,"y":29680.585441818144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"25a649fb-8e63-4f40-8d1e-abbe81f27a21","savedPayload":{"position":{"x":44565.86589926591,"y":29680.585441818144},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"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":"ace79b58-2dff-4428-8ab4-34083d431926","savedPayload":{"position":{"x":43962.84190684965,"y":29903.09502706654},"targetPosition":{"x":43551.90647643782,"y":30397.266512500442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cf1a9199-de8c-4e65-b9f3-8f8f18cc5e20","savedPayload":{"position":{"x":43551.90647643782,"y":30397.266512500442},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"76c5a60c-e224-4efd-b892-200348ce9839","savedPayload":{"position":{"x":44848.06740265459,"y":30126.954299288456},"targetPosition":{"x":44617.64305938516,"y":30351.280902615003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"62633038-8daf-4fbc-bff2-066f390cc6e4","savedPayload":{"position":{"x":44617.64305938516,"y":30351.280902615003},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ad80bd54-c94e-4ab3-b216-1d7dfe035a0d","savedPayload":{"position":{"x":45624.60027321795,"y":30924.208529781736},"targetPosition":{"x":45005.977709353945,"y":30749.876937252106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"05d90026-e634-4d6d-aa47-f9f7e69be4f3","savedPayload":{"position":{"x":45005.977709353945,"y":30749.876937252106},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"be91d55c-5bd9-426c-8d0c-6428194ede0f","savedPayload":{"position":{"x":44387.27143213535,"y":30575.564915785017},"targetPosition":{"x":43764.266809147426,"y":30733.667438768847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"977ac2ab-e863-4a59-a172-a4582e03ab08","savedPayload":{"position":{"x":43764.266809147426,"y":30733.667438768847},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"e161547c-e2dc-406b-babc-1df441c507f9","savedPayload":{"position":{"x":44971.81020849867,"y":31276.620146946167},"targetPosition":{"x":44653.49004123155,"y":31322.55467880252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"10f503d4-9a44-430d-850b-a7183e765fbc","savedPayload":{"position":{"x":44653.49004123155,"y":31322.55467880252},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"18a8afce-0c64-4729-8fa7-e0a5e8923c62","savedPayload":{"position":{"x":45131.12724051729,"y":32377.93040356555},"targetPosition":{"x":44733.22183307022,"y":31873.22574960204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"96c854e9-d75e-4df3-8ddb-6b21ff2002b8","savedPayload":{"position":{"x":44733.22183307022,"y":31873.22574960204},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"4f0b8965-931f-4b16-a81b-1f4d4cd3c4a5","savedPayload":{"position":{"x":44335.23861007668,"y":31368.479242651025},"targetPosition":{"x":43738.24708451567,"y":31130.308446359704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"15f9f816-9348-4292-8147-9d809d54c73c","savedPayload":{"position":{"x":43738.24708451567,"y":31130.308446359704},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"1ef56d26-e451-4487-be2a-c948849fa7b7","savedPayload":{"position":{"x":44395.607564219106,"y":32279.346270225502},"targetPosition":{"x":44111.06304717549,"y":32129.543698932317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"331734ae-fd9f-4abc-b291-9c4fb9d3345d","savedPayload":{"position":{"x":44111.06304717549,"y":32129.543698932317},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"0f475fd8-e749-4708-ad2f-7dcf45b2c54e","savedPayload":{"position":{"x":43876.85035087776,"y":33264.29116567567},"targetPosition":{"x":43851.71485258066,"y":32622.075786304355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"68b988e9-0d00-403c-a3c1-91870e5c9b06","savedPayload":{"position":{"x":43851.71485258066,"y":32622.075786304355},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"629c7f4f-8745-4cba-b3ab-7148efa4132b","savedPayload":{"position":{"x":43826.594538981204,"y":31979.768305805377},"targetPosition":{"x":43483.775300077,"y":31436.11470464454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"4a5bd014-001e-4c7f-bf43-81c0d6c9bca5","savedPayload":{"position":{"x":43483.775300077,"y":31436.11470464454},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"34254e38-722e-4ce3-aa5b-b42200e4c2f1","savedPayload":{"position":{"x":27603.543910357937,"y":30143.519412714744},"targetPosition":{"x":27066.43132315313,"y":30372.994534588033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters ETH/BTC","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/BTC","id":"50117ff4-5827-41ae-8a92-ef29219c90f8","savedPayload":{"position":{"x":28266.537834114475,"y":29073.377355876426},"targetPosition":{"x":28142.867451521393,"y":29338.446647854984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"18559fd4-20e1-4dcc-a27f-a6a982690446","savedPayload":{"position":{"x":28142.867451521393,"y":29338.446647854984},"targetPosition":{"x":28019.29079701134,"y":29603.688963937915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"2de3643e-4bec-4a5c-9e81-7085df29fc8d","savedPayload":{"position":{"x":28019.29079701134,"y":29603.688963937915},"targetPosition":{"x":27895.678230358488,"y":29869.358418965116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"731d51ba-bcb7-44d9-95be-fff96f5709d9","savedPayload":{"position":{"x":27895.678230358488,"y":29869.358418965116},"targetPosition":{"x":27648.865618657772,"y":30399.373320026294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/BTC","id":"f6d71588-2d64-44f3-8531-ec29dd82671b","savedPayload":{"position":{"x":28610.971670311163,"y":29313.561769127085},"targetPosition":{"x":28453.505697438988,"y":29560.2393484955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"79d502f7-2624-460c-a70a-4fee122bcedd","savedPayload":{"position":{"x":28453.505697438988,"y":29560.2393484955},"targetPosition":{"x":28296.108908109873,"y":29806.950462580397},"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","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/BTC","id":"5eed9eaa-cbb4-47e0-b68f-9389cf5e18fd","savedPayload":{"position":{"x":29074.199887198192,"y":29402.723900573368},"targetPosition":{"x":28685.255058358565,"y":29604.733269802582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"12b99ce1-817d-4b25-b8d0-b13cb0c5cdc3","savedPayload":{"position":{"x":28685.255058358565,"y":29604.733269802582},"targetPosition":{"x":28296.108908109873,"y":29806.950462580397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"a38bb4aa-664a-4e75-8984-23ea3a446a11","savedPayload":{"position":{"x":28296.108908109873,"y":29806.950462580397},"targetPosition":{"x":28080.025184785503,"y":30004.81065483329},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"055fe505-62b6-4aca-a1e3-dbd4eb5539d8","savedPayload":{"position":{"x":28080.025184785503,"y":30004.81065483329},"targetPosition":{"x":27648.865618657772,"y":30399.373320026294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/BTC","id":"de54a159-8e2b-4f44-a076-eb728fd51b7c","savedPayload":{"position":{"x":28953.646003264414,"y":29765.43377629761},"targetPosition":{"x":28713.61398542738,"y":29932.875464734007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"49ad21e3-d59a-44bd-870b-f7b814d16899","savedPayload":{"position":{"x":28713.61398542738,"y":29932.875464734007},"targetPosition":{"x":28473.651598577773,"y":30100.338374749925},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/BTC","id":"1593f9c4-e4fb-49c8-a016-4d7dbd41fea3","savedPayload":{"position":{"x":29347.396283796814,"y":30024.84490652097},"targetPosition":{"x":28910.674851617143,"y":30062.557002577516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"a1b9458b-c598-4a53-ba2b-982f85178a2b","savedPayload":{"position":{"x":28910.674851617143,"y":30062.557002577516},"targetPosition":{"x":28473.651598577773,"y":30100.338374749925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"332ffe7e-348f-4698-87d2-613f5bd6b82d","savedPayload":{"position":{"x":28473.651598577773,"y":30100.338374749925},"targetPosition":{"x":28198.19248956802,"y":30200.216525573058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"7860adee-58ad-4539-a424-993de66776e9","savedPayload":{"position":{"x":28198.19248956802,"y":30200.216525573058},"targetPosition":{"x":27648.865618657772,"y":30399.373320026294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/BTC","id":"0416410d-8d95-477f-9ac3-0b5d61bed457","savedPayload":{"position":{"x":29096.894458586772,"y":30313.086318196023},"targetPosition":{"x":28811.076151141322,"y":30375.829037430412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"8821214a-8ec6-4f0e-9f3b-bcb275c2b80a","savedPayload":{"position":{"x":28811.076151141322,"y":30375.829037430412},"targetPosition":{"x":28525.343523831565,"y":30438.605909874546},"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":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/BTC","id":"62e17c50-7650-4a8d-a87c-9f7facb5848a","savedPayload":{"position":{"x":29361.62038104608,"y":30703.090888484767},"targetPosition":{"x":28943.57665155624,"y":30570.889348686826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"df4db1c9-311c-4f42-8d71-60163f3b0827","savedPayload":{"position":{"x":28943.57665155624,"y":30570.889348686826},"targetPosition":{"x":28525.343523831565,"y":30438.605909874546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"2a231206-1551-4b77-a971-b1b50dcd301a","savedPayload":{"position":{"x":28525.343523831565,"y":30438.605909874546},"targetPosition":{"x":28232.589515314274,"y":30425.55782384343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"64a848a8-c044-4744-92cd-b91a2b103e2e","savedPayload":{"position":{"x":28232.589515314274,"y":30425.55782384343},"targetPosition":{"x":27648.865618657772,"y":30399.373320026294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/BTC","id":"b5fe9cbb-e204-44e3-86c7-52ce8c748d38","savedPayload":{"position":{"x":29019.43043206343,"y":30874.397845272484},"targetPosition":{"x":28731.35695570822,"y":30823.017500100992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"174705d2-badb-4d28-a5b4-6b771f288d67","savedPayload":{"position":{"x":28731.35695570822,"y":30823.017500100992},"targetPosition":{"x":28443.27974122032,"y":30771.542322878937},"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":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/BTC","id":"9aea925f-0130-4059-a291-4681824e87bc","savedPayload":{"position":{"x":29114.10766501715,"y":31336.036554050846},"targetPosition":{"x":28778.797925316103,"y":31053.928167206977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"e9019a99-7f97-4a41-a056-f53802ab0ed6","savedPayload":{"position":{"x":28778.797925316103,"y":31053.928167206977},"targetPosition":{"x":28443.27974122032,"y":30771.542322878937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"24a74ca5-f2e2-4284-a1f4-217d5785031f","savedPayload":{"position":{"x":28443.27974122032,"y":30771.542322878937},"targetPosition":{"x":28177.970256003515,"y":30647.200404281943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"1085202f-1986-4178-82b7-4fdaacd9f3cf","savedPayload":{"position":{"x":28177.970256003515,"y":30647.200404281943},"targetPosition":{"x":27648.865618657772,"y":30399.373320026294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"e684dce6-c664-4f66-9b61-4dfae70cbfc7","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"25899e8b-541e-4695-8e5a-23b7b99d67de","savedPayload":{"position":{"x":28437.391629021866,"y":31264.02705239199},"targetPosition":{"x":28240.11509001831,"y":31047.769224887234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"e4abab4b-77d9-4f6b-a67a-e88793393292","savedPayload":{"position":{"x":28240.11509001831,"y":31047.769224887234},"targetPosition":{"x":28042.730519203767,"y":30831.19485932917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fbd776e4-c7d5-4a05-bfe7-b0e57650d9c9","savedPayload":{"position":{"x":28042.730519203767,"y":30831.19485932917},"targetPosition":{"x":27648.865618657772,"y":30399.373320026294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Resistances & Supports","bot":{"type":"Indicator Bot Instance","name":"Resistances & Supports","code":" {\n \"repo\": \"\"\n }","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"62e9fb0f-2a8d-41f0-b9bb-65f8e5c45060","savedPayload":{"position":{"x":28448.104205523236,"y":31943.617131360512},"targetPosition":{"x":28197.399585814135,"y":31584.277302629984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"0714980b-450a-406a-a906-a0619657a716","savedPayload":{"position":{"x":28197.399585814135,"y":31584.277302629984},"targetPosition":{"x":27946.481626313467,"y":31224.6991276558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"5d9b2729-43fb-4e7e-aa4f-b8477c424e51"}}},{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"e2bcd8e9-e2b6-4ea5-8760-6bd3b003ef55","savedPayload":{"position":{"x":27996.29307114326,"y":31807.616334955455},"targetPosition":{"x":27971.23722232811,"y":31516.150633949008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"8d8d5d84-bcc7-448c-8cbb-45dd22edf4df","savedPayload":{"position":{"x":27971.23722232811,"y":31516.150633949008},"targetPosition":{"x":27946.481626313467,"y":31224.6991276558},"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":"be19d91b-9337-4f84-96b3-f4e54ea12df5"}}}],"id":"ca12f66a-4077-4166-8b82-985d56ff53f1","savedPayload":{"position":{"x":27946.481626313467,"y":31224.6991276558},"targetPosition":{"x":27847.30373260846,"y":30949.322486480673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9576e102-5d54-406d-927f-113e8907bed8","savedPayload":{"position":{"x":27847.30373260846,"y":30949.322486480673},"targetPosition":{"x":27648.865618657772,"y":30399.373320026294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0ce8e216-c94a-4f06-a5bd-fc4c71b0993f","savedPayload":{"position":{"x":27649.837261003908,"y":30399.303838468695},"targetPosition":{"x":27066.43132315313,"y":30372.994534588033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta ETH/BTC","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"1db55743-d8cf-4148-8138-13f7f9c6e1c3","savedPayload":{"position":{"x":44071.61797125626,"y":29269.179122287296},"targetPosition":{"x":44017.22604407985,"y":29586.166432086655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"418b68c6-1744-4dda-960d-02c4b4b89911","savedPayload":{"position":{"x":44017.22604407985,"y":29586.166432086655},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"01cc3596-f77b-40be-b843-ec0dd516bfd5","savedPayload":{"position":{"x":45168.8488344655,"y":29458.147255078686},"targetPosition":{"x":44565.86589926591,"y":29680.585441818144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"025f5d29-3551-45d2-a94c-1241797d07fc","savedPayload":{"position":{"x":44565.86589926591,"y":29680.585441818144},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"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":"ad426091-93d4-4503-9241-47371da296fc","savedPayload":{"position":{"x":43962.84190684965,"y":29903.09502706654},"targetPosition":{"x":43551.90647643782,"y":30397.266512500442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"29c47721-e0f4-4058-be4c-4f2ca16fe5a0","savedPayload":{"position":{"x":43551.90647643782,"y":30397.266512500442},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"53459639-6f7b-459d-8bc2-aa4897854f5e","savedPayload":{"position":{"x":44848.06740265459,"y":30126.954299288456},"targetPosition":{"x":44617.64305938516,"y":30351.280902615003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"2a4e01a4-355d-40fb-b64f-4704594dfad9","savedPayload":{"position":{"x":44617.64305938516,"y":30351.280902615003},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"0c19e4e8-52bd-46f2-ac15-4fb8092a16ed","savedPayload":{"position":{"x":45624.60027321795,"y":30924.208529781736},"targetPosition":{"x":45005.977709353945,"y":30749.876937252106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"051dd032-45ee-48a0-bc4d-17bcb0d2064e","savedPayload":{"position":{"x":45005.977709353945,"y":30749.876937252106},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"51097d3b-ceb2-45be-b78d-16356d5d538b","savedPayload":{"position":{"x":44387.27143213535,"y":30575.564915785017},"targetPosition":{"x":43764.266809147426,"y":30733.667438768847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ac5235e1-17c1-4484-912d-90ed19311357","savedPayload":{"position":{"x":43764.266809147426,"y":30733.667438768847},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"39f1eead-148e-4569-bbd5-4df788ddab6c","savedPayload":{"position":{"x":44971.81020849867,"y":31276.620146946167},"targetPosition":{"x":44653.49004123155,"y":31322.55467880252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"d43486cc-2776-4d7a-a550-c62b41a584c1","savedPayload":{"position":{"x":44653.49004123155,"y":31322.55467880252},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"00877ec3-5d7f-4d18-afe9-11d0425cfe16","savedPayload":{"position":{"x":45131.12724051729,"y":32377.93040356555},"targetPosition":{"x":44733.22183307022,"y":31873.22574960204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"12fd638f-f6ba-4609-9229-5b3dc4e9445a","savedPayload":{"position":{"x":44733.22183307022,"y":31873.22574960204},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"743d175a-790b-46b6-aa41-2418dd45c10c","savedPayload":{"position":{"x":44335.23861007668,"y":31368.479242651025},"targetPosition":{"x":43738.24708451567,"y":31130.308446359704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"526fbfc5-d200-476a-87d5-ca312c95f852","savedPayload":{"position":{"x":43738.24708451567,"y":31130.308446359704},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"7537dfc4-6e4f-4d0b-890c-bd34916cf803","savedPayload":{"position":{"x":44395.607564219106,"y":32279.346270225502},"targetPosition":{"x":44111.06304717549,"y":32129.543698932317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"603519ba-5d9c-49ff-998d-f0d57d559b65","savedPayload":{"position":{"x":44111.06304717549,"y":32129.543698932317},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"84d522c1-3168-4b00-8cc6-b00ce14717a5","savedPayload":{"position":{"x":43876.85035087776,"y":33264.29116567567},"targetPosition":{"x":43851.71485258066,"y":32622.075786304355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"eb269018-9849-4612-9c1c-b3e52edd30e5","savedPayload":{"position":{"x":43851.71485258066,"y":32622.075786304355},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"b8ed3aa8-01bb-4b32-a4e6-a7d0de686ca8","savedPayload":{"position":{"x":43826.594538981204,"y":31979.768305805377},"targetPosition":{"x":43483.775300077,"y":31436.11470464454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"8cfe1b63-44bc-4780-bc62-6abca0801a9b","savedPayload":{"position":{"x":43483.775300077,"y":31436.11470464454},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"ba0bcd45-3b52-466b-a341-9a821e104fff","savedPayload":{"position":{"x":27580.451980504084,"y":30650.12467668889},"targetPosition":{"x":27066.43132315313,"y":30372.994534588033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}}],"id":"1c92171b-9688-4fd0-873e-50cb2368bacc","savedPayload":{"position":{"x":27066.895228407135,"y":30372.295572533367},"targetPosition":{"x":26594.57388499951,"y":30715.633401753315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Bitfinex","id":"3ff59cad-42ae-4527-b060-4585cc4e7e1a"}}},{"type":"Exchange Tasks","name":"Bittrex","taskManagers":[{"type":"Task Manager","name":"Masters BTC/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"1780ffc2-9497-4b59-8746-b58647de344d","savedPayload":{"position":{"x":43548.31869375691,"y":28832.74871320079},"targetPosition":{"x":43468.23581599018,"y":29144.465623065378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"78724982-b4f7-4169-97e8-ab975b48af8b","savedPayload":{"position":{"x":43468.23581599018,"y":29144.465623065378},"targetPosition":{"x":43388.21989927531,"y":29456.2064563822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"1ccae54e-0e19-4d81-9a1c-89fac0bb54d1","savedPayload":{"position":{"x":43388.21989927531,"y":29456.2064563822},"targetPosition":{"x":43308.31846626916,"y":29768.295924463717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"744d1265-e4fa-405e-b212-bfd77ef47a8c","savedPayload":{"position":{"x":43308.31846626916,"y":29768.295924463717},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"fe3e381f-4daa-4dcc-a394-ce8ede3491da","savedPayload":{"position":{"x":44044.56919550187,"y":29070.680669232206},"targetPosition":{"x":43907.75296865664,"y":29362.11317316699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"1875a771-aa34-4fcd-8689-fedec632f3e8","savedPayload":{"position":{"x":43907.75296865664,"y":29362.11317316699},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"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","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"52725b95-3c18-4336-9d91-a9bd3523b5e4","savedPayload":{"position":{"x":44562.98482395708,"y":29102.272964030177},"targetPosition":{"x":44167.05042758576,"y":29377.81676557684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"ec2c968d-a264-42ac-9c16-f6e1ba2c9f86","savedPayload":{"position":{"x":44167.05042758576,"y":29377.81676557684},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"d6a7f78b-50c3-473e-913f-dc5979717566","savedPayload":{"position":{"x":43770.940957510276,"y":29653.49333725624},"targetPosition":{"x":43563.27921096938,"y":29899.761189375113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4d8d8d67-a482-4efd-91d3-6bed03b2a129","savedPayload":{"position":{"x":43563.27921096938,"y":29899.761189375113},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"8d13bcb3-1d71-44fc-b106-aa7ad989c197","savedPayload":{"position":{"x":44529.43831259792,"y":29591.160241515347},"targetPosition":{"x":44279.57761586809,"y":29794.164895509643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"5fe33480-1ab7-48c8-9174-166f52e23a9f","savedPayload":{"position":{"x":44279.57761586809,"y":29794.164895509643},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"0b8fe802-636f-4106-9d5d-a4d569e9d862","savedPayload":{"position":{"x":44982.702734016326,"y":29844.505580086603},"targetPosition":{"x":44506.37336418851,"y":29920.77047196001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"eed453d2-0db6-41a7-8425-e8881faf7754","savedPayload":{"position":{"x":44506.37336418851,"y":29920.77047196001},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"811cebe6-b3e1-4d73-b824-5dedafaa1ceb","savedPayload":{"position":{"x":44029.76414901768,"y":29997.129510062663},"targetPosition":{"x":43735.659869568226,"y":30128.724866806584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"68efd7db-7c12-4670-819c-d2a9b38476cc","savedPayload":{"position":{"x":43735.659869568226,"y":30128.724866806584},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"5b43f48a-37a4-4e78-b781-f2bcb1270703","savedPayload":{"position":{"x":44740.19992947904,"y":30269.709710790212},"targetPosition":{"x":44426.92346740986,"y":30344.087153351575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"c7d4d0a3-b5ea-4e56-8e02-24978c918b24","savedPayload":{"position":{"x":44426.92346740986,"y":30344.087153351575},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"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":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"40125ac5-4844-478e-b09f-8d536ba012f8","savedPayload":{"position":{"x":45038.495695074605,"y":30694.038844894512},"targetPosition":{"x":44576.2033062764,"y":30556.27191701111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"0ffa5337-58d2-41e6-a67a-6cc1de9bfb36","savedPayload":{"position":{"x":44576.2033062764,"y":30556.27191701111},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"edabce4c-368d-4db3-85cc-93d7e323eda3","savedPayload":{"position":{"x":44113.681364955875,"y":30418.40946263666},"targetPosition":{"x":43791.5644814685,"y":30409.41652660318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e24efdb7-b189-4bcf-94e4-d2e6b00fb490","savedPayload":{"position":{"x":43791.5644814685,"y":30409.41652660318},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ca94dced-1aaf-48a5-b360-23a63c3f58e0","savedPayload":{"position":{"x":44634.8713858913,"y":30972.647789916467},"targetPosition":{"x":44320.40783090555,"y":30903.87226015812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"c789be90-68a4-4de4-8acf-0891da769545","savedPayload":{"position":{"x":44320.40783090555,"y":30903.87226015812},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"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":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"6553c2e9-1a33-47e3-ac8b-f912629b1dc8","savedPayload":{"position":{"x":44719.2935084921,"y":31484.844997094602},"targetPosition":{"x":44362.66897516384,"y":31160.069974503385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"e9443366-4644-447f-80c6-9b561e377749","savedPayload":{"position":{"x":44362.66897516384,"y":31160.069974503385},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"bca3a4a6-0167-46b0-909a-42e3b0d52c32","savedPayload":{"position":{"x":44005.998383917504,"y":30835.000935669093},"targetPosition":{"x":43719.93790732384,"y":30686.895169007028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"b951cd56-ad6e-4637-8213-2d67b75cc178","savedPayload":{"position":{"x":43719.93790732384,"y":30686.895169007028},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"8ad42918-1e6c-4574-a934-8bc1e2f1af9d","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"74b493aa-0410-4341-94cd-30f5d659a45b","savedPayload":{"position":{"x":43921.27648533482,"y":31421.11867904632},"targetPosition":{"x":43727.95100474325,"y":31163.712277360213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"d2d5a601-cb43-4805-8a80-3bed91890f9b","savedPayload":{"position":{"x":43727.95100474325,"y":31163.712277360213},"targetPosition":{"x":43534.654105285146,"y":30905.972976263627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b1b8a635-8d4d-4b85-a11d-029a19ce01a9","savedPayload":{"position":{"x":43534.654105285146,"y":30905.972976263627},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b2ebfc85-39b4-4aec-9f3b-9207ec539654","savedPayload":{"position":{"x":27336.733513555173,"y":30247.136153520674},"targetPosition":{"x":27169.91762845011,"y":30806.78914268873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta BTC/USDT","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"5d7cfc15-53d5-44bf-8b36-b67f0e839b07","savedPayload":{"position":{"x":44071.61797125626,"y":29269.179122287296},"targetPosition":{"x":44017.22604407985,"y":29586.166432086655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"0a340ef9-87a4-42ca-b346-e3af8949d6b1","savedPayload":{"position":{"x":44017.22604407985,"y":29586.166432086655},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"9eae1d26-ed64-424f-9b9d-591fca16ea9c","savedPayload":{"position":{"x":45168.8488344655,"y":29458.147255078686},"targetPosition":{"x":44565.86589926591,"y":29680.585441818144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"3b111b00-71a0-4a3d-a2e3-fe1289b003fb","savedPayload":{"position":{"x":44565.86589926591,"y":29680.585441818144},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"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":"92f31b57-1fcf-4a18-97b8-bc0163debb80","savedPayload":{"position":{"x":43962.84190684965,"y":29903.09502706654},"targetPosition":{"x":43551.90647643782,"y":30397.266512500442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f69f6ff8-da33-4294-b6f3-8608ef661195","savedPayload":{"position":{"x":43551.90647643782,"y":30397.266512500442},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"f34d31b2-10c6-48e8-9cb9-3843c2172f72","savedPayload":{"position":{"x":44848.06740265459,"y":30126.954299288456},"targetPosition":{"x":44617.64305938516,"y":30351.280902615003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"a222cedb-2b25-481c-8b56-281830a9791e","savedPayload":{"position":{"x":44617.64305938516,"y":30351.280902615003},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"644c5bb1-bcab-4640-b0b1-c3a928e4895d","savedPayload":{"position":{"x":45624.60027321795,"y":30924.208529781736},"targetPosition":{"x":45005.977709353945,"y":30749.876937252106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"d7839f8f-507d-48b9-8cc2-d11ea23b5775","savedPayload":{"position":{"x":45005.977709353945,"y":30749.876937252106},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"66f908cb-8ec0-4168-a86e-64414c5a4b39","savedPayload":{"position":{"x":44387.27143213535,"y":30575.564915785017},"targetPosition":{"x":43764.266809147426,"y":30733.667438768847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"935b8203-b3fe-4702-a8c4-b3057a0b2931","savedPayload":{"position":{"x":43764.266809147426,"y":30733.667438768847},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"03cc27d3-6dbf-4b0f-aa10-9fd28bd1cd2c","savedPayload":{"position":{"x":44971.81020849867,"y":31276.620146946167},"targetPosition":{"x":44653.49004123155,"y":31322.55467880252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"b0963b2a-1449-4fab-9ee8-c9a2a7bd970b","savedPayload":{"position":{"x":44653.49004123155,"y":31322.55467880252},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"4f232f2d-442b-46d0-ad5a-e55d74e0e85e","savedPayload":{"position":{"x":45131.12724051729,"y":32377.93040356555},"targetPosition":{"x":44733.22183307022,"y":31873.22574960204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"b610643f-7906-4f00-8b97-03e02951e62e","savedPayload":{"position":{"x":44733.22183307022,"y":31873.22574960204},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"5efa3434-d591-454b-83b1-0b984e1fd7fd","savedPayload":{"position":{"x":44335.23861007668,"y":31368.479242651025},"targetPosition":{"x":43738.24708451567,"y":31130.308446359704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8be84f08-7bb3-457d-99e4-6f3edeb5e7f5","savedPayload":{"position":{"x":43738.24708451567,"y":31130.308446359704},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ca1490db-84d2-4fa1-8d35-26f4ca150acb","savedPayload":{"position":{"x":44395.607564219106,"y":32279.346270225502},"targetPosition":{"x":44111.06304717549,"y":32129.543698932317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"f01ea2f9-fc48-48d9-b8dd-0928299d21d8","savedPayload":{"position":{"x":44111.06304717549,"y":32129.543698932317},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"2ffb2888-7537-424c-80c3-3d63837acf89","savedPayload":{"position":{"x":43876.85035087776,"y":33264.29116567567},"targetPosition":{"x":43851.71485258066,"y":32622.075786304355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"b691f60a-ba80-4e03-80a7-dd15b47ae8dc","savedPayload":{"position":{"x":43851.71485258066,"y":32622.075786304355},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"7fe3c8eb-1b9b-4bca-b587-a9282bd3a66c","savedPayload":{"position":{"x":43826.594538981204,"y":31979.768305805377},"targetPosition":{"x":43483.775300077,"y":31436.11470464454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"2468e18b-6fcd-40ed-844f-93839b72d8de","savedPayload":{"position":{"x":43483.775300077,"y":31436.11470464454},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"ccac75f5-7494-476f-845c-6f8d63833073","savedPayload":{"position":{"x":27436.59908556819,"y":30284.245049110013},"targetPosition":{"x":27169.91762845011,"y":30806.78914268873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters ETH/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"0d3c2573-be18-46f9-9b2d-6294c05189f6","savedPayload":{"position":{"x":43548.31869375691,"y":28832.74871320079},"targetPosition":{"x":43468.23581599018,"y":29144.465623065378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"d7d2b16a-3788-446f-9e97-6d02deb9c779","savedPayload":{"position":{"x":43468.23581599018,"y":29144.465623065378},"targetPosition":{"x":43388.21989927531,"y":29456.2064563822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"6b00725d-2ba3-4e82-897e-1425113d0644","savedPayload":{"position":{"x":43388.21989927531,"y":29456.2064563822},"targetPosition":{"x":43308.31846626916,"y":29768.295924463717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"762665b6-051f-4c6a-84ad-42d6444d646a","savedPayload":{"position":{"x":43308.31846626916,"y":29768.295924463717},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ca122ad9-f298-4ccc-b198-e1bf392b6b08","savedPayload":{"position":{"x":44044.56919550187,"y":29070.680669232206},"targetPosition":{"x":43907.75296865664,"y":29362.11317316699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"6b45c72e-5fdd-4fd9-b8e4-e23ac1931a27","savedPayload":{"position":{"x":43907.75296865664,"y":29362.11317316699},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"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","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"8c6fd1b3-60d9-4d59-a188-04f0aeb3d79a","savedPayload":{"position":{"x":44562.98482395708,"y":29102.272964030177},"targetPosition":{"x":44167.05042758576,"y":29377.81676557684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"4585ac98-8e47-4737-8490-44bd3b418f88","savedPayload":{"position":{"x":44167.05042758576,"y":29377.81676557684},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"7d3f8430-4547-42a8-9ea6-b4f68d134cb8","savedPayload":{"position":{"x":43770.940957510276,"y":29653.49333725624},"targetPosition":{"x":43563.27921096938,"y":29899.761189375113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"166da843-d1eb-4884-ac54-9b862a7955af","savedPayload":{"position":{"x":43563.27921096938,"y":29899.761189375113},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"67d7994d-3837-4cb6-9fcd-3a23be1629bc","savedPayload":{"position":{"x":44529.43831259792,"y":29591.160241515347},"targetPosition":{"x":44279.57761586809,"y":29794.164895509643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"77324268-6770-40e1-b489-e1f1cb596306","savedPayload":{"position":{"x":44279.57761586809,"y":29794.164895509643},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"ee1864b5-884d-483b-948e-bc77c1c40e81","savedPayload":{"position":{"x":44982.702734016326,"y":29844.505580086603},"targetPosition":{"x":44506.37336418851,"y":29920.77047196001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"7aefba11-29fc-491a-8873-bb290607c6fb","savedPayload":{"position":{"x":44506.37336418851,"y":29920.77047196001},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"ad92f396-26cf-4819-80db-2b6b9173e2aa","savedPayload":{"position":{"x":44029.76414901768,"y":29997.129510062663},"targetPosition":{"x":43735.659869568226,"y":30128.724866806584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"ecca1319-dee0-4255-b937-7a8912168d3a","savedPayload":{"position":{"x":43735.659869568226,"y":30128.724866806584},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"97e03a59-eb6a-4d74-bbbe-041c0a59a082","savedPayload":{"position":{"x":44740.19992947904,"y":30269.709710790212},"targetPosition":{"x":44426.92346740986,"y":30344.087153351575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"525bfe91-4cd5-417d-af87-ef0bad7a2723","savedPayload":{"position":{"x":44426.92346740986,"y":30344.087153351575},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"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":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"2e2d5587-eb3e-4e74-9697-7d59af924dda","savedPayload":{"position":{"x":45038.495695074605,"y":30694.038844894512},"targetPosition":{"x":44576.2033062764,"y":30556.27191701111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"3a5a047f-0447-483d-b829-596e038a425e","savedPayload":{"position":{"x":44576.2033062764,"y":30556.27191701111},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"80b7a974-7447-4e21-810c-d1afd0f3c7bf","savedPayload":{"position":{"x":44113.681364955875,"y":30418.40946263666},"targetPosition":{"x":43791.5644814685,"y":30409.41652660318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"201a9eb5-adb6-486f-b1ba-fe37a9b2d2b8","savedPayload":{"position":{"x":43791.5644814685,"y":30409.41652660318},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"10ba053c-5b27-44b7-946b-3738aea3fabe","savedPayload":{"position":{"x":44634.8713858913,"y":30972.647789916467},"targetPosition":{"x":44320.40783090555,"y":30903.87226015812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"f981334a-9924-42ba-88ff-71f3ffe4e7ea","savedPayload":{"position":{"x":44320.40783090555,"y":30903.87226015812},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"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":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"9ba0d558-53e5-4c72-bbd2-a82a8be5e645","savedPayload":{"position":{"x":44719.2935084921,"y":31484.844997094602},"targetPosition":{"x":44362.66897516384,"y":31160.069974503385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"c7c9fb6c-9c99-4323-b992-48d61bdd05b9","savedPayload":{"position":{"x":44362.66897516384,"y":31160.069974503385},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"1bf8ceec-2ed6-4e20-befc-e42a1320c628","savedPayload":{"position":{"x":44005.998383917504,"y":30835.000935669093},"targetPosition":{"x":43719.93790732384,"y":30686.895169007028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"022550e6-2f47-4ae6-b869-6925b055b1b0","savedPayload":{"position":{"x":43719.93790732384,"y":30686.895169007028},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"c311291b-be71-4ddf-b3ca-c7ad0db629b8","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"6b112555-2b45-435b-85ac-bfb0846f5bd1","savedPayload":{"position":{"x":43921.27648533482,"y":31421.11867904632},"targetPosition":{"x":43727.95100474325,"y":31163.712277360213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"66d18637-b8bb-47d7-90e1-f53d11c42bce","savedPayload":{"position":{"x":43727.95100474325,"y":31163.712277360213},"targetPosition":{"x":43534.654105285146,"y":30905.972976263627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0c8c0337-0b48-4ff1-b89a-4b024857e692","savedPayload":{"position":{"x":43534.654105285146,"y":30905.972976263627},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a44da86d-f9f1-423a-bf65-71dd87b220fd","savedPayload":{"position":{"x":27524.135640774082,"y":30336.911673486436},"targetPosition":{"x":27169.91762845011,"y":30806.78914268873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta ETH/USDT","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"d7d79f54-895c-434d-a522-8e0ebeced0a8","savedPayload":{"position":{"x":44071.61797125626,"y":29269.179122287296},"targetPosition":{"x":44017.22604407985,"y":29586.166432086655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"da78c160-943c-44da-bf0f-f82d5aa34c20","savedPayload":{"position":{"x":44017.22604407985,"y":29586.166432086655},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"5ef0ee88-e430-4176-84e5-545d4622d905","savedPayload":{"position":{"x":45168.8488344655,"y":29458.147255078686},"targetPosition":{"x":44565.86589926591,"y":29680.585441818144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"87d93468-abdc-40c5-b4bd-05e7610b3a7d","savedPayload":{"position":{"x":44565.86589926591,"y":29680.585441818144},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"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":"020c682e-780f-4155-98b4-dbe22948c5c8","savedPayload":{"position":{"x":43962.84190684965,"y":29903.09502706654},"targetPosition":{"x":43551.90647643782,"y":30397.266512500442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"24be2d00-a311-4ab4-a711-58d5a2a5b3c9","savedPayload":{"position":{"x":43551.90647643782,"y":30397.266512500442},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"0bcec4c6-1ecb-46cb-b35a-5370021a6225","savedPayload":{"position":{"x":44848.06740265459,"y":30126.954299288456},"targetPosition":{"x":44617.64305938516,"y":30351.280902615003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"4c95b09d-97cf-4439-a9d0-2c17865629d7","savedPayload":{"position":{"x":44617.64305938516,"y":30351.280902615003},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"aa2d4112-c453-423d-9ba2-baaa69353f5a","savedPayload":{"position":{"x":45624.60027321795,"y":30924.208529781736},"targetPosition":{"x":45005.977709353945,"y":30749.876937252106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"ad08aed2-5dd1-443f-8d92-e478567dbf9e","savedPayload":{"position":{"x":45005.977709353945,"y":30749.876937252106},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"e9b6ac93-3c42-4597-bb0c-834edaf236db","savedPayload":{"position":{"x":44387.27143213535,"y":30575.564915785017},"targetPosition":{"x":43764.266809147426,"y":30733.667438768847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1ac2ac7c-ea96-45b8-94d2-b941812984eb","savedPayload":{"position":{"x":43764.266809147426,"y":30733.667438768847},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"40bdee78-7b62-4767-a507-47a39c5c8462","savedPayload":{"position":{"x":44971.81020849867,"y":31276.620146946167},"targetPosition":{"x":44653.49004123155,"y":31322.55467880252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"cc454707-4d47-4290-8fb5-98bb9363261d","savedPayload":{"position":{"x":44653.49004123155,"y":31322.55467880252},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"304f5b85-9123-49a7-848c-bb6f1d7bc21c","savedPayload":{"position":{"x":45131.12724051729,"y":32377.93040356555},"targetPosition":{"x":44733.22183307022,"y":31873.22574960204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"7a53c781-7260-45c4-b704-045695cca697","savedPayload":{"position":{"x":44733.22183307022,"y":31873.22574960204},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"0a70b7da-0052-4c51-a368-813241eb5967","savedPayload":{"position":{"x":44335.23861007668,"y":31368.479242651025},"targetPosition":{"x":43738.24708451567,"y":31130.308446359704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f207b7ff-f081-407c-b0d1-c9273bbedbb3","savedPayload":{"position":{"x":43738.24708451567,"y":31130.308446359704},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"938d0408-006f-4462-8b9d-956ece5b4f35","savedPayload":{"position":{"x":44395.607564219106,"y":32279.346270225502},"targetPosition":{"x":44111.06304717549,"y":32129.543698932317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"31e9065b-19d9-420b-a623-76b49f57b992","savedPayload":{"position":{"x":44111.06304717549,"y":32129.543698932317},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"fdd79b69-2d87-4b90-942d-d9f8ca61e59f","savedPayload":{"position":{"x":43876.85035087776,"y":33264.29116567567},"targetPosition":{"x":43851.71485258066,"y":32622.075786304355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"fe260333-20da-4b41-a325-9b6068104c12","savedPayload":{"position":{"x":43851.71485258066,"y":32622.075786304355},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"e25ef81e-999b-404f-96e9-29394aa0b922","savedPayload":{"position":{"x":43826.594538981204,"y":31979.768305805377},"targetPosition":{"x":43483.775300077,"y":31436.11470464454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"d8e53940-691b-4655-ac04-5f30dba0fcff","savedPayload":{"position":{"x":43483.775300077,"y":31436.11470464454},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"3052cb2f-8f05-479f-9ab2-e1bcf766690c","savedPayload":{"position":{"x":27598.839949171783,"y":30408.01684943987},"targetPosition":{"x":27169.91762845011,"y":30806.78914268873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters ETC/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"c58d83d9-e726-44bd-bf1c-908a8680a7c2","savedPayload":{"position":{"x":43548.31869375691,"y":28832.74871320079},"targetPosition":{"x":43468.23581599018,"y":29144.465623065378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"170b47b4-8498-4fa1-a846-de854efe1248","savedPayload":{"position":{"x":43468.23581599018,"y":29144.465623065378},"targetPosition":{"x":43388.21989927531,"y":29456.2064563822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"c588e92b-e776-4cad-b323-1cfb60238b1d","savedPayload":{"position":{"x":43388.21989927531,"y":29456.2064563822},"targetPosition":{"x":43308.31846626916,"y":29768.295924463717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0a4d92a3-4047-4dbc-a117-fc55aa03b15f","savedPayload":{"position":{"x":43308.31846626916,"y":29768.295924463717},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"72b908a9-8bbb-442c-8bcb-b82f46f71e9d","savedPayload":{"position":{"x":44044.56919550187,"y":29070.680669232206},"targetPosition":{"x":43907.75296865664,"y":29362.11317316699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"14ca6008-4a73-40e4-a27b-9d16f803bc18","savedPayload":{"position":{"x":43907.75296865664,"y":29362.11317316699},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"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","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ca95745d-51b0-4f24-b4ac-7341ae6590bd","savedPayload":{"position":{"x":44562.98482395708,"y":29102.272964030177},"targetPosition":{"x":44167.05042758576,"y":29377.81676557684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"24f63194-e98b-47fd-8d19-35bfce206ddc","savedPayload":{"position":{"x":44167.05042758576,"y":29377.81676557684},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"14bbc9d2-f550-46f8-ae18-47441ac40c48","savedPayload":{"position":{"x":43770.940957510276,"y":29653.49333725624},"targetPosition":{"x":43563.27921096938,"y":29899.761189375113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9ba4da1d-cb3e-4bef-9c7e-d351ca170085","savedPayload":{"position":{"x":43563.27921096938,"y":29899.761189375113},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"058ebb2a-23a7-44a7-9079-aba0695bf29c","savedPayload":{"position":{"x":44529.43831259792,"y":29591.160241515347},"targetPosition":{"x":44279.57761586809,"y":29794.164895509643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"e9b90d9e-c833-4e05-88e9-c8fbf92655e6","savedPayload":{"position":{"x":44279.57761586809,"y":29794.164895509643},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"7aa1d596-d3b8-4f0d-b72d-a2e9e12e7895","savedPayload":{"position":{"x":44982.702734016326,"y":29844.505580086603},"targetPosition":{"x":44506.37336418851,"y":29920.77047196001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"b79f07eb-34ff-40ac-8f01-240dc272b188","savedPayload":{"position":{"x":44506.37336418851,"y":29920.77047196001},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"23c6aec5-e34f-4e79-8a25-0c071b73932a","savedPayload":{"position":{"x":44029.76414901768,"y":29997.129510062663},"targetPosition":{"x":43735.659869568226,"y":30128.724866806584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"7bab3eb3-d628-4456-bb56-e7217d51c46b","savedPayload":{"position":{"x":43735.659869568226,"y":30128.724866806584},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"981e7ba9-4ed8-45bc-8ca7-1e66f81b7fef","savedPayload":{"position":{"x":44740.19992947904,"y":30269.709710790212},"targetPosition":{"x":44426.92346740986,"y":30344.087153351575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"e6a94599-797c-4374-8c03-6201ec008a7c","savedPayload":{"position":{"x":44426.92346740986,"y":30344.087153351575},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"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":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"6df6f93d-a65e-4a7a-b346-df884c9d073c","savedPayload":{"position":{"x":45038.495695074605,"y":30694.038844894512},"targetPosition":{"x":44576.2033062764,"y":30556.27191701111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"2466c41b-b5c6-4e4c-a61a-250743ddaafc","savedPayload":{"position":{"x":44576.2033062764,"y":30556.27191701111},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"39ff2548-239f-4f3a-b744-fa1fa8054475","savedPayload":{"position":{"x":44113.681364955875,"y":30418.40946263666},"targetPosition":{"x":43791.5644814685,"y":30409.41652660318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"34f032ae-fb9b-4f91-ba19-81bde9de7690","savedPayload":{"position":{"x":43791.5644814685,"y":30409.41652660318},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"4162b1f6-14b6-4b36-9e65-b8aae3708e42","savedPayload":{"position":{"x":44634.8713858913,"y":30972.647789916467},"targetPosition":{"x":44320.40783090555,"y":30903.87226015812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"e031ced9-9d8e-42e7-af8f-fcb362ea2b2c","savedPayload":{"position":{"x":44320.40783090555,"y":30903.87226015812},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"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":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"366e37cd-4d9e-42d4-a47e-c4e9d3f80a51","savedPayload":{"position":{"x":44719.2935084921,"y":31484.844997094602},"targetPosition":{"x":44362.66897516384,"y":31160.069974503385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"724d3f32-6c01-45e7-a2f7-266facbd6c0c","savedPayload":{"position":{"x":44362.66897516384,"y":31160.069974503385},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"b668417c-6fec-4ff3-bf5b-467a7132067a","savedPayload":{"position":{"x":44005.998383917504,"y":30835.000935669093},"targetPosition":{"x":43719.93790732384,"y":30686.895169007028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"5f5a79b4-a4fd-4f7e-8ade-b98a5254141b","savedPayload":{"position":{"x":43719.93790732384,"y":30686.895169007028},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"5f02845e-07a9-470d-97f1-7e494b994a19","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"90495a06-0356-4087-9b94-913dc372a524","savedPayload":{"position":{"x":43921.27648533482,"y":31421.11867904632},"targetPosition":{"x":43727.95100474325,"y":31163.712277360213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"3989d822-d8da-4470-b6e8-e65e5d2495e5","savedPayload":{"position":{"x":43727.95100474325,"y":31163.712277360213},"targetPosition":{"x":43534.654105285146,"y":30905.972976263627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a954690-212d-4757-9f8d-a9e9382f1cfa","savedPayload":{"position":{"x":43534.654105285146,"y":30905.972976263627},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4d9988c5-9561-4095-b5d5-d380ed5053be","savedPayload":{"position":{"x":27659.665441772144,"y":30483.09102239702},"targetPosition":{"x":27169.91762845011,"y":30806.78914268873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta ETC/USDT","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"025ba380-b703-4f30-93f4-6ea9fac945e0","savedPayload":{"position":{"x":44071.61797125626,"y":29269.179122287296},"targetPosition":{"x":44017.22604407985,"y":29586.166432086655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"f1f18bae-aeba-492a-94be-2fbedf8828ab","savedPayload":{"position":{"x":44017.22604407985,"y":29586.166432086655},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"b989cacf-861c-4116-9e2c-09b12d718577","savedPayload":{"position":{"x":45168.8488344655,"y":29458.147255078686},"targetPosition":{"x":44565.86589926591,"y":29680.585441818144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"45d5a2e7-ede8-4149-b5cf-00c71a279947","savedPayload":{"position":{"x":44565.86589926591,"y":29680.585441818144},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"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":"dddff72f-fbfe-4c8a-acf7-366a720be30e","savedPayload":{"position":{"x":43962.84190684965,"y":29903.09502706654},"targetPosition":{"x":43551.90647643782,"y":30397.266512500442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"60cebf7f-188d-43f3-8b2f-5a5662b23cb3","savedPayload":{"position":{"x":43551.90647643782,"y":30397.266512500442},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"a5fb6fc4-22fd-4d8b-bc79-642a718e422f","savedPayload":{"position":{"x":44848.06740265459,"y":30126.954299288456},"targetPosition":{"x":44617.64305938516,"y":30351.280902615003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"23a4ad86-373a-4773-a9c7-e00cf5b0c771","savedPayload":{"position":{"x":44617.64305938516,"y":30351.280902615003},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"6e3e7b90-844f-4f0b-93ac-0379003805ab","savedPayload":{"position":{"x":45624.60027321795,"y":30924.208529781736},"targetPosition":{"x":45005.977709353945,"y":30749.876937252106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"aec415cd-bd58-4e17-a5fa-bd5b745f347c","savedPayload":{"position":{"x":45005.977709353945,"y":30749.876937252106},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"6fd90788-463f-4e03-880d-85d7d1d94f94","savedPayload":{"position":{"x":44387.27143213535,"y":30575.564915785017},"targetPosition":{"x":43764.266809147426,"y":30733.667438768847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d34e4f6c-967d-4c0e-aa67-ed35edfcbc38","savedPayload":{"position":{"x":43764.266809147426,"y":30733.667438768847},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"c28eff88-5dec-496c-87c6-3e199975d4b9","savedPayload":{"position":{"x":44971.81020849867,"y":31276.620146946167},"targetPosition":{"x":44653.49004123155,"y":31322.55467880252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"45e15534-46cd-48e0-930e-63d70ef4127e","savedPayload":{"position":{"x":44653.49004123155,"y":31322.55467880252},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"1ddc576c-2d64-4194-affe-aa4a1820b444","savedPayload":{"position":{"x":45131.12724051729,"y":32377.93040356555},"targetPosition":{"x":44733.22183307022,"y":31873.22574960204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"134445dc-e571-409e-b3b0-daa336b604fa","savedPayload":{"position":{"x":44733.22183307022,"y":31873.22574960204},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"3c7aa2b6-4d51-4949-81b8-d2073a10191a","savedPayload":{"position":{"x":44335.23861007668,"y":31368.479242651025},"targetPosition":{"x":43738.24708451567,"y":31130.308446359704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7db9555d-7c99-47f9-be8a-8cae3d3767fc","savedPayload":{"position":{"x":43738.24708451567,"y":31130.308446359704},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"6d1d623e-5ea3-4090-a135-e2aac5f86d97","savedPayload":{"position":{"x":44395.607564219106,"y":32279.346270225502},"targetPosition":{"x":44111.06304717549,"y":32129.543698932317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"ec924b16-0651-4d83-90f4-b1c588849a04","savedPayload":{"position":{"x":44111.06304717549,"y":32129.543698932317},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"0336c9b2-7dd3-468a-834d-d852ebee78c3","savedPayload":{"position":{"x":43876.85035087776,"y":33264.29116567567},"targetPosition":{"x":43851.71485258066,"y":32622.075786304355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"b9362dc9-fbc6-4b5e-8350-b30824fb014b","savedPayload":{"position":{"x":43851.71485258066,"y":32622.075786304355},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"8569fb96-25dc-41a6-8cf4-be3ae96d5db3","savedPayload":{"position":{"x":43826.594538981204,"y":31979.768305805377},"targetPosition":{"x":43483.775300077,"y":31436.11470464454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"e07db293-97d1-4933-a69c-26bf708f9914","savedPayload":{"position":{"x":43483.775300077,"y":31436.11470464454},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"f3be536e-29ba-4fdb-ab69-625066e088cc","savedPayload":{"position":{"x":27703.617616299798,"y":30569.15309686862},"targetPosition":{"x":27169.91762845011,"y":30806.78914268873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters XMR/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"cf0875ea-99f1-4ecf-bb31-6a4fe7457b04","savedPayload":{"position":{"x":43548.31869375691,"y":28832.74871320079},"targetPosition":{"x":43468.23581599018,"y":29144.465623065378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"9f1d8597-7561-4872-b5a2-57fd631211d0","savedPayload":{"position":{"x":43468.23581599018,"y":29144.465623065378},"targetPosition":{"x":43388.21989927531,"y":29456.2064563822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"f6a62df2-55e1-4d8e-bb0f-5ba10671f99c","savedPayload":{"position":{"x":43388.21989927531,"y":29456.2064563822},"targetPosition":{"x":43308.31846626916,"y":29768.295924463717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fd36c2f6-c039-441a-ac5e-c9aeeb0f72ef","savedPayload":{"position":{"x":43308.31846626916,"y":29768.295924463717},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"9b9fae17-55fe-4174-8dd7-d21d3e0016d6","savedPayload":{"position":{"x":44044.56919550187,"y":29070.680669232206},"targetPosition":{"x":43907.75296865664,"y":29362.11317316699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"99881a7e-5c7c-4e36-b567-980a21bc8d29","savedPayload":{"position":{"x":43907.75296865664,"y":29362.11317316699},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"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","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"5522dc17-15de-49c4-93fb-75dd6760218b","savedPayload":{"position":{"x":44562.98482395708,"y":29102.272964030177},"targetPosition":{"x":44167.05042758576,"y":29377.81676557684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"e21bcf91-cfe4-4a11-b852-dded0029b6c8","savedPayload":{"position":{"x":44167.05042758576,"y":29377.81676557684},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"f605b267-f125-4bf6-a1e1-a4dbc1e4cd18","savedPayload":{"position":{"x":43770.940957510276,"y":29653.49333725624},"targetPosition":{"x":43563.27921096938,"y":29899.761189375113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"759268f4-0c9a-4ad8-aa12-af734a7c6e0c","savedPayload":{"position":{"x":43563.27921096938,"y":29899.761189375113},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"366cbc23-d94e-4e14-ba23-7c240d45e16b","savedPayload":{"position":{"x":44529.43831259792,"y":29591.160241515347},"targetPosition":{"x":44279.57761586809,"y":29794.164895509643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"5d871a29-dfdd-4551-b4e0-96697640134b","savedPayload":{"position":{"x":44279.57761586809,"y":29794.164895509643},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"bb6af2e1-d9ac-4493-994e-58c2d23c5e9d","savedPayload":{"position":{"x":44982.702734016326,"y":29844.505580086603},"targetPosition":{"x":44506.37336418851,"y":29920.77047196001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"5a0d3eef-ca65-4664-a79e-9a781b5f6419","savedPayload":{"position":{"x":44506.37336418851,"y":29920.77047196001},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"69a7a777-e886-4a25-b65b-80975199574d","savedPayload":{"position":{"x":44029.76414901768,"y":29997.129510062663},"targetPosition":{"x":43735.659869568226,"y":30128.724866806584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"a86c7e64-dd2c-4134-9683-b08fe7bc4ef1","savedPayload":{"position":{"x":43735.659869568226,"y":30128.724866806584},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"24c65565-9e52-4315-a3ab-e4c1066ffeb5","savedPayload":{"position":{"x":44740.19992947904,"y":30269.709710790212},"targetPosition":{"x":44426.92346740986,"y":30344.087153351575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"357693cc-f802-4b11-91de-f0bf10fc4409","savedPayload":{"position":{"x":44426.92346740986,"y":30344.087153351575},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"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":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"39937831-881c-4ea5-a6a3-f57aaf453571","savedPayload":{"position":{"x":45038.495695074605,"y":30694.038844894512},"targetPosition":{"x":44576.2033062764,"y":30556.27191701111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"0dcf09ed-a665-4745-bbfd-9c14145eb8b2","savedPayload":{"position":{"x":44576.2033062764,"y":30556.27191701111},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"c34a2d76-0f8a-430e-88f1-94d8a1cebe59","savedPayload":{"position":{"x":44113.681364955875,"y":30418.40946263666},"targetPosition":{"x":43791.5644814685,"y":30409.41652660318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45c900d5-2377-4ab3-9988-5c8f7ee691d5","savedPayload":{"position":{"x":43791.5644814685,"y":30409.41652660318},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"2013f596-31cc-4740-a502-1cd6f0e04456","savedPayload":{"position":{"x":44634.8713858913,"y":30972.647789916467},"targetPosition":{"x":44320.40783090555,"y":30903.87226015812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"612c38a1-3cc9-4f06-8280-de854a42afc9","savedPayload":{"position":{"x":44320.40783090555,"y":30903.87226015812},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"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":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"f4588fbc-ae92-4436-ab29-7d3d6863aacf","savedPayload":{"position":{"x":44719.2935084921,"y":31484.844997094602},"targetPosition":{"x":44362.66897516384,"y":31160.069974503385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"4ae360e1-ad1d-483d-a860-93ca9b406082","savedPayload":{"position":{"x":44362.66897516384,"y":31160.069974503385},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"ae647bc3-e2ef-4c2e-98e2-da17c9fb9cbe","savedPayload":{"position":{"x":44005.998383917504,"y":30835.000935669093},"targetPosition":{"x":43719.93790732384,"y":30686.895169007028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"08212a06-df05-46dc-b52e-1cf9e3cd9796","savedPayload":{"position":{"x":43719.93790732384,"y":30686.895169007028},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"5a576cf0-357a-4f7c-8169-faa3170bbf6e","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"6afbded2-5188-4ebd-8e9e-8925efd6537c","savedPayload":{"position":{"x":43921.27648533482,"y":31421.11867904632},"targetPosition":{"x":43727.95100474325,"y":31163.712277360213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"41ca621b-eedf-4f89-93bd-ad43edb52b10","savedPayload":{"position":{"x":43727.95100474325,"y":31163.712277360213},"targetPosition":{"x":43534.654105285146,"y":30905.972976263627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3d9d8ab1-b610-44f6-9006-1e5e88806410","savedPayload":{"position":{"x":43534.654105285146,"y":30905.972976263627},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c7c41387-fa73-447f-a6ad-401b2575c8c9","savedPayload":{"position":{"x":27742.116089518207,"y":30659.277263609907},"targetPosition":{"x":27169.91762845011,"y":30806.78914268873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta XMR/USDT","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"14a76a2b-8bfc-40e8-8112-2de4534219cb","savedPayload":{"position":{"x":44071.61797125626,"y":29269.179122287296},"targetPosition":{"x":44017.22604407985,"y":29586.166432086655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"be6572cf-1efe-4076-9307-89928932ce9f","savedPayload":{"position":{"x":44017.22604407985,"y":29586.166432086655},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"7bcadb98-4130-4ca4-a4a9-8e6ba155ef6a","savedPayload":{"position":{"x":45168.8488344655,"y":29458.147255078686},"targetPosition":{"x":44565.86589926591,"y":29680.585441818144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"d71c8bcf-f380-4b96-8fc4-d9749abc4c45","savedPayload":{"position":{"x":44565.86589926591,"y":29680.585441818144},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"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":"b2691a67-fa75-4c7f-b314-edaf999bb088","savedPayload":{"position":{"x":43962.84190684965,"y":29903.09502706654},"targetPosition":{"x":43551.90647643782,"y":30397.266512500442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61324113-a531-48dd-946a-7eb7f4f65eca","savedPayload":{"position":{"x":43551.90647643782,"y":30397.266512500442},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"fe4f88dd-dd64-450e-b1e8-5ef897ea7173","savedPayload":{"position":{"x":44848.06740265459,"y":30126.954299288456},"targetPosition":{"x":44617.64305938516,"y":30351.280902615003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"1226f4ea-61ff-44bd-8546-302df2b40757","savedPayload":{"position":{"x":44617.64305938516,"y":30351.280902615003},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"29e42435-d176-47db-9062-18ca54409d54","savedPayload":{"position":{"x":45624.60027321795,"y":30924.208529781736},"targetPosition":{"x":45005.977709353945,"y":30749.876937252106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"4196b08f-05ce-4704-84e1-86297a8be448","savedPayload":{"position":{"x":45005.977709353945,"y":30749.876937252106},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"15652946-eec6-415f-9acc-37b877b22da2","savedPayload":{"position":{"x":44387.27143213535,"y":30575.564915785017},"targetPosition":{"x":43764.266809147426,"y":30733.667438768847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7c1d8af5-40ae-499a-a68f-0f21901896ee","savedPayload":{"position":{"x":43764.266809147426,"y":30733.667438768847},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"7f5cc470-25c3-4710-b81c-d81fd57f7e80","savedPayload":{"position":{"x":44971.81020849867,"y":31276.620146946167},"targetPosition":{"x":44653.49004123155,"y":31322.55467880252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"7d1fbcc7-9f53-475f-ba50-6c10ddb83111","savedPayload":{"position":{"x":44653.49004123155,"y":31322.55467880252},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"61d19b22-8de5-4ee1-a506-33bad521ded9","savedPayload":{"position":{"x":45131.12724051729,"y":32377.93040356555},"targetPosition":{"x":44733.22183307022,"y":31873.22574960204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"d3423493-e353-4a4f-b6f8-f49ee93e06f5","savedPayload":{"position":{"x":44733.22183307022,"y":31873.22574960204},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"ce933ff2-1ca7-4a9a-b076-6da8bbbddef2","savedPayload":{"position":{"x":44335.23861007668,"y":31368.479242651025},"targetPosition":{"x":43738.24708451567,"y":31130.308446359704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a0674f62-871b-4691-8eb3-ccc36a53bf78","savedPayload":{"position":{"x":43738.24708451567,"y":31130.308446359704},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"3a8b262a-76f4-4189-bbd8-4b5338ea77f1","savedPayload":{"position":{"x":44395.607564219106,"y":32279.346270225502},"targetPosition":{"x":44111.06304717549,"y":32129.543698932317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"e921a693-c9f8-43b4-8979-3fb6d7b3d4e6","savedPayload":{"position":{"x":44111.06304717549,"y":32129.543698932317},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"42ac2388-88ce-482b-b484-3a2875884cbf","savedPayload":{"position":{"x":43876.85035087776,"y":33264.29116567567},"targetPosition":{"x":43851.71485258066,"y":32622.075786304355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"8bdbc7f3-ac56-44a5-ad4e-912f81915941","savedPayload":{"position":{"x":43851.71485258066,"y":32622.075786304355},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"bc92ab3b-8953-4288-af06-49c9ea252e19","savedPayload":{"position":{"x":43826.594538981204,"y":31979.768305805377},"targetPosition":{"x":43483.775300077,"y":31436.11470464454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"99ae7e6e-bfe6-490b-8cf7-d367a99786bb","savedPayload":{"position":{"x":43483.775300077,"y":31436.11470464454},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"5b453440-ee6d-4c7d-bfd3-520909f12236","savedPayload":{"position":{"x":27751.719963756594,"y":30755.576735351522},"targetPosition":{"x":27169.91762845011,"y":30806.78914268873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters DASH/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"c8a0985e-f5ee-410b-a0b6-3929bfe369b2","savedPayload":{"position":{"x":43548.31869375691,"y":28832.74871320079},"targetPosition":{"x":43468.23581599018,"y":29144.465623065378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"7f1095af-0eef-4e85-b9c7-a90cef828408","savedPayload":{"position":{"x":43468.23581599018,"y":29144.465623065378},"targetPosition":{"x":43388.21989927531,"y":29456.2064563822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"8380480f-439e-4df7-8135-200632eeea95","savedPayload":{"position":{"x":43388.21989927531,"y":29456.2064563822},"targetPosition":{"x":43308.31846626916,"y":29768.295924463717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0822a626-f1c4-4cce-aba9-7288ca409e9f","savedPayload":{"position":{"x":43308.31846626916,"y":29768.295924463717},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"64c4635b-1943-4bb2-94f3-93440e681dec","savedPayload":{"position":{"x":44044.56919550187,"y":29070.680669232206},"targetPosition":{"x":43907.75296865664,"y":29362.11317316699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"d4389fa4-3dee-4ba0-8177-8fd6e0517a3a","savedPayload":{"position":{"x":43907.75296865664,"y":29362.11317316699},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"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","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"b3c73af5-e089-40ba-b2ec-63cb94158b05","savedPayload":{"position":{"x":44562.98482395708,"y":29102.272964030177},"targetPosition":{"x":44167.05042758576,"y":29377.81676557684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"22432eb6-f17c-4612-8027-8eaaafe0819d","savedPayload":{"position":{"x":44167.05042758576,"y":29377.81676557684},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"e16016c1-04cd-4236-be4f-296a0fa36feb","savedPayload":{"position":{"x":43770.940957510276,"y":29653.49333725624},"targetPosition":{"x":43563.27921096938,"y":29899.761189375113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"814cc40d-64d9-4328-bf83-0dec099c799d","savedPayload":{"position":{"x":43563.27921096938,"y":29899.761189375113},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"d649f66b-3c75-4273-8f98-38cbd7b39a0c","savedPayload":{"position":{"x":44529.43831259792,"y":29591.160241515347},"targetPosition":{"x":44279.57761586809,"y":29794.164895509643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"7f09e9c4-5313-4286-a168-4eca46060fd1","savedPayload":{"position":{"x":44279.57761586809,"y":29794.164895509643},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"da3f54c1-d91e-4be9-9eca-ce575fdf85aa","savedPayload":{"position":{"x":44982.702734016326,"y":29844.505580086603},"targetPosition":{"x":44506.37336418851,"y":29920.77047196001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"0ac6266d-deba-413a-aa0a-75a3ab4f7fc5","savedPayload":{"position":{"x":44506.37336418851,"y":29920.77047196001},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"8e4a4f84-eb9d-4149-bb46-53a475cc49ac","savedPayload":{"position":{"x":44029.76414901768,"y":29997.129510062663},"targetPosition":{"x":43735.659869568226,"y":30128.724866806584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"b64bd141-a26b-45b9-9810-ed07d01c240a","savedPayload":{"position":{"x":43735.659869568226,"y":30128.724866806584},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"3984c059-11b0-4d9f-b171-c5738b521b22","savedPayload":{"position":{"x":44740.19992947904,"y":30269.709710790212},"targetPosition":{"x":44426.92346740986,"y":30344.087153351575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"d1effe71-6983-45cc-a6df-eed6a6a4df7f","savedPayload":{"position":{"x":44426.92346740986,"y":30344.087153351575},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"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":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"c7b46712-e4f8-4fde-a71a-ba76bbb20c0f","savedPayload":{"position":{"x":45038.495695074605,"y":30694.038844894512},"targetPosition":{"x":44576.2033062764,"y":30556.27191701111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"060de361-efaa-4558-a310-d4f97fb9391f","savedPayload":{"position":{"x":44576.2033062764,"y":30556.27191701111},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"68334230-a83a-47c2-8262-819dcec0e326","savedPayload":{"position":{"x":44113.681364955875,"y":30418.40946263666},"targetPosition":{"x":43791.5644814685,"y":30409.41652660318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7eda1cb3-ea02-4574-8257-6a4280db29ae","savedPayload":{"position":{"x":43791.5644814685,"y":30409.41652660318},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"0bad29f3-3ecb-4560-952a-87f65cab7e06","savedPayload":{"position":{"x":44634.8713858913,"y":30972.647789916467},"targetPosition":{"x":44320.40783090555,"y":30903.87226015812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"8bcdf9eb-83dc-42da-9684-9530e8ca1f4c","savedPayload":{"position":{"x":44320.40783090555,"y":30903.87226015812},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"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":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"5544267e-c8da-486f-8fd6-4e8cb262b913","savedPayload":{"position":{"x":44719.2935084921,"y":31484.844997094602},"targetPosition":{"x":44362.66897516384,"y":31160.069974503385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"c68256e9-da21-4d3b-80bb-98a6873e7550","savedPayload":{"position":{"x":44362.66897516384,"y":31160.069974503385},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"bffb75fc-70b1-41d0-b79f-7d94b695511e","savedPayload":{"position":{"x":44005.998383917504,"y":30835.000935669093},"targetPosition":{"x":43719.93790732384,"y":30686.895169007028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"b54d896e-ab4b-483b-ae4b-5d7865abbb0e","savedPayload":{"position":{"x":43719.93790732384,"y":30686.895169007028},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f25320d3-a70a-4774-b761-d51fb51513a1","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"926b1a5e-b11c-40e6-bf93-8c0844f891f1","savedPayload":{"position":{"x":43921.27648533482,"y":31421.11867904632},"targetPosition":{"x":43727.95100474325,"y":31163.712277360213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"6b0a102c-9caf-480b-9da3-9d38b008026f","savedPayload":{"position":{"x":43727.95100474325,"y":31163.712277360213},"targetPosition":{"x":43534.654105285146,"y":30905.972976263627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8266f43f-5f9e-4c98-aec6-52346e109e44","savedPayload":{"position":{"x":43534.654105285146,"y":30905.972976263627},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7a1aac8f-31f5-4e0d-9ec7-099985188aac","savedPayload":{"position":{"x":27764.10161228859,"y":30850.40152049657},"targetPosition":{"x":27169.91762845011,"y":30806.78914268873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta DASH/USDT","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"4f1a0030-4c46-4a64-8bf5-a37b4b3b0c8e","savedPayload":{"position":{"x":44071.61797125626,"y":29269.179122287296},"targetPosition":{"x":44017.22604407985,"y":29586.166432086655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"3a4c1381-dc99-4d05-9891-d09a4baaaa71","savedPayload":{"position":{"x":44017.22604407985,"y":29586.166432086655},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"b6aeca70-c12a-47be-b328-a9cc52bb189e","savedPayload":{"position":{"x":45168.8488344655,"y":29458.147255078686},"targetPosition":{"x":44565.86589926591,"y":29680.585441818144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"3a88b3aa-fa27-459e-b5d8-bb81e37c78ce","savedPayload":{"position":{"x":44565.86589926591,"y":29680.585441818144},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"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":"1b121eb3-8e23-4d29-9d5b-ce2e23de845b","savedPayload":{"position":{"x":43962.84190684965,"y":29903.09502706654},"targetPosition":{"x":43551.90647643782,"y":30397.266512500442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3178148e-80c7-4010-b223-cfa809e79085","savedPayload":{"position":{"x":43551.90647643782,"y":30397.266512500442},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ff39dc4f-bba7-4ece-8136-135bd5504f6f","savedPayload":{"position":{"x":44848.06740265459,"y":30126.954299288456},"targetPosition":{"x":44617.64305938516,"y":30351.280902615003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"74c04744-428f-4347-ba3d-29d525a2c0c3","savedPayload":{"position":{"x":44617.64305938516,"y":30351.280902615003},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"a00c99aa-9901-4761-a659-2c1fbb60abc7","savedPayload":{"position":{"x":45624.60027321795,"y":30924.208529781736},"targetPosition":{"x":45005.977709353945,"y":30749.876937252106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"a084e6d7-ddb0-4c19-b139-274cd328676e","savedPayload":{"position":{"x":45005.977709353945,"y":30749.876937252106},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"c6874749-4e07-418c-ac8a-50de0f96cb25","savedPayload":{"position":{"x":44387.27143213535,"y":30575.564915785017},"targetPosition":{"x":43764.266809147426,"y":30733.667438768847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9de1ed93-677b-4d6e-8bac-d13b13986730","savedPayload":{"position":{"x":43764.266809147426,"y":30733.667438768847},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"fe61949e-953e-4f89-9b01-0aaf66bf1f19","savedPayload":{"position":{"x":44971.81020849867,"y":31276.620146946167},"targetPosition":{"x":44653.49004123155,"y":31322.55467880252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"7a9e0818-0a24-4f92-90c2-18087551c0c9","savedPayload":{"position":{"x":44653.49004123155,"y":31322.55467880252},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"9aa61599-ed8c-4086-a5f5-8adaa0ba445b","savedPayload":{"position":{"x":45131.12724051729,"y":32377.93040356555},"targetPosition":{"x":44733.22183307022,"y":31873.22574960204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"97c04735-265e-4e47-8a59-0e0b7837dc59","savedPayload":{"position":{"x":44733.22183307022,"y":31873.22574960204},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"957dce97-8654-4c87-a4bf-83c120b446c8","savedPayload":{"position":{"x":44335.23861007668,"y":31368.479242651025},"targetPosition":{"x":43738.24708451567,"y":31130.308446359704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"46f1fa5c-4e60-4b14-b724-64c0349332b2","savedPayload":{"position":{"x":43738.24708451567,"y":31130.308446359704},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"aeef6a4c-94e1-4344-bb8a-9cef500e18f9","savedPayload":{"position":{"x":44395.607564219106,"y":32279.346270225502},"targetPosition":{"x":44111.06304717549,"y":32129.543698932317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"2db39c4c-936b-4300-9dd5-95bf01cfd914","savedPayload":{"position":{"x":44111.06304717549,"y":32129.543698932317},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"eef55164-6327-4bc4-a73f-f7de6b2ed02e","savedPayload":{"position":{"x":43876.85035087776,"y":33264.29116567567},"targetPosition":{"x":43851.71485258066,"y":32622.075786304355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"4cea4838-796e-4731-a645-7b8d47c24e86","savedPayload":{"position":{"x":43851.71485258066,"y":32622.075786304355},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"bb9da7f7-5f46-4056-9d3d-c5ee379f322c","savedPayload":{"position":{"x":43826.594538981204,"y":31979.768305805377},"targetPosition":{"x":43483.775300077,"y":31436.11470464454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"695bb907-5426-4093-b0d5-0c681b6e594b","savedPayload":{"position":{"x":43483.775300077,"y":31436.11470464454},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"d378ba10-4f3c-409c-91a5-a9166cea95fb","savedPayload":{"position":{"x":27741.39893732504,"y":30946.464816949672},"targetPosition":{"x":27169.91762845011,"y":30806.78914268873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters ADA/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"781dce12-0bd3-4c41-8ecf-8384fbadff18","savedPayload":{"position":{"x":43548.31869375691,"y":28832.74871320079},"targetPosition":{"x":43468.23581599018,"y":29144.465623065378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"d821ec00-d960-4c3b-b8d7-7b207feb17ac","savedPayload":{"position":{"x":43468.23581599018,"y":29144.465623065378},"targetPosition":{"x":43388.21989927531,"y":29456.2064563822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"06bb55e9-afe6-4743-9e52-a77c8b4e445b","savedPayload":{"position":{"x":43388.21989927531,"y":29456.2064563822},"targetPosition":{"x":43308.31846626916,"y":29768.295924463717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"860b3c0d-46a1-499d-b1c3-48f74c96284f","savedPayload":{"position":{"x":43308.31846626916,"y":29768.295924463717},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"4c03a0e4-8828-407b-8b67-edcabd22a04f","savedPayload":{"position":{"x":44044.56919550187,"y":29070.680669232206},"targetPosition":{"x":43907.75296865664,"y":29362.11317316699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"88fb11b7-6fb3-445a-b863-0a77ddfd01cd","savedPayload":{"position":{"x":43907.75296865664,"y":29362.11317316699},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"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","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"254a6e02-cc50-4567-9255-e44519679fd8","savedPayload":{"position":{"x":44562.98482395708,"y":29102.272964030177},"targetPosition":{"x":44167.05042758576,"y":29377.81676557684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"1ac61cc7-abfd-418d-8b4d-1943064d533c","savedPayload":{"position":{"x":44167.05042758576,"y":29377.81676557684},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"ae5abd54-3e77-48d1-a101-5667d2989ad2","savedPayload":{"position":{"x":43770.940957510276,"y":29653.49333725624},"targetPosition":{"x":43563.27921096938,"y":29899.761189375113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d500e5b9-bffa-4ae0-8559-b216d87cc25c","savedPayload":{"position":{"x":43563.27921096938,"y":29899.761189375113},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"98c1c0b3-8793-4c02-9f97-5ecf85c5c28e","savedPayload":{"position":{"x":44529.43831259792,"y":29591.160241515347},"targetPosition":{"x":44279.57761586809,"y":29794.164895509643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"a7a7d685-65d5-49e7-94a8-9def1a429cd4","savedPayload":{"position":{"x":44279.57761586809,"y":29794.164895509643},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"7f8ae9ac-9806-4941-b0a7-79ef4f8e2dba","savedPayload":{"position":{"x":44982.702734016326,"y":29844.505580086603},"targetPosition":{"x":44506.37336418851,"y":29920.77047196001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"e5f090b4-ee69-4694-bf14-6a2b0503ffd9","savedPayload":{"position":{"x":44506.37336418851,"y":29920.77047196001},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"c522ac69-71a2-4953-bdda-d2860e5f2048","savedPayload":{"position":{"x":44029.76414901768,"y":29997.129510062663},"targetPosition":{"x":43735.659869568226,"y":30128.724866806584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"5c2a39c2-ea83-4ad4-ad9a-54d63e749ba0","savedPayload":{"position":{"x":43735.659869568226,"y":30128.724866806584},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"9585e8a2-f360-4280-8cc7-114ece0e25cd","savedPayload":{"position":{"x":44740.19992947904,"y":30269.709710790212},"targetPosition":{"x":44426.92346740986,"y":30344.087153351575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"be1571d5-3194-40c7-b4f6-faf70d933dd1","savedPayload":{"position":{"x":44426.92346740986,"y":30344.087153351575},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"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":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"c9b3f0ec-166a-4472-a983-bb9f57a27a5f","savedPayload":{"position":{"x":45038.495695074605,"y":30694.038844894512},"targetPosition":{"x":44576.2033062764,"y":30556.27191701111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"1bec1127-f24a-44ef-9ec4-396dba0d5d26","savedPayload":{"position":{"x":44576.2033062764,"y":30556.27191701111},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"d4dc95b4-2529-4560-b7a5-4db9790d0b00","savedPayload":{"position":{"x":44113.681364955875,"y":30418.40946263666},"targetPosition":{"x":43791.5644814685,"y":30409.41652660318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b5f2abdd-3afa-4e2f-b0e4-48e9d3e646e6","savedPayload":{"position":{"x":43791.5644814685,"y":30409.41652660318},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ca83cf07-dd8f-4219-a1fd-a8a3e465b6cf","savedPayload":{"position":{"x":44634.8713858913,"y":30972.647789916467},"targetPosition":{"x":44320.40783090555,"y":30903.87226015812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"2647f4ed-6e0c-4191-acd6-bce594db3bd8","savedPayload":{"position":{"x":44320.40783090555,"y":30903.87226015812},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"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":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"2397c7f7-7fa8-467c-9090-9bea8dfad921","savedPayload":{"position":{"x":44719.2935084921,"y":31484.844997094602},"targetPosition":{"x":44362.66897516384,"y":31160.069974503385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"759b9f2e-2529-4939-9850-67f04877334a","savedPayload":{"position":{"x":44362.66897516384,"y":31160.069974503385},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"f8a9fa61-2f84-43e7-8662-b158321d0267","savedPayload":{"position":{"x":44005.998383917504,"y":30835.000935669093},"targetPosition":{"x":43719.93790732384,"y":30686.895169007028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"acc811dd-f022-4a2d-b00e-e88a307389eb","savedPayload":{"position":{"x":43719.93790732384,"y":30686.895169007028},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"71f12522-66b9-44e2-999b-c0bf626f3771","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"8928bc6a-d92d-4de2-a48e-eea1fb08d749","savedPayload":{"position":{"x":43921.27648533482,"y":31421.11867904632},"targetPosition":{"x":43727.95100474325,"y":31163.712277360213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"6f317d4c-6e42-4ca2-9bd0-1c56f312247e","savedPayload":{"position":{"x":43727.95100474325,"y":31163.712277360213},"targetPosition":{"x":43534.654105285146,"y":30905.972976263627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"95aa9d1c-e731-4940-bb5a-9c8e453d3029","savedPayload":{"position":{"x":43534.654105285146,"y":30905.972976263627},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"19c5216a-1a83-4a65-bbac-40ef523b2815","savedPayload":{"position":{"x":27714.8058407641,"y":31046.259317796532},"targetPosition":{"x":27169.91762845011,"y":30806.78914268873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta ADA/USDT","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"42b57b84-a05a-4a0e-8b20-a2616bb54617","savedPayload":{"position":{"x":44071.61797125626,"y":29269.179122287296},"targetPosition":{"x":44017.22604407985,"y":29586.166432086655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"c0886d1f-2854-4676-bc0f-dc255ad58ec5","savedPayload":{"position":{"x":44017.22604407985,"y":29586.166432086655},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ae45ca42-a423-4344-9eb7-199d96c875e9","savedPayload":{"position":{"x":45168.8488344655,"y":29458.147255078686},"targetPosition":{"x":44565.86589926591,"y":29680.585441818144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"80fbfc98-f1e1-4c8a-b4eb-56a83c25169e","savedPayload":{"position":{"x":44565.86589926591,"y":29680.585441818144},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"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":"6fb06467-4b41-4f24-ba36-25ea0430011b","savedPayload":{"position":{"x":43962.84190684965,"y":29903.09502706654},"targetPosition":{"x":43551.90647643782,"y":30397.266512500442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"28ab55e7-82e4-4988-8cf4-a8d3f3c5c9da","savedPayload":{"position":{"x":43551.90647643782,"y":30397.266512500442},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"5e6627a6-3691-4292-bed5-30eea1150d12","savedPayload":{"position":{"x":44848.06740265459,"y":30126.954299288456},"targetPosition":{"x":44617.64305938516,"y":30351.280902615003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"8f156abc-9611-481c-911c-1bd1f04a3ecd","savedPayload":{"position":{"x":44617.64305938516,"y":30351.280902615003},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"3e54e7b0-0e03-4eae-be83-451ef0683f4c","savedPayload":{"position":{"x":45624.60027321795,"y":30924.208529781736},"targetPosition":{"x":45005.977709353945,"y":30749.876937252106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"b01f0770-67ce-4ed1-959f-39e9a0b1e8bd","savedPayload":{"position":{"x":45005.977709353945,"y":30749.876937252106},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"28d19d19-4e16-476a-8401-757a30b4ad08","savedPayload":{"position":{"x":44387.27143213535,"y":30575.564915785017},"targetPosition":{"x":43764.266809147426,"y":30733.667438768847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c404411e-c8a7-4e60-b6c3-6b0a8c679f3a","savedPayload":{"position":{"x":43764.266809147426,"y":30733.667438768847},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"3cc26295-c60e-4299-828c-945a22063a89","savedPayload":{"position":{"x":44971.81020849867,"y":31276.620146946167},"targetPosition":{"x":44653.49004123155,"y":31322.55467880252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"18f65672-d3f9-4ed9-a8ad-00f36d0c5e21","savedPayload":{"position":{"x":44653.49004123155,"y":31322.55467880252},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ab174bd3-4d33-4d84-b92e-e4a5dd9f7536","savedPayload":{"position":{"x":45131.12724051729,"y":32377.93040356555},"targetPosition":{"x":44733.22183307022,"y":31873.22574960204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"b5802ce8-3695-49ec-9d76-0976ab300c78","savedPayload":{"position":{"x":44733.22183307022,"y":31873.22574960204},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"993b3d65-01cc-4ca3-8152-f26e4cdd3b41","savedPayload":{"position":{"x":44335.23861007668,"y":31368.479242651025},"targetPosition":{"x":43738.24708451567,"y":31130.308446359704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a6b1404d-be10-458a-aa8f-8557b9937833","savedPayload":{"position":{"x":43738.24708451567,"y":31130.308446359704},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"4f3a52bd-1f80-4df8-978a-beb222915b6e","savedPayload":{"position":{"x":44395.607564219106,"y":32279.346270225502},"targetPosition":{"x":44111.06304717549,"y":32129.543698932317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"945f12c7-c1ef-405a-983b-2417e5ae7867","savedPayload":{"position":{"x":44111.06304717549,"y":32129.543698932317},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"24a31ad7-8bb2-4881-99ae-829b91c9fae0","savedPayload":{"position":{"x":43876.85035087776,"y":33264.29116567567},"targetPosition":{"x":43851.71485258066,"y":32622.075786304355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"358a96e1-c107-4c7b-a5e2-a92d11fa13bc","savedPayload":{"position":{"x":43851.71485258066,"y":32622.075786304355},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"6828cc10-c6c0-4da3-b524-50a5fe2df641","savedPayload":{"position":{"x":43826.594538981204,"y":31979.768305805377},"targetPosition":{"x":43483.775300077,"y":31436.11470464454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"f96d6036-c577-498f-ae29-0f3f5920f10e","savedPayload":{"position":{"x":43483.775300077,"y":31436.11470464454},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"793f022f-b606-48f6-b960-6d5f14c8bc1c","savedPayload":{"position":{"x":27661.43478980934,"y":31124.89667612852},"targetPosition":{"x":27169.91762845011,"y":30806.78914268873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters TRX/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"6fe06082-64a5-4652-a57f-85f67e2d93f8","savedPayload":{"position":{"x":43548.31869375691,"y":28832.74871320079},"targetPosition":{"x":43468.23581599018,"y":29144.465623065378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"430f6e6b-1fed-4b06-88dd-2263e3de9416","savedPayload":{"position":{"x":43468.23581599018,"y":29144.465623065378},"targetPosition":{"x":43388.21989927531,"y":29456.2064563822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"dd6f4702-a253-48ec-9f3c-531d99cc861e","savedPayload":{"position":{"x":43388.21989927531,"y":29456.2064563822},"targetPosition":{"x":43308.31846626916,"y":29768.295924463717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"54821025-05d0-443a-95f8-8fdb22f30730","savedPayload":{"position":{"x":43308.31846626916,"y":29768.295924463717},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ffdb794b-318a-489d-b770-7be5ada4166d","savedPayload":{"position":{"x":44044.56919550187,"y":29070.680669232206},"targetPosition":{"x":43907.75296865664,"y":29362.11317316699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"c02f1e2d-1921-4fe1-bb18-281b0bca988f","savedPayload":{"position":{"x":43907.75296865664,"y":29362.11317316699},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"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","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"bbefa0c8-9a46-4aab-a101-a43256e1c45f","savedPayload":{"position":{"x":44562.98482395708,"y":29102.272964030177},"targetPosition":{"x":44167.05042758576,"y":29377.81676557684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"6ad7ca5b-7e14-4ed1-afe0-21a7732295cb","savedPayload":{"position":{"x":44167.05042758576,"y":29377.81676557684},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"8a60e0ab-64ee-4019-8fae-efaa052c02f4","savedPayload":{"position":{"x":43770.940957510276,"y":29653.49333725624},"targetPosition":{"x":43563.27921096938,"y":29899.761189375113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"359537ad-c371-4282-adf0-03e276a5c65d","savedPayload":{"position":{"x":43563.27921096938,"y":29899.761189375113},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"ff0ee7d2-100f-4a95-b149-55c2fb3b9b01","savedPayload":{"position":{"x":44529.43831259792,"y":29591.160241515347},"targetPosition":{"x":44279.57761586809,"y":29794.164895509643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"55005a52-8363-42e9-8a32-4e00febb31ed","savedPayload":{"position":{"x":44279.57761586809,"y":29794.164895509643},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"2742d759-f23f-4dbf-99f3-68fa1bd77757","savedPayload":{"position":{"x":44982.702734016326,"y":29844.505580086603},"targetPosition":{"x":44506.37336418851,"y":29920.77047196001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"b327769d-be0e-42e3-844d-1e1a18b91d45","savedPayload":{"position":{"x":44506.37336418851,"y":29920.77047196001},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"ba2fb26a-01d5-4e86-ad5d-a34f69a5c6cc","savedPayload":{"position":{"x":44029.76414901768,"y":29997.129510062663},"targetPosition":{"x":43735.659869568226,"y":30128.724866806584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"63a4df6c-ef5d-41ac-9840-8e6d9d7ab176","savedPayload":{"position":{"x":43735.659869568226,"y":30128.724866806584},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"c4e828ec-a1bf-4164-b745-bbe8232668c0","savedPayload":{"position":{"x":44740.19992947904,"y":30269.709710790212},"targetPosition":{"x":44426.92346740986,"y":30344.087153351575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"718b5c53-246a-4de1-8a0b-a5a1888a2687","savedPayload":{"position":{"x":44426.92346740986,"y":30344.087153351575},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"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":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"d758adac-4d0a-4087-a5ab-d9574fd0f879","savedPayload":{"position":{"x":45038.495695074605,"y":30694.038844894512},"targetPosition":{"x":44576.2033062764,"y":30556.27191701111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"ecddae1a-9dc0-48cf-b5db-fe522e7eec24","savedPayload":{"position":{"x":44576.2033062764,"y":30556.27191701111},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"3e45f740-a84d-4a46-8fda-ba12339dd7b8","savedPayload":{"position":{"x":44113.681364955875,"y":30418.40946263666},"targetPosition":{"x":43791.5644814685,"y":30409.41652660318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1bf82381-9e6c-4ed2-acfd-dc7c7e6cf58b","savedPayload":{"position":{"x":43791.5644814685,"y":30409.41652660318},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"03e513be-d68f-45d9-a646-6db1f0c3f99d","savedPayload":{"position":{"x":44634.8713858913,"y":30972.647789916467},"targetPosition":{"x":44320.40783090555,"y":30903.87226015812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"d09f4f12-7042-40ab-ade5-f7ab4df51a5d","savedPayload":{"position":{"x":44320.40783090555,"y":30903.87226015812},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"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":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"14365849-7d5e-4158-912c-2ec079a08f8e","savedPayload":{"position":{"x":44719.2935084921,"y":31484.844997094602},"targetPosition":{"x":44362.66897516384,"y":31160.069974503385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"a3aef523-e4e4-4ff5-b22a-2d0ad8e5bdb1","savedPayload":{"position":{"x":44362.66897516384,"y":31160.069974503385},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"81cd4ea7-d016-4a56-8286-396cafd45ade","savedPayload":{"position":{"x":44005.998383917504,"y":30835.000935669093},"targetPosition":{"x":43719.93790732384,"y":30686.895169007028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"93aa13b7-437a-4c57-82f6-744dbbf9110e","savedPayload":{"position":{"x":43719.93790732384,"y":30686.895169007028},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"79ef6ee1-d9f7-4e33-80a0-22fbef3302c3","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"4a51a02a-9bde-4c82-b052-7c4ee376b6d6","savedPayload":{"position":{"x":43921.27648533482,"y":31421.11867904632},"targetPosition":{"x":43727.95100474325,"y":31163.712277360213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"8d9013e5-b0a1-4821-bd31-082f5a29141d","savedPayload":{"position":{"x":43727.95100474325,"y":31163.712277360213},"targetPosition":{"x":43534.654105285146,"y":30905.972976263627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a9d0eb89-2b2c-48e5-b9b2-9b4b5fa0b3ad","savedPayload":{"position":{"x":43534.654105285146,"y":30905.972976263627},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e144b40d-ad4f-40ec-a1bc-2ed27f10d163","savedPayload":{"position":{"x":27608.244945459825,"y":31206.656587855046},"targetPosition":{"x":27169.91762845011,"y":30806.78914268873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta TRX/USDT","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"4f07ef5b-8051-4494-871e-1f54f8b7a95f","savedPayload":{"position":{"x":44071.61797125626,"y":29269.179122287296},"targetPosition":{"x":44017.22604407985,"y":29586.166432086655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"c9f54e92-7ec2-4477-90a5-b47010b31b20","savedPayload":{"position":{"x":44017.22604407985,"y":29586.166432086655},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"95329a1e-799a-4469-b8b0-ae1c776be107","savedPayload":{"position":{"x":45168.8488344655,"y":29458.147255078686},"targetPosition":{"x":44565.86589926591,"y":29680.585441818144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"113b4625-fff3-4606-b812-8961a4f62878","savedPayload":{"position":{"x":44565.86589926591,"y":29680.585441818144},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"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":"03d1853f-e8ff-415f-807a-2ba427cd5abf","savedPayload":{"position":{"x":43962.84190684965,"y":29903.09502706654},"targetPosition":{"x":43551.90647643782,"y":30397.266512500442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ed115faa-7a85-4e18-9569-9512321025f7","savedPayload":{"position":{"x":43551.90647643782,"y":30397.266512500442},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"bae12fb3-5c5c-401c-ad79-4c3c57f089cb","savedPayload":{"position":{"x":44848.06740265459,"y":30126.954299288456},"targetPosition":{"x":44617.64305938516,"y":30351.280902615003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"c10f952b-d5ad-418a-b6a8-8f1c9150e160","savedPayload":{"position":{"x":44617.64305938516,"y":30351.280902615003},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"54290336-a6dd-41eb-aba3-921b89655253","savedPayload":{"position":{"x":45624.60027321795,"y":30924.208529781736},"targetPosition":{"x":45005.977709353945,"y":30749.876937252106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"c2e08fd5-c547-46a4-8559-c7609974bea9","savedPayload":{"position":{"x":45005.977709353945,"y":30749.876937252106},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"00c1bd4e-1d6e-40e3-928e-b9e446fed1e1","savedPayload":{"position":{"x":44387.27143213535,"y":30575.564915785017},"targetPosition":{"x":43764.266809147426,"y":30733.667438768847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1913e0e5-3762-46d4-bdd9-cbd1131ed471","savedPayload":{"position":{"x":43764.266809147426,"y":30733.667438768847},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"7e88ea97-aba7-4ef0-be29-c809186e6854","savedPayload":{"position":{"x":44971.81020849867,"y":31276.620146946167},"targetPosition":{"x":44653.49004123155,"y":31322.55467880252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"1652db35-e258-4e2d-a013-9a804bb8deec","savedPayload":{"position":{"x":44653.49004123155,"y":31322.55467880252},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"1eff2207-5f7a-40dd-a450-30f4800120eb","savedPayload":{"position":{"x":45131.12724051729,"y":32377.93040356555},"targetPosition":{"x":44733.22183307022,"y":31873.22574960204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"576d21c4-7f95-4fe2-9c35-cba3fd844b10","savedPayload":{"position":{"x":44733.22183307022,"y":31873.22574960204},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"a0a4aab1-3b2a-4fc6-a258-bd6d5f8b6bed","savedPayload":{"position":{"x":44335.23861007668,"y":31368.479242651025},"targetPosition":{"x":43738.24708451567,"y":31130.308446359704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3c89bed2-d201-4f3e-9cc4-57e6b65ca5b2","savedPayload":{"position":{"x":43738.24708451567,"y":31130.308446359704},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"0732ca40-8b17-419a-8d33-3ff15c769256","savedPayload":{"position":{"x":44395.607564219106,"y":32279.346270225502},"targetPosition":{"x":44111.06304717549,"y":32129.543698932317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"01cb8881-85af-4b4f-a9b9-d9162e397d60","savedPayload":{"position":{"x":44111.06304717549,"y":32129.543698932317},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"5cb29e1b-4b2f-4f25-afb4-53b05f4d0b88","savedPayload":{"position":{"x":43876.85035087776,"y":33264.29116567567},"targetPosition":{"x":43851.71485258066,"y":32622.075786304355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"63d11329-532c-4696-b0da-68663f241052","savedPayload":{"position":{"x":43851.71485258066,"y":32622.075786304355},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"585bd6fa-5dae-482d-b8dd-c08991a0a1a2","savedPayload":{"position":{"x":43826.594538981204,"y":31979.768305805377},"targetPosition":{"x":43483.775300077,"y":31436.11470464454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"bbebf801-aec0-4476-bf77-34c7422f428b","savedPayload":{"position":{"x":43483.775300077,"y":31436.11470464454},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"0ef36517-8571-43ac-89f4-78482ce8afc5","savedPayload":{"position":{"x":27534.333277231217,"y":31268.710357146363},"targetPosition":{"x":27169.91762845011,"y":30806.78914268873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters XLM/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"a1cd3dc9-3a1b-4971-b8d3-76de650c3bfa","savedPayload":{"position":{"x":43548.31869375691,"y":28832.74871320079},"targetPosition":{"x":43468.23581599018,"y":29144.465623065378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"fe3de818-9048-4049-b54f-6708b6a82ff2","savedPayload":{"position":{"x":43468.23581599018,"y":29144.465623065378},"targetPosition":{"x":43388.21989927531,"y":29456.2064563822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"f289398e-a72f-41e8-9500-2e6a250bb7a7","savedPayload":{"position":{"x":43388.21989927531,"y":29456.2064563822},"targetPosition":{"x":43308.31846626916,"y":29768.295924463717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fb0ea15f-ec23-4ca1-a3c9-0f045ef7f437","savedPayload":{"position":{"x":43308.31846626916,"y":29768.295924463717},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"7dfc336d-f87d-45a9-a19b-e8440cbef170","savedPayload":{"position":{"x":44044.56919550187,"y":29070.680669232206},"targetPosition":{"x":43907.75296865664,"y":29362.11317316699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"776a7156-299a-428a-b95a-ba7ff61dc6ce","savedPayload":{"position":{"x":43907.75296865664,"y":29362.11317316699},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"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","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"fc06a6c2-c153-4988-ba66-af24386f0c32","savedPayload":{"position":{"x":44562.98482395708,"y":29102.272964030177},"targetPosition":{"x":44167.05042758576,"y":29377.81676557684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"b7924680-adcd-440c-8bd1-dbe3c1a1c790","savedPayload":{"position":{"x":44167.05042758576,"y":29377.81676557684},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"1d5bdcc8-a73f-4ba4-b60a-df98d13f32b0","savedPayload":{"position":{"x":43770.940957510276,"y":29653.49333725624},"targetPosition":{"x":43563.27921096938,"y":29899.761189375113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b024a114-e067-4c4c-8127-c4d08f51487c","savedPayload":{"position":{"x":43563.27921096938,"y":29899.761189375113},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"4de38cbc-4984-42c8-b7a8-c0a2716e713e","savedPayload":{"position":{"x":44529.43831259792,"y":29591.160241515347},"targetPosition":{"x":44279.57761586809,"y":29794.164895509643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"e8400614-380d-45d5-aabc-db426a0da48a","savedPayload":{"position":{"x":44279.57761586809,"y":29794.164895509643},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"d3adc7d5-f352-4467-9702-19fd768ef6b6","savedPayload":{"position":{"x":44982.702734016326,"y":29844.505580086603},"targetPosition":{"x":44506.37336418851,"y":29920.77047196001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"42860dbf-84f3-4146-8fff-c0ba3ab568a8","savedPayload":{"position":{"x":44506.37336418851,"y":29920.77047196001},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"dbe43da3-825f-4cd1-9de9-aa45eb3948db","savedPayload":{"position":{"x":44029.76414901768,"y":29997.129510062663},"targetPosition":{"x":43735.659869568226,"y":30128.724866806584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"f95795f6-560e-457b-9950-5e509ec0bc1e","savedPayload":{"position":{"x":43735.659869568226,"y":30128.724866806584},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"e639f9e4-29bc-490d-a140-6dcc602dcd29","savedPayload":{"position":{"x":44740.19992947904,"y":30269.709710790212},"targetPosition":{"x":44426.92346740986,"y":30344.087153351575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"8ae2b65e-15d5-43b5-a89b-072f3d37f650","savedPayload":{"position":{"x":44426.92346740986,"y":30344.087153351575},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"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":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"98f2f3db-c93d-4ba2-8ff4-5b7c4702458c","savedPayload":{"position":{"x":45038.495695074605,"y":30694.038844894512},"targetPosition":{"x":44576.2033062764,"y":30556.27191701111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"6c358bbd-8d24-47d6-9f98-83939d52d740","savedPayload":{"position":{"x":44576.2033062764,"y":30556.27191701111},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"6044ce04-7652-47c2-9ff3-d150be85e8dd","savedPayload":{"position":{"x":44113.681364955875,"y":30418.40946263666},"targetPosition":{"x":43791.5644814685,"y":30409.41652660318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4587dfdd-2ccf-47be-bb99-cc282a7de6c9","savedPayload":{"position":{"x":43791.5644814685,"y":30409.41652660318},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"fc066f71-448f-4123-9b0b-dac3c520abcd","savedPayload":{"position":{"x":44634.8713858913,"y":30972.647789916467},"targetPosition":{"x":44320.40783090555,"y":30903.87226015812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"fdd69d61-3473-45d2-97ea-daded7f802d2","savedPayload":{"position":{"x":44320.40783090555,"y":30903.87226015812},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"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":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"7feec355-c32d-474a-b823-28bc71f29ea8","savedPayload":{"position":{"x":44719.2935084921,"y":31484.844997094602},"targetPosition":{"x":44362.66897516384,"y":31160.069974503385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"2f145c94-460e-4600-9098-c8c35b585918","savedPayload":{"position":{"x":44362.66897516384,"y":31160.069974503385},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"9c16d496-fae2-41c9-8013-589240bf0389","savedPayload":{"position":{"x":44005.998383917504,"y":30835.000935669093},"targetPosition":{"x":43719.93790732384,"y":30686.895169007028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"c06de685-832b-452e-be7a-a6b679c2fb6f","savedPayload":{"position":{"x":43719.93790732384,"y":30686.895169007028},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"1b78eaa2-a777-4b50-98ff-b04e962bbdf7","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"33109e40-cd95-4b98-9950-68f53ef7238e","savedPayload":{"position":{"x":43921.27648533482,"y":31421.11867904632},"targetPosition":{"x":43727.95100474325,"y":31163.712277360213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"70b79227-18f5-4487-887c-eec5760b246c","savedPayload":{"position":{"x":43727.95100474325,"y":31163.712277360213},"targetPosition":{"x":43534.654105285146,"y":30905.972976263627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8cb053d8-6088-4aad-a5f5-61c329c4f3e6","savedPayload":{"position":{"x":43534.654105285146,"y":30905.972976263627},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2155ea54-7a72-4677-9e81-deef5c57ec51","savedPayload":{"position":{"x":27454.6100007203,"y":31324.54624297564},"targetPosition":{"x":27169.91762845011,"y":30806.78914268873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta XLM/USDT","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"5cbf107f-33c9-4a20-ad2b-4c1d1acc1244","savedPayload":{"position":{"x":44071.61797125626,"y":29269.179122287296},"targetPosition":{"x":44017.22604407985,"y":29586.166432086655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"b8b9c648-5c68-4204-888c-1a02ba06f77a","savedPayload":{"position":{"x":44017.22604407985,"y":29586.166432086655},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"8885c78d-22ca-4402-948f-a72b8ea6fb9a","savedPayload":{"position":{"x":45168.8488344655,"y":29458.147255078686},"targetPosition":{"x":44565.86589926591,"y":29680.585441818144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"f2028d7c-e18e-4453-adc3-9f4c0f60f90f","savedPayload":{"position":{"x":44565.86589926591,"y":29680.585441818144},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"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":"9688fda3-2e56-40ca-a608-810cb4fc65b1","savedPayload":{"position":{"x":43962.84190684965,"y":29903.09502706654},"targetPosition":{"x":43551.90647643782,"y":30397.266512500442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a19a851b-7467-4af2-8de3-99058f7ef68d","savedPayload":{"position":{"x":43551.90647643782,"y":30397.266512500442},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"b44d9488-701a-4bcd-a540-f89d68bb48d6","savedPayload":{"position":{"x":44848.06740265459,"y":30126.954299288456},"targetPosition":{"x":44617.64305938516,"y":30351.280902615003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"25d94abc-a868-41ec-ba5e-8bb689fd532c","savedPayload":{"position":{"x":44617.64305938516,"y":30351.280902615003},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"3adcbae6-de7e-4a5d-a69d-418476cfa97f","savedPayload":{"position":{"x":45624.60027321795,"y":30924.208529781736},"targetPosition":{"x":45005.977709353945,"y":30749.876937252106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"c74bcf65-9ae6-4ba2-914b-bb82a18a9bd1","savedPayload":{"position":{"x":45005.977709353945,"y":30749.876937252106},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"9fa0faee-d092-48fb-a012-afd06a0067a5","savedPayload":{"position":{"x":44387.27143213535,"y":30575.564915785017},"targetPosition":{"x":43764.266809147426,"y":30733.667438768847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fe8238b6-9234-406c-bc1e-bcf85af97adc","savedPayload":{"position":{"x":43764.266809147426,"y":30733.667438768847},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"1f54c7d1-7024-44e4-8cf7-e0796b8afa27","savedPayload":{"position":{"x":44971.81020849867,"y":31276.620146946167},"targetPosition":{"x":44653.49004123155,"y":31322.55467880252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"eb7bfa83-7561-48fd-b71b-02a2ef3d8e3d","savedPayload":{"position":{"x":44653.49004123155,"y":31322.55467880252},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"29883f5c-f04f-4af4-8c6f-61ff8929830d","savedPayload":{"position":{"x":45131.12724051729,"y":32377.93040356555},"targetPosition":{"x":44733.22183307022,"y":31873.22574960204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"0eff1e54-bb6d-4f12-9330-53225435517e","savedPayload":{"position":{"x":44733.22183307022,"y":31873.22574960204},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"059ead72-4240-4474-b8ee-08f8b6e688bd","savedPayload":{"position":{"x":44335.23861007668,"y":31368.479242651025},"targetPosition":{"x":43738.24708451567,"y":31130.308446359704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"24fa298e-6367-471c-b722-51fcef12d9e0","savedPayload":{"position":{"x":43738.24708451567,"y":31130.308446359704},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"c5da0688-1763-47aa-a186-de0de8bba7e0","savedPayload":{"position":{"x":44395.607564219106,"y":32279.346270225502},"targetPosition":{"x":44111.06304717549,"y":32129.543698932317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"9919d382-7188-4504-b326-d7cedda0f5e7","savedPayload":{"position":{"x":44111.06304717549,"y":32129.543698932317},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"fc18b0ff-bbc1-4dea-81b5-be984bfaa6d5","savedPayload":{"position":{"x":43876.85035087776,"y":33264.29116567567},"targetPosition":{"x":43851.71485258066,"y":32622.075786304355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"ce4b92ed-720c-46cf-8fd1-b19d5fa6f979","savedPayload":{"position":{"x":43851.71485258066,"y":32622.075786304355},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"fb403674-3b2f-4d60-9fd4-c27f7f163dc8","savedPayload":{"position":{"x":43826.594538981204,"y":31979.768305805377},"targetPosition":{"x":43483.775300077,"y":31436.11470464454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"1270be8c-b57a-43fc-95c0-666be607259d","savedPayload":{"position":{"x":43483.775300077,"y":31436.11470464454},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"601c408a-69ec-4c71-b518-719187ab55de","savedPayload":{"position":{"x":27365.423534895155,"y":31362.806502629915},"targetPosition":{"x":27169.91762845011,"y":30806.78914268873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters EOS/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"8c926c96-edc5-4b4a-aa3a-6fcfdacaff17","savedPayload":{"position":{"x":43548.31869375691,"y":28832.74871320079},"targetPosition":{"x":43468.23581599018,"y":29144.465623065378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"3e65a35a-8b31-4ecb-92e0-a733a848ce64","savedPayload":{"position":{"x":43468.23581599018,"y":29144.465623065378},"targetPosition":{"x":43388.21989927531,"y":29456.2064563822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"b003f51d-1e63-478d-bcd1-f27492a89086","savedPayload":{"position":{"x":43388.21989927531,"y":29456.2064563822},"targetPosition":{"x":43308.31846626916,"y":29768.295924463717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c1e6e85d-4a07-4547-bb74-47773ac3d822","savedPayload":{"position":{"x":43308.31846626916,"y":29768.295924463717},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"63ade261-b508-440a-86a8-64e47100edbc","savedPayload":{"position":{"x":44044.56919550187,"y":29070.680669232206},"targetPosition":{"x":43907.75296865664,"y":29362.11317316699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"f18ee600-d64b-4fe6-9643-e17e86ad1887","savedPayload":{"position":{"x":43907.75296865664,"y":29362.11317316699},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"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","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"025e4931-20f1-458e-9acd-f374ba0f8706","savedPayload":{"position":{"x":44562.98482395708,"y":29102.272964030177},"targetPosition":{"x":44167.05042758576,"y":29377.81676557684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"9fc5c6cc-d532-4881-aaa3-af001e49f8c7","savedPayload":{"position":{"x":44167.05042758576,"y":29377.81676557684},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"905b1d87-ffae-4679-b67d-020c90b8949a","savedPayload":{"position":{"x":43770.940957510276,"y":29653.49333725624},"targetPosition":{"x":43563.27921096938,"y":29899.761189375113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61614ecd-8f7c-46e6-8a79-13104d0a9d8c","savedPayload":{"position":{"x":43563.27921096938,"y":29899.761189375113},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"468eae85-9f90-4cb7-b3f1-16605cc1882b","savedPayload":{"position":{"x":44529.43831259792,"y":29591.160241515347},"targetPosition":{"x":44279.57761586809,"y":29794.164895509643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"9ab342d1-3eda-4e3f-9c3b-79c571141f67","savedPayload":{"position":{"x":44279.57761586809,"y":29794.164895509643},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"26539ac5-a4d4-4d27-b668-3fe15f754e16","savedPayload":{"position":{"x":44982.702734016326,"y":29844.505580086603},"targetPosition":{"x":44506.37336418851,"y":29920.77047196001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"d43c86ad-20f9-47ca-a7dd-77a98f6201a8","savedPayload":{"position":{"x":44506.37336418851,"y":29920.77047196001},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"24acddea-58e9-4c94-aea1-657b00b83f99","savedPayload":{"position":{"x":44029.76414901768,"y":29997.129510062663},"targetPosition":{"x":43735.659869568226,"y":30128.724866806584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"375dd77e-f96f-49a7-afb4-f54f87ee915c","savedPayload":{"position":{"x":43735.659869568226,"y":30128.724866806584},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"39cc16e4-caa7-49bb-8ff7-a8b0d1d94365","savedPayload":{"position":{"x":44740.19992947904,"y":30269.709710790212},"targetPosition":{"x":44426.92346740986,"y":30344.087153351575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"eb650c65-2d09-4d2b-b1fe-5420fbe0c652","savedPayload":{"position":{"x":44426.92346740986,"y":30344.087153351575},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"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":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"91302116-a811-4d28-bfc0-b36e33c3de75","savedPayload":{"position":{"x":45038.495695074605,"y":30694.038844894512},"targetPosition":{"x":44576.2033062764,"y":30556.27191701111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"29248411-676a-4da3-9561-7ca79ee2eef3","savedPayload":{"position":{"x":44576.2033062764,"y":30556.27191701111},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"535e018e-5640-4339-b2a9-95f53b1d5253","savedPayload":{"position":{"x":44113.681364955875,"y":30418.40946263666},"targetPosition":{"x":43791.5644814685,"y":30409.41652660318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a67c0b39-0fce-4b08-b6e2-8f58bc26f67f","savedPayload":{"position":{"x":43791.5644814685,"y":30409.41652660318},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"93cd6699-6cdc-4bdc-ae6e-ca311e5806a3","savedPayload":{"position":{"x":44634.8713858913,"y":30972.647789916467},"targetPosition":{"x":44320.40783090555,"y":30903.87226015812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"91d7931b-42d2-40f7-93aa-b794388ef60a","savedPayload":{"position":{"x":44320.40783090555,"y":30903.87226015812},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"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":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"42222c68-4132-4c78-93b1-a89fcce8f47b","savedPayload":{"position":{"x":44719.2935084921,"y":31484.844997094602},"targetPosition":{"x":44362.66897516384,"y":31160.069974503385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"7a54b571-f0e0-4951-8590-6c5e26591351","savedPayload":{"position":{"x":44362.66897516384,"y":31160.069974503385},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"8ce639a5-e359-4eac-837c-334a39224c21","savedPayload":{"position":{"x":44005.998383917504,"y":30835.000935669093},"targetPosition":{"x":43719.93790732384,"y":30686.895169007028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"8940c00c-e1c9-4e3f-a84a-4a0477bb5d33","savedPayload":{"position":{"x":43719.93790732384,"y":30686.895169007028},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"4f9092ab-b2c3-46db-9d62-fc01d843bcab","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"b90fde45-990a-41fe-a653-6faf9e89ed1e","savedPayload":{"position":{"x":43921.27648533482,"y":31421.11867904632},"targetPosition":{"x":43727.95100474325,"y":31163.712277360213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"74a669e0-f358-45d3-97ac-4dba0d2df374","savedPayload":{"position":{"x":43727.95100474325,"y":31163.712277360213},"targetPosition":{"x":43534.654105285146,"y":30905.972976263627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3e23d46d-c0dd-4784-b1a3-fcc3c3ce2987","savedPayload":{"position":{"x":43534.654105285146,"y":30905.972976263627},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6b31d23f-745c-4400-9550-2260fd7d08e1","savedPayload":{"position":{"x":27269.91427207036,"y":31395.36430352579},"targetPosition":{"x":27169.91762845011,"y":30806.78914268873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta EOS/USDT","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"7c1917a9-377f-4374-8f39-b2ccea53922c","savedPayload":{"position":{"x":44071.61797125626,"y":29269.179122287296},"targetPosition":{"x":44017.22604407985,"y":29586.166432086655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"edf098ab-3bf3-45e3-8547-0aed29eb8f39","savedPayload":{"position":{"x":44017.22604407985,"y":29586.166432086655},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"b762b403-f015-4bb6-b84e-5f4779ca2d89","savedPayload":{"position":{"x":45168.8488344655,"y":29458.147255078686},"targetPosition":{"x":44565.86589926591,"y":29680.585441818144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"a0db3b72-bee5-4a84-93a4-3aa63a8e0b25","savedPayload":{"position":{"x":44565.86589926591,"y":29680.585441818144},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"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":"d874103c-0597-464a-82fa-712ac00cd845","savedPayload":{"position":{"x":43962.84190684965,"y":29903.09502706654},"targetPosition":{"x":43551.90647643782,"y":30397.266512500442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ff59dcb-a730-460c-9775-b53deffbab10","savedPayload":{"position":{"x":43551.90647643782,"y":30397.266512500442},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"04ee06be-fa80-44a1-ba94-a0222d741d5f","savedPayload":{"position":{"x":44848.06740265459,"y":30126.954299288456},"targetPosition":{"x":44617.64305938516,"y":30351.280902615003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"f893ea84-ca2d-4879-8d75-d1fcc5ffcc97","savedPayload":{"position":{"x":44617.64305938516,"y":30351.280902615003},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"e42f375e-d048-48e6-864d-342c829a21f9","savedPayload":{"position":{"x":45624.60027321795,"y":30924.208529781736},"targetPosition":{"x":45005.977709353945,"y":30749.876937252106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"e70fb6d6-efdb-4465-96c3-290afcf53a66","savedPayload":{"position":{"x":45005.977709353945,"y":30749.876937252106},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"931ac0a3-94b6-4d74-a6e2-37c1b0ee2e24","savedPayload":{"position":{"x":44387.27143213535,"y":30575.564915785017},"targetPosition":{"x":43764.266809147426,"y":30733.667438768847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"20cde79a-2d7c-403a-b061-1cfd712ee1fd","savedPayload":{"position":{"x":43764.266809147426,"y":30733.667438768847},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"161da469-4f5f-48b7-b564-0d93ad24080d","savedPayload":{"position":{"x":44971.81020849867,"y":31276.620146946167},"targetPosition":{"x":44653.49004123155,"y":31322.55467880252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"30aeb300-e1e9-4b03-afc3-dc00216c5be2","savedPayload":{"position":{"x":44653.49004123155,"y":31322.55467880252},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"cb4ae3dd-1620-4e0c-ba43-2c50a2c99d78","savedPayload":{"position":{"x":45131.12724051729,"y":32377.93040356555},"targetPosition":{"x":44733.22183307022,"y":31873.22574960204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"174fd455-b980-4aeb-b433-f20c6cc5ad2b","savedPayload":{"position":{"x":44733.22183307022,"y":31873.22574960204},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"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":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"8424cfb5-66b9-4810-8b63-3b80eef0813d","savedPayload":{"position":{"x":44335.23861007668,"y":31368.479242651025},"targetPosition":{"x":43738.24708451567,"y":31130.308446359704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"291393ac-326c-40e2-94f0-2478349b75f4","savedPayload":{"position":{"x":43738.24708451567,"y":31130.308446359704},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"c2ff5e4e-9622-486a-bf73-2655dd509698","savedPayload":{"position":{"x":44395.607564219106,"y":32279.346270225502},"targetPosition":{"x":44111.06304717549,"y":32129.543698932317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"1a8afd72-a4fb-42e4-a575-c2e1ff8575ff","savedPayload":{"position":{"x":44111.06304717549,"y":32129.543698932317},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"7a6a9157-37e3-4e33-90cc-d5f413ec74b1","savedPayload":{"position":{"x":43876.85035087776,"y":33264.29116567567},"targetPosition":{"x":43851.71485258066,"y":32622.075786304355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"bd9ac284-744c-4f7f-ad40-131b6ccc6bff","savedPayload":{"position":{"x":43851.71485258066,"y":32622.075786304355},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"ce3e9ddd-ddd9-4edc-af39-917894099d1e","savedPayload":{"position":{"x":43826.594538981204,"y":31979.768305805377},"targetPosition":{"x":43483.775300077,"y":31436.11470464454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"c0a0b236-e1a4-4174-b69b-6d875571c52a","savedPayload":{"position":{"x":43483.775300077,"y":31436.11470464454},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"17d29635-5871-4706-afac-87fc7c88122b","savedPayload":{"position":{"x":27146.170450188263,"y":31368.16544036462},"targetPosition":{"x":27169.91762845011,"y":30806.78914268873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}}],"id":"2b1dd31b-5b78-4934-83de-35b83f4d9b05","savedPayload":{"position":{"x":27171.219317954525,"y":30806.621671832672},"targetPosition":{"x":26594.57388499951,"y":30715.633401753315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Bittrex","id":"a9a5c7bc-797b-4cd1-b24e-a627cd396d3e"}}}],"id":"7449a608-32ca-4285-94d1-c96791e2817f","savedPayload":{"position":{"x":26594.57388499951,"y":30715.633401753315},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":true}}},"testingEnvironment":{"type":"Testing Environment","name":"New Testing Environment","exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Paper & Backtesting Sessions BTC/USDT","tasks":[{"type":"Task","name":"Paper Trading WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Paper Trading Session","name":"Paper WHB","code":"{\n\"folderName\": \"Paper-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"67306688-5813-49d0-ab21-492ebf19cdb3","savedPayload":{"position":{"x":29155.706455501968,"y":30897.594901783752},"targetPosition":{"x":29440.26543731939,"y":30961.05379473673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"4af93047-8c85-4e75-9c16-15d5d029f4da","savedPayload":{"position":{"x":29312.40711133251,"y":30698.304502181294},"targetPosition":{"x":29440.26543731939,"y":30961.05379473673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"acb45dfc-c3d2-48fe-be81-d3bfb3ef50e9","savedPayload":{"position":{"x":29565.814395529123,"y":30696.485105978336},"targetPosition":{"x":29440.26543731939,"y":30961.05379473673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"2631678e-8285-4c4b-a6b1-4e437a5ade29","savedPayload":{"position":{"x":29725.532003727512,"y":30893.64185803809},"targetPosition":{"x":29440.26543731939,"y":30961.05379473673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"87f75d53-29bf-4ec6-9705-0b4b94401aec","savedPayload":{"position":{"x":29671.065346634747,"y":31140.982840297416},"targetPosition":{"x":29440.26543731939,"y":30961.05379473673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"1602c6ce-32f4-4422-96af-ade68d6b1b4b","savedPayload":{"position":{"x":29443.49087042641,"y":31252.558686025965},"targetPosition":{"x":29440.26543731939,"y":30961.05379473673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ffac402a-409a-44be-b803-5c5ab85c85d6","savedPayload":{"position":{"x":29440.26543731939,"y":30961.05379473673},"targetPosition":{"x":29213.933139280456,"y":31144.83968643594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1d6b5b33-21b7-4331-998c-bf9225c76bd6","savedPayload":{"position":{"x":29213.933139280456,"y":31144.83968643594},"targetPosition":{"x":28986.938070753484,"y":31328.60303731375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"528f463f-22d8-4163-b588-9cb75ed6dca1","savedPayload":{"position":{"x":29259.776314729814,"y":31432.903851587842},"targetPosition":{"x":28986.938070753484,"y":31328.60303731375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"015a215a-e0d7-4439-8e00-7ddd54904399","savedPayload":{"position":{"x":28986.938070753484,"y":31328.60303731375},"targetPosition":{"x":28699.711826997533,"y":31374.132142429175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"363a1590-f1f4-4b1f-b4be-74fb52003b40","savedPayload":{"position":{"x":28699.711826997533,"y":31374.132142429175},"targetPosition":{"x":28331.995869973118,"y":31432.54720432549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"4c2e2bc2-8f45-4b5a-bbe1-03524a5008b2","savedPayload":{"position":{"x":28332.1294187749,"y":31431.968680835318},"targetPosition":{"x":27755.538260703906,"y":31523.719116859254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Backtesting WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Backtesting Session","name":"Back WHB","code":"{\n\"folderName\": \"Back-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5\n}","id":"de480c9e-998c-4166-83f0-59cdf6cab8d0","savedPayload":{"position":{"x":29206.07973421646,"y":31653.9745595817},"targetPosition":{"x":29421.33948151498,"y":31851.28480899127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{}","id":"3c937303-5730-4283-b397-77584f78a21a","savedPayload":{"position":{"x":29441.1439882462,"y":31559.667593554594},"targetPosition":{"x":29421.33948151498,"y":31851.28480899127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"initialDatetime\": \"2019-01-01\",\n\"finalDatetime\": \"2020-12-31\"\n}","id":"78fecedf-4bc4-4a7f-8e3c-f48211b11992","savedPayload":{"position":{"x":29661.751500529972,"y":31684.89413580869},"targetPosition":{"x":29421.33948151498,"y":31851.28480899127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"a8c686f5-cd39-4ca0-9403-d4036e82192c","savedPayload":{"position":{"x":29701.442126839185,"y":31935.21183277744},"targetPosition":{"x":29421.33948151498,"y":31851.28480899127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"f47ea749-1ca7-4dfa-bdea-21478c720db9","savedPayload":{"position":{"x":29530.347601960097,"y":32122.525715157295},"targetPosition":{"x":29421.33948151498,"y":31851.28480899127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"96326bf6-02f9-4d9a-9367-5851992edefa","savedPayload":{"position":{"x":29277.745382104185,"y":32105.574823542345},"targetPosition":{"x":29421.33948151498,"y":31851.28480899127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"35ae8210-fa20-455f-9f1e-e52f10c3f8a9","savedPayload":{"position":{"x":29421.33948151498,"y":31851.28480899127},"targetPosition":{"x":29132.8884659157,"y":31896.839230422305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"44357648-e96f-4e38-b23d-192f2a73107a","savedPayload":{"position":{"x":29132.8884659157,"y":31896.839230422305},"targetPosition":{"x":28844.950725238374,"y":31942.334240884997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"137393be-6543-4bbd-807d-6575f2aa0e46","savedPayload":{"position":{"x":29028.331719699643,"y":32169.552497168093},"targetPosition":{"x":28844.950725238374,"y":31942.334240884997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"2acdb24e-60f0-4281-a218-0ddb7795dda1","savedPayload":{"position":{"x":28844.950725238374,"y":31942.334240884997},"targetPosition":{"x":28572.818599530237,"y":31837.75114972151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"a8b280aa-35f6-4336-8e37-9cfb7b9ea00e","savedPayload":{"position":{"x":28572.818599530237,"y":31837.75114972151},"targetPosition":{"x":28300.303072060684,"y":31733.104611550913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f063f4af-f3d4-4528-993e-d9a4c8293a27","savedPayload":{"position":{"x":28300.303072060684,"y":31733.104611550913},"targetPosition":{"x":27755.538260703906,"y":31523.719116859254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"57542a24-2cbc-47ce-9018-ec02b9aca954","savedPayload":{"position":{"x":27755.538260703906,"y":31523.719116859254},"targetPosition":{"x":27175.110830966696,"y":31462.8619469621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"df80f84d-09a8-46db-a633-df1c0c94eab3","savedPayload":{"position":{"x":27175.110830966696,"y":31462.8619469621},"targetPosition":{"x":26594.59491780863,"y":31401.96675335554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}},{"type":"Exchange Tasks","name":"Bitfinex","taskManagers":[{"type":"Task Manager","name":"Paper & Backtesting Sessions BTC/USDT","tasks":[{"type":"Task","name":"Paper Trading WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Paper Trading Session","name":"Paper WHB","code":"{\n\"folderName\": \"Paper-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"095de574-0f88-47ff-b63f-a04df57e24df","savedPayload":{"position":{"x":28938.075651666586,"y":31908.330655438986},"targetPosition":{"x":29197.8501110865,"y":32042.95237281806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"dfee6cb8-deff-4d50-a62f-1060e540069d"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"e46301f9-510c-4073-8ad8-012b35396968","savedPayload":{"position":{"x":29141.105348002326,"y":31756.067369856304},"targetPosition":{"x":29197.8501110865,"y":32042.95237281806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"c427816f-d936-4bf9-bc61-a3163642fe13"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"cb17cc3a-64c3-428d-842b-aabb68b94476","savedPayload":{"position":{"x":29386.30677442522,"y":31819.9624299733},"targetPosition":{"x":29197.8501110865,"y":32042.95237281806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"981681f8-efb2-42e7-a264-1507d15bff37","savedPayload":{"position":{"x":29489.507668154445,"y":32051.472736761836},"targetPosition":{"x":29197.8501110865,"y":32042.95237281806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"d3efbaaa-07a3-4d4d-8aff-de73477d5b48","savedPayload":{"position":{"x":29372.714781636343,"y":32276.700847107895},"targetPosition":{"x":29197.8501110865,"y":32042.95237281806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"027101d1-9b52-4247-a2a8-f84a7c969a1b","savedPayload":{"position":{"x":29124.243448843317,"y":32325.74167510858},"targetPosition":{"x":29197.8501110865,"y":32042.95237281806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"680add4c-5536-41e6-8ccf-26a4dd10518f","savedPayload":{"position":{"x":29197.8501110865,"y":32042.95237281806},"targetPosition":{"x":28930.751407545024,"y":32161.254105239204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9b06d8ea-606c-4935-a9de-cfaebdb0f13e","savedPayload":{"position":{"x":28930.751407545024,"y":32161.254105239204},"targetPosition":{"x":28665.269915223453,"y":32279.64231848842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"908a129d-ed01-4af0-8efe-6c2ddf706d29","savedPayload":{"position":{"x":28900.6455604142,"y":32451.84199164744},"targetPosition":{"x":28665.269915223453,"y":32279.64231848842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"f060d8ac-1b4c-4fde-8b1d-68d50c7564e4","savedPayload":{"position":{"x":28665.269915223453,"y":32279.64231848842},"targetPosition":{"x":28375.083767592016,"y":32248.728525499242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"8732c480-94da-4b56-a255-5279aa03410d","savedPayload":{"position":{"x":28375.083767592016,"y":32248.728525499242},"targetPosition":{"x":27957.475267405713,"y":32204.92403413129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"ea37d404-1566-4399-926b-76b1657341f6","savedPayload":{"position":{"x":27436.758647474056,"y":32922.14291418631},"targetPosition":{"x":27069.12456649723,"y":32468.535886073892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Backtesting WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Backtesting Session","name":"Back WHB","code":"{\n\"folderName\": \"Back-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5\n}","id":"861945b7-0914-4250-bec9-e3ebc38b412a","savedPayload":{"position":{"x":27681.10005192987,"y":33790.16616196117},"targetPosition":{"x":27618.05982677789,"y":34075.260119754246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"dfee6cb8-deff-4d50-a62f-1060e540069d"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{}","id":"3e18677f-8cf6-471a-b7fc-e905ab38f345","savedPayload":{"position":{"x":27880.428663413317,"y":33946.77638203821},"targetPosition":{"x":27618.05982677789,"y":34075.260119754246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"c427816f-d936-4bf9-bc61-a3163642fe13"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"initialDatetime\": \"2019-01-01\",\n\"finalDatetime\": \"2020-12-31\"\n}","id":"65b2ffe1-a420-4663-a33c-98c731d95ad0","savedPayload":{"position":{"x":27882.273623095065,"y":34200.1492100971},"targetPosition":{"x":27618.05982677789,"y":34075.260119754246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"af41e403-e40d-4f2b-8b11-67c1c23d440e","savedPayload":{"position":{"x":27685.166063831817,"y":34359.75124055351},"targetPosition":{"x":27618.05982677789,"y":34075.260119754246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"138d74e0-4423-4b7e-949d-840f7a69a5a0","savedPayload":{"position":{"x":27437.695335865024,"y":34305.22589395314},"targetPosition":{"x":27618.05982677789,"y":34075.260119754246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"e4298b02-5069-465b-b0f0-1355707ca2c8","savedPayload":{"position":{"x":27325.960417125156,"y":34077.743376384504},"targetPosition":{"x":27618.05982677789,"y":34075.260119754246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1c3e16d9-36e7-4e2e-b0e0-0924774c8a86","savedPayload":{"position":{"x":27618.05982677789,"y":34075.260119754246},"targetPosition":{"x":27434.383649727864,"y":33848.34072631319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7de73196-0e44-4e7f-b86e-bc5d89cd8c18","savedPayload":{"position":{"x":27434.383649727864,"y":33848.34072631319},"targetPosition":{"x":27250.93806411558,"y":33621.70814367823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"d98f3aea-ba61-4a15-ab38-e86516aa1d4b","savedPayload":{"position":{"x":27145.964540595047,"y":33894.2204821977},"targetPosition":{"x":27250.93806411558,"y":33621.70814367823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"146c7e2b-1b6a-46f2-ab60-f5e611b9ddba","savedPayload":{"position":{"x":27250.93806411558,"y":33621.70814367823},"targetPosition":{"x":27205.588338424695,"y":33333.606882619264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"9ae64361-4dd6-4b90-8b80-369f6b0bbcb6","savedPayload":{"position":{"x":27205.588338424695,"y":33333.606882619264},"targetPosition":{"x":27160.134934338043,"y":33045.20209273068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f1fe746a-c416-48f7-a908-3bc901959f41","savedPayload":{"position":{"x":27160.134934338043,"y":33045.20209273068},"targetPosition":{"x":27069.12456649723,"y":32468.535886073892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"9975a468-bea5-4646-9f95-e31e98749335","savedPayload":{"position":{"x":27069.12456649723,"y":32468.535886073892},"targetPosition":{"x":26831.801065115775,"y":31935.243895397805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"86f6bfc3-a716-4f6c-9d0d-089a06b71fed","savedPayload":{"position":{"x":26831.99431486614,"y":31935.28943618454},"targetPosition":{"x":26594.59491780863,"y":31401.96675335554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Bitfinex","id":"3ff59cad-42ae-4527-b060-4585cc4e7e1a"}}}],"id":"2ae685a1-25c6-4bd5-b559-d83e373e8d45","savedPayload":{"position":{"x":26594.59491780863,"y":31401.96675335554},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"productionEnvironment":{"type":"Production Environment","name":"New Production Environment","exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Fwd & Live Sessions BTC/USDT","tasks":[{"type":"Task","name":"Fwd Testing WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Forward Testing Session","name":"Fwd WHB","code":"{\n\"folderName\": \"Fwd-WHB\",\n\"balancePercentage\": 10\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"88b742f0-a4e8-4dd1-8b50-bf31314898dc","savedPayload":{"position":{"x":27213.156115471513,"y":33892.80688164163},"targetPosition":{"x":27240.605423555673,"y":34183.16561816866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"cc544635-ccad-4a93-b983-aa81c9c9742d","savedPayload":{"position":{"x":27450.913483319102,"y":33980.2070718946},"targetPosition":{"x":27240.605423555673,"y":34183.16561816866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"9e885d30-915d-4379-b9ad-cc444e25084c","savedPayload":{"position":{"x":27531.039581524074,"y":34220.63700166012},"targetPosition":{"x":27240.605423555673,"y":34183.16561816866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"0b6e2c2f-9099-45e4-912e-ee6162865214","savedPayload":{"position":{"x":27392.883110693507,"y":34433.4825216436},"targetPosition":{"x":27240.605423555673,"y":34183.16561816866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"c5d16250-2f81-4fa8-bfb9-2ef95536f73c","savedPayload":{"position":{"x":27140.849366047652,"y":34458.22504504535},"targetPosition":{"x":27240.605423555673,"y":34183.16561816866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"b33b15cd-1ea3-45eb-996a-5ee0e04cc0fe","savedPayload":{"position":{"x":26964.458917738517,"y":34276.2861740626},"targetPosition":{"x":27240.605423555673,"y":34183.16561816866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3db9186d-7a77-453b-abbc-0cce04e544f5","savedPayload":{"position":{"x":27240.605423555673,"y":34183.16561816866},"targetPosition":{"x":26995.65848293174,"y":34024.683460955726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b59b370b-634d-45ea-b4ec-49b1fb32fc9a","savedPayload":{"position":{"x":26995.65848293174,"y":34024.683460955726},"targetPosition":{"x":26750.79800936216,"y":33865.8578990441},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"New Exchange Account Key","id":"dad641d8-4ddb-46e8-9151-2c413c75a138","savedPayload":{"position":{"x":26721.0299044968,"y":34449.07644515524},"targetPosition":{"x":26735.83905504777,"y":34157.38825790955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"New Exchange Account Key","id":"88eab4e5-3be4-4982-93fa-e95bcb1ab559"}}},"id":"c618e7bc-37d3-452e-b06b-197fad439435","savedPayload":{"position":{"x":26735.83905504777,"y":34157.38825790955},"targetPosition":{"x":26750.79800936216,"y":33865.8578990441},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"d4969640-2c94-4cfd-b71d-907319e3495a","savedPayload":{"position":{"x":26750.79800936216,"y":33865.8578990441},"targetPosition":{"x":26618.57531959245,"y":33606.678083974264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"1c258f61-7318-4ddd-8a29-4f60f8ea61e8","savedPayload":{"position":{"x":26618.57531959245,"y":33606.678083974264},"targetPosition":{"x":26449.4345442884,"y":33275.4084892768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8875b896-a741-4861-9632-d39bf0167dc1","savedPayload":{"position":{"x":26449.65961346061,"y":33275.730578813},"targetPosition":{"x":26184.224325683474,"y":32755.82273108023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Live Trading WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Live Trading Session","name":"Live Trading WHB","code":"{\n\"folderName\": \"Live-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"ab97f60d-d77e-4ce3-bce2-ef57b041004b","savedPayload":{"position":{"x":26508.040736356692,"y":34175.0474432514},"targetPosition":{"x":26386.99271732716,"y":34440.76205827793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"10c80898-9db7-412d-9c1b-379dc66f08e4","savedPayload":{"position":{"x":26670.44957895978,"y":34369.71327541496},"targetPosition":{"x":26386.99271732716,"y":34440.76205827793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"67f463e3-5e81-4805-a0a1-ff6a3af70624","savedPayload":{"position":{"x":26619.967472968776,"y":34619.57753795378},"targetPosition":{"x":26387.43018395344,"y":34442.353927570664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"e74c8d80-d2ac-499c-bd92-d2357b6f815b","savedPayload":{"position":{"x":26393.89875980304,"y":34734.75142184919},"targetPosition":{"x":26387.43018395344,"y":34442.353927570664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"2e121bbc-5acd-458e-aef5-f3ab22fe7211","savedPayload":{"position":{"x":26163.18090119906,"y":34629.92284637682},"targetPosition":{"x":26387.43018395344,"y":34442.353927570664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"784d4edb-35ae-406f-adae-6d596df0caca","savedPayload":{"position":{"x":26101.179102148108,"y":34384.45515555325},"targetPosition":{"x":26387.43018395344,"y":34442.353927570664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0d83ae91-cd61-45a3-b4d7-0566a2fb99b1","savedPayload":{"position":{"x":26386.99271732716,"y":34440.76205827793},"targetPosition":{"x":26254.58252218575,"y":34180.684424527964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e50eb025-56d8-4c8e-a1aa-004f3a3e2f41","savedPayload":{"position":{"x":26254.58252218575,"y":34180.684424527964},"targetPosition":{"x":26122.331461441172,"y":33920.95676130053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"New Exchange Account Key","id":"d17cdd72-2e45-4bc6-9725-0c0ef125db5f","savedPayload":{"position":{"x":25803.650048032356,"y":34410.3037566756},"targetPosition":{"x":25962.904766385647,"y":34165.57250074203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"New Exchange Account Key","id":"88eab4e5-3be4-4982-93fa-e95bcb1ab559"}}},"id":"44b4839c-9541-4f6f-b532-38d54eac1831","savedPayload":{"position":{"x":25962.904766385647,"y":34165.57250074203},"targetPosition":{"x":26122.331461441172,"y":33920.95676130053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"a3db0a12-4836-45d3-910e-bdff7bcd1623","savedPayload":{"position":{"x":26122.331461441172,"y":33920.95676130053},"targetPosition":{"x":26137.71599916899,"y":33629.84434293595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"91bb6447-ac67-4689-ae77-9d65083ff278","savedPayload":{"position":{"x":26137.71599916899,"y":33629.84434293595},"targetPosition":{"x":26153.374264443977,"y":33338.587693653506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7c2dfc0c-87e5-42ed-a6f7-4b6f79bbfdec","savedPayload":{"position":{"x":26153.3599676772,"y":33338.61447369248},"targetPosition":{"x":26184.224325683474,"y":32755.82273108023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bcd2156e-70cc-41d3-9360-39cde2145073","savedPayload":{"position":{"x":26184.224325683474,"y":32755.82273108023},"targetPosition":{"x":26063.04216093241,"y":32184.97803839955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"l"}}}],"id":"548448cf-3922-49a9-b89d-45ef0616432b","savedPayload":{"position":{"x":26063.04216093241,"y":32184.97803839955},"targetPosition":{"x":25941.905690583506,"y":31614.045691974294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}},{"type":"Exchange Tasks","name":"Bitfinex","taskManagers":[{"type":"Task Manager","name":"Fwd & Live Sessions BTC/USDT","tasks":[{"type":"Task","name":"Fwd Testing WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Forward Testing Session","name":"Fwd WHB","code":"{\n\"folderName\": \"Fwd-WHB\",\n\"balancePercentage\": 10\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"a17ba969-383a-4354-b661-539f2b9af470","savedPayload":{"position":{"x":24602.95223349282,"y":33854.81290074033},"targetPosition":{"x":24365.92232066429,"y":34023.14728279089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"dfee6cb8-deff-4d50-a62f-1060e540069d"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"3c02129d-beeb-4a94-ad1c-b5ee5be57f5c","savedPayload":{"position":{"x":24646.256246993395,"y":34104.34423082304},"targetPosition":{"x":24365.92232066429,"y":34023.14728279089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"c427816f-d936-4bf9-bc61-a3163642fe13"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"ef1009d6-5c95-4016-aad1-012448ffe37e","savedPayload":{"position":{"x":24477.884245813122,"y":34294.072501268565},"targetPosition":{"x":24365.92232066429,"y":34023.14728279089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"fa5a9260-7821-49bd-8108-7bc9e9b3c9cb","savedPayload":{"position":{"x":24224.788596913477,"y":34280.79647931317},"targetPosition":{"x":24365.92232066429,"y":34023.14728279089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"cdae103d-fe02-4c64-ab90-1d2d3fbe3872","savedPayload":{"position":{"x":24077.157487277327,"y":34074.51695728213},"targetPosition":{"x":24365.92232066429,"y":34023.14728279089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"e1f23801-c45d-482c-bf11-f99650897c58","savedPayload":{"position":{"x":24146.3440149943,"y":33830.969551986665},"targetPosition":{"x":24365.92232066429,"y":34023.14728279089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ca6d85c2-4f79-4c46-b7db-f8a2df7cd265","savedPayload":{"position":{"x":24365.92232066429,"y":34023.14728279089},"targetPosition":{"x":24380.313410107254,"y":33732.79484826924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd251c3a-d744-4c7c-95f7-e25767cad491","savedPayload":{"position":{"x":24380.313410107254,"y":33732.79484826924},"targetPosition":{"x":24396.22438058906,"y":33440.45127458217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","keyInstance":{"type":"Key Instance","name":"New Exchange Account Key","id":"1fcff1a9-1e15-4d0a-83ba-519be1e0c180","savedPayload":{"position":{"x":23875.51092914147,"y":33704.74322552914},"targetPosition":{"x":24135.017432408968,"y":33573.751756525184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"New Exchange Account Key","id":"0fd9bffa-8a0b-49f2-b000-77b5b551bc30"}}},"id":"5bf2bf06-5267-4330-85b7-e6a23acb0b92","savedPayload":{"position":{"x":24135.017432408968,"y":33573.751756525184},"targetPosition":{"x":24396.22438058906,"y":33440.45127458217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"bd510676-cfae-4d38-96dd-8ffd9b417f76","savedPayload":{"position":{"x":24396.22438058906,"y":33440.45127458217},"targetPosition":{"x":24554.268720910095,"y":33197.34251738557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"16d186e6-3f74-4e5a-95c0-7997d4b13efb","savedPayload":{"position":{"x":24554.268720910095,"y":33197.34251738557},"targetPosition":{"x":24757.197503992036,"y":32884.75929784828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2571d1fb-620e-4308-88a4-fba502ad74b2","savedPayload":{"position":{"x":24757.265413735815,"y":32885.12516636919},"targetPosition":{"x":25074.76827912297,"y":32395.23240898645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Live Trading WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Protocol Engine Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Live Trading Session","name":"Live Trading WHB","code":"{\n\"folderName\": \"Live-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"Bitcoin","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"97ce3364-1900-41e2-a5c0-4f8f0c070804","savedPayload":{"position":{"x":24007.812313106955,"y":33385.72339997991},"targetPosition":{"x":23717.0525374347,"y":33413.49594664315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"dfee6cb8-deff-4d50-a62f-1060e540069d"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n\"initialBalance\": 0\n}","id":"cd8ebc77-c890-4ef0-9b15-c8d55382399a","savedPayload":{"position":{"x":23920.410783044637,"y":33623.420831558695},"targetPosition":{"x":23717.0525374347,"y":33413.49594664315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"c427816f-d936-4bf9-bc61-a3163642fe13"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"545e4f4a-fbfb-4195-a184-4c50886ba962","savedPayload":{"position":{"x":23680.007059076495,"y":33703.55168741717},"targetPosition":{"x":23717.0525374347,"y":33413.49594664315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"27f34b00-c47a-4cfe-9f70-f1d3d4b5b2a1","savedPayload":{"position":{"x":23467.196791372346,"y":33565.346750301374},"targetPosition":{"x":23717.0525374347,"y":33413.49594664315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"202e02c0-201f-4af2-8053-5e256ccdb22f","savedPayload":{"position":{"x":23442.470828821344,"y":33313.16725456524},"targetPosition":{"x":23717.0525374347,"y":33413.49594664315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"571be861-dd18-4820-afce-1e632e22e976","savedPayload":{"position":{"x":23624.29508663287,"y":33136.59450054641},"targetPosition":{"x":23717.0525374347,"y":33413.49594664315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0d16a5bf-133f-4503-9578-1159d75ba2fa","savedPayload":{"position":{"x":23717.0525374347,"y":33413.49594664315},"targetPosition":{"x":23876.04026122087,"y":33168.66607485644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dcf7c50c-1136-4dec-a148-e2df09f2a9e0","savedPayload":{"position":{"x":23876.04026122087,"y":33168.66607485644},"targetPosition":{"x":24034.69013181409,"y":32924.242152607796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"126a9ca3-6075-4cb2-a65f-0073c3a0bc00"}}},"marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","keyInstance":{"type":"Key Instance","name":"New Exchange Account Key","id":"c8657962-8bb5-487f-a85b-6f7024682776","savedPayload":{"position":{"x":23451.53713453158,"y":32893.073321386066},"targetPosition":{"x":23743.122382660633,"y":32908.550850885644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"New Exchange Account Key","id":"0fd9bffa-8a0b-49f2-b000-77b5b551bc30"}}},"id":"fa90c1a0-aaf1-4d42-baef-0c91762b32e4","savedPayload":{"position":{"x":23743.122382660633,"y":32908.550850885644},"targetPosition":{"x":24034.69013181409,"y":32924.242152607796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"e31a03d5-398a-47e2-b58f-96ea26ae477b","savedPayload":{"position":{"x":24034.69013181409,"y":32924.242152607796},"targetPosition":{"x":24294.465629352195,"y":32792.18977833843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"62deab84-c6cb-4a2f-9a4d-63e5e7d132de","savedPayload":{"position":{"x":24294.465629352195,"y":32792.18977833843},"targetPosition":{"x":24554.597541904845,"y":32659.878400266534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07049a6b-fa1c-41cd-80ad-2cfe00c3a013","savedPayload":{"position":{"x":24554.597541904845,"y":32659.878400266534},"targetPosition":{"x":25074.76827912297,"y":32395.23240898645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2297d2cf-94b0-44d9-9af1-4417b668a158","savedPayload":{"position":{"x":25074.76827912297,"y":32395.23240898645},"targetPosition":{"x":25508.423817624538,"y":32004.707222463276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"l"}}}],"id":"c6a3f80b-c0c4-4c53-b92e-33824da99a9e","savedPayload":{"position":{"x":25507.91196393889,"y":32004.6087310614},"targetPosition":{"x":25941.905690583506,"y":31614.045691974294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Bitfinex","id":"3ff59cad-42ae-4527-b060-4585cc4e7e1a"}}}],"id":"32656457-f603-416a-b805-546642094dc4","savedPayload":{"position":{"x":25941.905690583506,"y":31614.045691974294},"targetPosition":{"x":26122.378344035824,"y":31058.919069244217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"u"}}},"id":"ce601334-52c5-4ffb-ab61-49ca1943a15a","savedPayload":{"position":{"x":26122.378344035824,"y":31058.919069244217},"targetPosition":{"x":24954.356993272086,"y":31054.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"r"}}}],"id":"efbbc81b-93c8-4ce0-873e-675f39d333e8","savedPayload":{"position":{"x":24954.356993272086,"y":31054.918778615294},"targetPosition":{"x":24954.356993272086,"y":31054.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"n"}}},{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","cryptoExchanges":[{"type":"Crypto Exchanges","name":"Tested","exchanges":[{"type":"Crypto Exchange","name":"Binance","code":"{\n \"codeName\": \"binance\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"EUR\"} \n}","assets":[{"type":"Asset","name":"Bitcoin","code":"{ \n\"codeName\": \"BTC\"\n}","id":"b2814a75-fd57-45c4-a3cb-af276793e573","savedPayload":{"position":{"x":13881.746107982488,"y":30166.383454807205},"targetPosition":{"x":14134.618020637645,"y":30383.674279521667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","code":"{ \n\"codeName\": \"USDT\"\n}","id":"04c5f172-6976-4557-b95f-38004b5201a6","savedPayload":{"position":{"x":14001.163831309763,"y":30078.054987280655},"targetPosition":{"x":14134.618020637645,"y":30383.674279521667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Ether","code":"{ \n\"codeName\": \"ETH\"\n}","id":"4175d47c-e12c-4902-b026-f4999a6d07a4","savedPayload":{"position":{"x":14146.587329391525,"y":30050.528383745037},"targetPosition":{"x":14134.618020637645,"y":30383.674279521667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Monero","code":"{ \n\"codeName\": \"XMR\"\n}","id":"e3b61070-77b9-4dcf-9862-7f05ffa237f3","savedPayload":{"position":{"x":14289.881729457267,"y":30088.818954941195},"targetPosition":{"x":14134.618020637645,"y":30383.674279521667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Stellar","code":"{ \n\"codeName\": \"XLM\"\n}","id":"6dee1e7e-80f3-4597-a28a-881af206ec14","savedPayload":{"position":{"x":14402.483296905688,"y":30185.703591638765},"targetPosition":{"x":14134.618020637645,"y":30383.674279521667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Ethereum Classic","code":"{ \n\"codeName\": \"ETC\"\n}","id":"59378d33-4833-495a-89bb-f739710be7d9","savedPayload":{"position":{"x":14461.716503415106,"y":30321.972961148054},"targetPosition":{"x":14134.618020637645,"y":30383.674279521667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"f4451bbc-50ea-4558-9b3c-abd3e757a76e","savedPayload":{"position":{"x":14134.618020637645,"y":30383.674279521667},"targetPosition":{"x":14048.908931328186,"y":30705.301361472557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"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}","markets":[{"type":"Market","name":"ETH/BTC","code":"{ \n\"codeName\": \"ETH/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ether","id":"caef787c-1b69-4961-8938-1a7459e3c492","savedPayload":{"position":{"x":14683.949212178428,"y":28823.51966164087},"targetPosition":{"x":15013.758500885777,"y":29402.379563940056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4175d47c-e12c-4902-b026-f4999a6d07a4"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"bae3e3b5-ef5a-424e-b7ab-ead5701ff79f","savedPayload":{"position":{"x":14661.567869004604,"y":28468.244044604387},"targetPosition":{"x":15013.758500885777,"y":29402.379563940056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b2814a75-fd57-45c4-a3cb-af276793e573"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"f51a0715-5670-4c63-b18b-cff660fe4325","savedPayload":{"position":{"x":14979.371680971717,"y":29239.0953979139},"targetPosition":{"x":15013.758500885777,"y":29402.379563940056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"2c1eaf11-3538-48cc-9fef-823bd9a674f4","savedPayload":{"position":{"x":14997.750940934722,"y":29069.20726231864},"targetPosition":{"x":15013.758500885777,"y":29402.379563940056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"a4562107-8fae-46ed-912c-062d82dbeec7","savedPayload":{"position":{"x":15013.758500885777,"y":29402.379563940056},"targetPosition":{"x":15199.745326050113,"y":30040.845592905156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"BTC/USDT","code":"{ \n\"codeName\": \"BTC/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","id":"07b514a4-3ea2-4ab7-aeb0-07b48acb6f8d","savedPayload":{"position":{"x":14991.085510240457,"y":28735.493176036613},"targetPosition":{"x":15172.517323441607,"y":29376.46574426795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b2814a75-fd57-45c4-a3cb-af276793e573"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"61e7d2b5-1672-4e11-8380-345a4fe4a991","savedPayload":{"position":{"x":15054.13034656402,"y":28385.079592132184},"targetPosition":{"x":15172.517323441607,"y":29376.46574426795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"04c5f172-6976-4557-b95f-38004b5201a6"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"a174a91f-0818-4fdc-88cd-20dbdf45c548","savedPayload":{"position":{"x":15178.214821807318,"y":29209.460444203774},"targetPosition":{"x":15172.517323441607,"y":29376.46574426795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"11beab3d-d894-4d20-9940-f864ba957f91","savedPayload":{"position":{"x":15236.747867149532,"y":29048.8489982442},"targetPosition":{"x":15172.517323441607,"y":29376.46574426795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"5489751f-5ce4-40d0-9854-5bcfdc810269","savedPayload":{"position":{"x":15172.517323441607,"y":29376.46574426795},"targetPosition":{"x":15199.745326050113,"y":30040.845592905156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"ETH/USDT","code":"{ \n\"codeName\": \"ETH/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ether","id":"2cf69186-79fe-49b9-843e-a988a09e081b","savedPayload":{"position":{"x":15309.633251513882,"y":28723.265482998893},"targetPosition":{"x":15332.211857082333,"y":29389.206888791436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4175d47c-e12c-4902-b026-f4999a6d07a4"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"91ad4b55-3f61-43b8-891d-6200f9792176","savedPayload":{"position":{"x":15454.379943914028,"y":28398.181555354342},"targetPosition":{"x":15332.211857082333,"y":29389.206888791436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"04c5f172-6976-4557-b95f-38004b5201a6"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"ef8adaa0-8db5-4ac6-86ea-48b9ec3c69e9","savedPayload":{"position":{"x":15377.912252445649,"y":29228.381508312283},"targetPosition":{"x":15332.211857082333,"y":29389.206888791436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"1d5f08be-7632-4939-86aa-22bb249b8478","savedPayload":{"position":{"x":15473.044431451339,"y":29086.595631121825},"targetPosition":{"x":15332.211857082333,"y":29389.206888791436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"5f72971e-a0c3-4185-b7f5-6af0d1030895","savedPayload":{"position":{"x":15332.211857082333,"y":29389.206888791436},"targetPosition":{"x":15199.745326050113,"y":30040.845592905156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"ETC/ETH","code":"{ \n\"codeName\": \"ETC/ETH\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ethereum Classic","id":"045962ab-6e4a-4b20-910d-36e5290621c7","savedPayload":{"position":{"x":15621.636185366608,"y":28787.891447934042},"targetPosition":{"x":15484.443927263726,"y":29440.07904255231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ethereum Classic","id":"59378d33-4833-495a-89bb-f739710be7d9"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Ether","id":"c33e6eff-9797-4df0-be7b-e6f8b4013612","savedPayload":{"position":{"x":15840.359500730732,"y":28507.113044995906},"targetPosition":{"x":15484.443927263726,"y":29440.07904255231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4175d47c-e12c-4902-b026-f4999a6d07a4"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"cd0cb65d-fc3e-4443-b85f-0bde5f9b19bd","savedPayload":{"position":{"x":15567.375796507338,"y":29294.981852930643},"targetPosition":{"x":15484.443927263726,"y":29440.07904255231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"85199376-3027-43ec-8b58-1c8cb49db255","savedPayload":{"position":{"x":15693.889388062913,"y":29179.935691268016},"targetPosition":{"x":15484.443927263726,"y":29440.07904255231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"4c38325e-3531-4e38-805e-aa05346bccce","savedPayload":{"position":{"x":15484.443927263726,"y":29440.07904255231},"targetPosition":{"x":15199.745326050113,"y":30040.845592905156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"ETC/BTC","code":"{ \n\"codeName\": \"ETC/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ethereum Classic","id":"fd21520b-404a-4aa6-8ee5-fdf5954caed7","savedPayload":{"position":{"x":15909.216299353053,"y":28925.531549336672},"targetPosition":{"x":15620.06032497394,"y":29525.842304871137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ethereum Classic","id":"59378d33-4833-495a-89bb-f739710be7d9"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"c0eba323-dd38-41b1-a433-64d835da73f2","savedPayload":{"position":{"x":16188.90211686927,"y":28705.0871375565},"targetPosition":{"x":15620.06032497394,"y":29525.842304871137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b2814a75-fd57-45c4-a3cb-af276793e573"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"583ebe0a-f3c3-44d7-85c6-7dc5535a0711","savedPayload":{"position":{"x":15735.506012082722,"y":29405.010390227577},"targetPosition":{"x":15620.06032497394,"y":29525.842304871137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"09b71b94-3a41-4b6a-b137-09f15ef65f49","savedPayload":{"position":{"x":15885.652627071342,"y":29323.570169116094},"targetPosition":{"x":15620.06032497394,"y":29525.842304871137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"3deec998-a14d-4c9c-b07d-8aa628497aab","savedPayload":{"position":{"x":15620.06032497394,"y":29525.842304871137},"targetPosition":{"x":15199.745326050113,"y":30040.845592905156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"XMR/BTC","code":"{ \n\"codeName\": \"XMR/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"Monero","id":"b35a22ac-27a0-471e-b4ca-75e790be573a","savedPayload":{"position":{"x":16155.7721177876,"y":29127.9477443119},"targetPosition":{"x":15731.226490292076,"y":29641.494962412027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Monero","id":"e3b61070-77b9-4dcf-9862-7f05ffa237f3"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"52ea548b-69b5-4edf-a3f1-0ab5dfcbefdc","savedPayload":{"position":{"x":16479.931651009338,"y":28980.822662536644},"targetPosition":{"x":15731.226490292076,"y":29641.494962412027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b2814a75-fd57-45c4-a3cb-af276793e573"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"8d1fb872-2f99-4f22-9805-28f3baa6fc90","savedPayload":{"position":{"x":15872.274263095778,"y":29551.89239168283},"targetPosition":{"x":15731.226490292076,"y":29641.494962412027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"b90af82c-e400-48fd-8c2f-1fd20caab789","savedPayload":{"position":{"x":16037.513684106982,"y":29508.679829690413},"targetPosition":{"x":15731.226490292076,"y":29641.494962412027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"5d83135c-7940-4ae1-ac6a-2b05f3548d75","savedPayload":{"position":{"x":15731.226490292076,"y":29641.494962412027},"targetPosition":{"x":15199.745326050113,"y":30040.845592905156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"XMR/ETH","code":"{ \n\"codeName\": \"XMR/ETH\"\n}","baseAsset":{"type":"Market Base Asset","name":"Monero","id":"9cd17225-608d-44d2-b300-599f85ed7e3a","savedPayload":{"position":{"x":16346.708505258845,"y":29383.235016293762},"targetPosition":{"x":15811.428961746855,"y":29780.301798293218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Monero","id":"e3b61070-77b9-4dcf-9862-7f05ffa237f3"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Ether","id":"60fadc60-2c7b-4914-9702-572bc03fd8e4","savedPayload":{"position":{"x":16696.531940594006,"y":29318.140810019035},"targetPosition":{"x":15811.428961746855,"y":29780.301798293218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4175d47c-e12c-4902-b026-f4999a6d07a4"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"1e9844c2-a658-406a-802f-b424aeb8b509","savedPayload":{"position":{"x":15969.808273647559,"y":29727.140270047028},"targetPosition":{"x":15811.428961746855,"y":29780.301798293218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"6d13c2c7-2ded-4279-8747-1fd2c8665ee2","savedPayload":{"position":{"x":16140.668803090555,"y":29724.811673996504},"targetPosition":{"x":15811.428961746855,"y":29780.301798293218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"64b3d21b-4453-4513-a80b-15a7cb1f5578","savedPayload":{"position":{"x":15811.428961746855,"y":29780.301798293218},"targetPosition":{"x":15199.745326050113,"y":30040.845592905156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"XLM/BTC","code":"{ \n\"codeName\": \"XLM/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"Stellar","id":"d55e9669-0ed1-482f-9a1a-927e908fa6c1","savedPayload":{"position":{"x":16470.68187019427,"y":29677.244570821847},"targetPosition":{"x":15856.091112790951,"y":29934.518092502418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Stellar","id":"6dee1e7e-80f3-4597-a28a-881af206ec14"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"6993b34f-0706-4eff-a376-e2c33d80f731","savedPayload":{"position":{"x":16826.046026738204,"y":29697.72928260898},"targetPosition":{"x":15856.091112790951,"y":29934.518092502418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b2814a75-fd57-45c4-a3cb-af276793e573"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"e7e0a1bd-bcfc-45ff-888c-fe5cef85b268","savedPayload":{"position":{"x":16022.752030649388,"y":29920.770310187338},"targetPosition":{"x":15856.091112790951,"y":29934.518092502418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"f998830f-e16c-4d5e-b1bf-14c6c9e93e8e","savedPayload":{"position":{"x":16189.071464535122,"y":29959.05039255341},"targetPosition":{"x":15856.091112790951,"y":29934.518092502418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"6024e186-610e-47a2-847a-50e2ebe5e889","savedPayload":{"position":{"x":15856.091112790951,"y":29934.518092502418},"targetPosition":{"x":15199.745326050113,"y":30040.845592905156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"XLM/ETH","code":"{ \n\"codeName\": \"XLM/ETH\"\n}","baseAsset":{"type":"Market Base Asset","name":"Stellar","id":"df31a89f-2de4-4716-be37-5788ec5b569a","savedPayload":{"position":{"x":16520.995179479436,"y":29991.82301633459},"targetPosition":{"x":15862.45656552024,"y":30094.486258003137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Stellar","id":"6dee1e7e-80f3-4597-a28a-881af206ec14"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Ether","id":"b722ebc5-be2a-4f04-910f-7362459bf76d","savedPayload":{"position":{"x":16861.133280586255,"y":30096.427353070878},"targetPosition":{"x":15862.45656552024,"y":30094.486258003137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4175d47c-e12c-4902-b026-f4999a6d07a4"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"71f4bd2f-8136-4b91-a8f5-59f19fae6acb","savedPayload":{"position":{"x":16027.615022008687,"y":30120.771833214287},"targetPosition":{"x":15862.45656552024,"y":30094.486258003137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"3b72f6ad-766f-4d7d-a01e-5afc00696302","savedPayload":{"position":{"x":16179.77838466755,"y":30198.170714920256},"targetPosition":{"x":15862.45656552024,"y":30094.486258003137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"d9790708-5efe-4d9e-a6d2-98df66b3a30b","savedPayload":{"position":{"x":15862.45656552024,"y":30094.486258003137},"targetPosition":{"x":15199.745326050113,"y":30040.845592905156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"XLM/USDT","code":"{ \n\"codeName\": \"XLM/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Stellar","id":"ccba1074-a485-4696-b657-21efff2ca526","savedPayload":{"position":{"x":16494.430643997457,"y":30309.38181521019},"targetPosition":{"x":15830.43050438644,"y":30251.712403081976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Stellar","id":"6dee1e7e-80f3-4597-a28a-881af206ec14"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"6d4aae38-bce5-4230-aec2-21de584d3892","savedPayload":{"position":{"x":16799.41066119326,"y":30492.54644380222},"targetPosition":{"x":15830.43050438644,"y":30251.712403081976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"04c5f172-6976-4557-b95f-38004b5201a6"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"f1c57dc0-95d7-4e12-bdbf-19ac7a21c93b","savedPayload":{"position":{"x":15984.244160083803,"y":30317.037626475445},"targetPosition":{"x":15830.43050438644,"y":30251.712403081976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"4e12af51-a367-40e6-9383-4ca7a239adb1","savedPayload":{"position":{"x":16113.778611912847,"y":30428.50774928771},"targetPosition":{"x":15830.43050438644,"y":30251.712403081976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"b5e9a8a5-577c-4b12-a5cf-6ccb2838c1f7","savedPayload":{"position":{"x":15830.43050438644,"y":30251.712403081976},"targetPosition":{"x":15199.745326050113,"y":30040.845592905156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"ETC/USDT","code":"{ \n\"codeName\": \"ETC/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ethereum Classic","id":"e982ac6b-a219-4762-8911-92c856d1ae49","savedPayload":{"position":{"x":16392.172517128838,"y":30611.53824566343},"targetPosition":{"x":15761.444064742087,"y":30396.675664231312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ethereum Classic","id":"59378d33-4833-495a-89bb-f739710be7d9"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"cdc29a59-ad79-4443-87b1-5143547e25f1","savedPayload":{"position":{"x":16644.73112179388,"y":30862.511811576405},"targetPosition":{"x":15761.444064742087,"y":30396.675664231312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"04c5f172-6976-4557-b95f-38004b5201a6"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"7fd30bfa-c36d-440b-a21c-1339cc25de29","savedPayload":{"position":{"x":15894.993961462682,"y":30497.009281429393},"targetPosition":{"x":15761.444064742087,"y":30396.675664231312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"04cd47a2-4473-441e-b1dd-e85028e1d84d","savedPayload":{"position":{"x":15993.938306498243,"y":30636.14988765567},"targetPosition":{"x":15761.444064742087,"y":30396.675664231312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"eedb6cd4-7a44-406e-9e14-3cae5348a68a","savedPayload":{"position":{"x":15761.444064742087,"y":30396.675664231312},"targetPosition":{"x":15199.745326050113,"y":30040.845592905156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"XMR/USDT","code":"{ \n\"codeName\": \"XMR/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Monero","id":"3174036f-0b2c-4263-82aa-4b63abecbbe5","savedPayload":{"position":{"x":16220.524266592896,"y":30880.714828345255},"targetPosition":{"x":15659.74148829034,"y":30521.049502788486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Monero","id":"e3b61070-77b9-4dcf-9862-7f05ffa237f3"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"a9be98b5-71b9-4bfa-97fa-5916144fe545","savedPayload":{"position":{"x":16405.613739938843,"y":31184.6529891686},"targetPosition":{"x":15659.74148829034,"y":30521.049502788486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"04c5f172-6976-4557-b95f-38004b5201a6"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"856b11ca-d845-468d-8508-e7165f5b8b2b","savedPayload":{"position":{"x":15765.297537380879,"y":30650.4849871332},"targetPosition":{"x":15659.74148829034,"y":30521.049502788486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"307f543e-5ee5-448a-ae37-34fd6e1be2c5","savedPayload":{"position":{"x":15828.171515848706,"y":30809.25808929124},"targetPosition":{"x":15659.74148829034,"y":30521.049502788486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"9c20010d-f1d6-401c-8599-f9c39849896c","savedPayload":{"position":{"x":15659.74148829034,"y":30521.049502788486},"targetPosition":{"x":15199.745326050113,"y":30040.845592905156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0e1257c5-49b1-4b52-8942-9bdef72854d2","savedPayload":{"position":{"x":15199.745326050113,"y":30040.845592905156},"targetPosition":{"x":14048.908931328186,"y":30705.301361472557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b","savedPayload":{"position":{"x":15074.435413002448,"y":30465.10376049055},"targetPosition":{"x":15013.176451259393,"y":30792.13163946197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b2814a75-fd57-45c4-a3cb-af276793e573"}}},{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da","savedPayload":{"position":{"x":15210.55830122106,"y":30524.60479274258},"targetPosition":{"x":15013.176451259393,"y":30792.13163946197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"04c5f172-6976-4557-b95f-38004b5201a6"}}},{"type":"Exchange Account Asset","name":"Ether","id":"b3d0800f-f430-4549-86e9-68001c43fa1f","savedPayload":{"position":{"x":15307.397104450709,"y":30637.07244974632},"targetPosition":{"x":15013.176451259393,"y":30792.13163946197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4175d47c-e12c-4902-b026-f4999a6d07a4"}}},{"type":"Exchange Account Asset","name":"Monero","id":"ee25ff6a-8b3d-4f30-8acf-71ca4b186195","savedPayload":{"position":{"x":15345.988289176796,"y":30780.454395666362},"targetPosition":{"x":15013.176451259393,"y":30792.13163946197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Monero","id":"e3b61070-77b9-4dcf-9862-7f05ffa237f3"}}},{"type":"Exchange Account Asset","name":"Stellar","id":"5716ea79-1392-4f6d-a46e-dba38ab9b39e","savedPayload":{"position":{"x":15318.577757927536,"y":30925.694677157324},"targetPosition":{"x":15013.176451259393,"y":30792.13163946197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Stellar","id":"6dee1e7e-80f3-4597-a28a-881af206ec14"}}},{"type":"Exchange Account Asset","name":"Ethereum Classic","id":"d9d0d41c-67a9-42ea-8c64-067647ee53a4","savedPayload":{"position":{"x":15230.478533653264,"y":31045.124266934283},"targetPosition":{"x":15013.176451259393,"y":30792.13163946197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ethereum Classic","id":"59378d33-4833-495a-89bb-f739710be7d9"}}}],"id":"f7bbfcc0-2359-4de1-8ddc-5e117bde0c52","savedPayload":{"position":{"x":15013.176451259393,"y":30792.13163946197},"targetPosition":{"x":14691.62362044186,"y":30877.951080432365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"88eab4e5-3be4-4982-93fa-e95bcb1ab559","savedPayload":{"position":{"x":15162.413994918546,"y":31349.78077566514},"targetPosition":{"x":14926.91187352331,"y":31113.94127567297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"cf3895fd-4f0c-4bd8-8afb-886a718cc891","savedPayload":{"position":{"x":14926.91187352331,"y":31113.94127567297},"targetPosition":{"x":14691.62362044186,"y":30877.951080432365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a718949a-e315-4bda-8523-b0b03e3ca507","savedPayload":{"position":{"x":14691.62362044186,"y":30877.951080432365},"targetPosition":{"x":14370.262003574557,"y":30791.59237984228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a913b30b-17d3-4b2b-9c39-9c7dc67f0000","savedPayload":{"position":{"x":14370.262003574557,"y":30791.59237984228},"targetPosition":{"x":14048.908931328186,"y":30705.301361472557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"22d2b36e-7a77-40a6-8948-b7d0fb744923","savedPayload":{"position":{"x":14048.908931328186,"y":30705.301361472557},"targetPosition":{"x":13472.089084145033,"y":31038.238417054105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Crypto Exchange","name":"Bitfinex","code":"{\n \"codeName\": \"bitfinex\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"class\": \"bitfinex2\"\n },\n {\n \"method\": \"fetch_ohlcv\",\n \"rateLimit\": 2000\n }\n ]\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"BTC\"} \n}","assets":[{"type":"Asset","name":"Bitcoin","code":"{ \n\"codeName\": \"BTC\"\n}","id":"66046275-e148-4d18-8bbd-ad8dcd2ade99","savedPayload":{"position":{"x":14558.813602270711,"y":30990.675978046696},"targetPosition":{"x":14391.838089015106,"y":31279.344186766666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","code":"{ \n\"codeName\": \"USDT\"\n}","id":"27ae18d2-032b-41f8-bafc-a24fa4933194","savedPayload":{"position":{"x":14714.078404493384,"y":31193.024918853906},"targetPosition":{"x":14391.838089015106,"y":31279.344186766666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Ether","code":"{ \n\"codeName\": \"ETH\"\n}","id":"4bfba898-c803-4bb6-924f-c9b67c1667de","savedPayload":{"position":{"x":14680.77766683428,"y":31445.599782613306},"targetPosition":{"x":14391.838089015106,"y":31279.344186766666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"dc376d73-e403-43ce-9044-5ff5fcd6de4e","savedPayload":{"position":{"x":14391.838089015106,"y":31279.344186766666},"targetPosition":{"x":14048.972010509444,"y":31371.189457336757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[{"type":"Market","name":"BTC/USDT","code":"{ \n\"codeName\": \"BTC/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","id":"4d9d7d28-c531-41af-96bd-0fd83d3a958d","savedPayload":{"position":{"x":16428.066630140675,"y":31545.36158315597},"targetPosition":{"x":15842.798658215152,"y":31863.746152856827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"66046275-e148-4d18-8bbd-ad8dcd2ade99"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"3c286c18-238f-446c-9d0c-f454ee45aaf1","savedPayload":{"position":{"x":16471.036498365596,"y":31641.818733488122},"targetPosition":{"x":15842.798658215152,"y":31863.746152856827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"27ae18d2-032b-41f8-bafc-a24fa4933194"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"52d55987-e468-43fb-a93e-f92d720fa67e","savedPayload":{"position":{"x":16170.326573720717,"y":31803.10475879089},"targetPosition":{"x":15842.798658215152,"y":31863.746152856827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"c3f246a4-958a-4cc1-8ffb-888c360950ca","savedPayload":{"position":{"x":16508.28188073202,"y":31846.57241847902},"targetPosition":{"x":15842.798658215152,"y":31863.746152856827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"b734f59f-f29c-450b-a6e4-6d2345a1082a","savedPayload":{"position":{"x":15842.798658215152,"y":31863.746152856827},"targetPosition":{"x":15200.566277083002,"y":32035.87781770284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"ETH/USDT","code":"{ \n\"codeName\": \"ETH/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ether","id":"290ac053-86ee-4f35-9591-8b71afe3439a","savedPayload":{"position":{"x":16415.473825988458,"y":32556.81684232659},"targetPosition":{"x":15776.434217885359,"y":32368.238415141033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4bfba898-c803-4bb6-924f-c9b67c1667de"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"c04498d8-5dd7-4a2e-b064-34d43a8e2eba","savedPayload":{"position":{"x":16377.753478428092,"y":32655.218562611753},"targetPosition":{"x":15776.434217885359,"y":32368.238415141033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"27ae18d2-032b-41f8-bafc-a24fa4933194"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"8a5671ae-0cbf-447c-96ee-6f80ad113c23","savedPayload":{"position":{"x":16324.85087650604,"y":32745.59201774114},"targetPosition":{"x":15776.434217885359,"y":32368.238415141033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"4216b417-fcc1-4428-98a5-77d6f0783192","savedPayload":{"position":{"x":16259.002848564229,"y":32826.76726792272},"targetPosition":{"x":15776.434217885359,"y":32368.238415141033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"e0b33e47-b62e-46df-ad42-5abc4a982629","savedPayload":{"position":{"x":15776.434217885359,"y":32368.238415141033},"targetPosition":{"x":15200.566277083002,"y":32035.87781770284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"ETH/BTC","code":"{ \n\"codeName\": \"ETH/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ether","id":"9f67e425-d0ea-47bd-98f2-1b8e80a814d4","savedPayload":{"position":{"x":15690.910641031203,"y":33263.41129346548},"targetPosition":{"x":15372.495509451843,"y":32678.16108631171},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4bfba898-c803-4bb6-924f-c9b67c1667de"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"290b695b-6ba3-4d62-8748-5d1f0624ffc5","savedPayload":{"position":{"x":15594.65579380331,"y":33306.31743631578},"targetPosition":{"x":15372.495509451843,"y":32678.16108631171},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"66046275-e148-4d18-8bbd-ad8dcd2ade99"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"d896cc45-b9b1-4eab-85a9-e939c1cc6852","savedPayload":{"position":{"x":15493.341834568446,"y":33332.81054489599},"targetPosition":{"x":15372.495509451843,"y":32678.16108631171},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"35bd6023-4309-46db-ae78-fd1a1b692c19","savedPayload":{"position":{"x":15389.37604492513,"y":33343.645034907815},"targetPosition":{"x":15372.495509451843,"y":32678.16108631171},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"8fe121d7-85a5-4782-807c-f43cfa34144f","savedPayload":{"position":{"x":15372.495509451843,"y":32678.16108631171},"targetPosition":{"x":15200.566277083002,"y":32035.87781770284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dc6b67a9-30d0-4b69-9e10-dd6856e9dd4c","savedPayload":{"position":{"x":15200.566277083002,"y":32035.87781770284},"targetPosition":{"x":14048.972010509444,"y":31371.189457336757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","id":"dfee6cb8-deff-4d50-a62f-1060e540069d","savedPayload":{"position":{"x":14795.43855829302,"y":32271.442840999083},"targetPosition":{"x":14462.224488758851,"y":32271.138653940736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"66046275-e148-4d18-8bbd-ad8dcd2ade99"}}},{"type":"Exchange Account Asset","name":"Tether","id":"c427816f-d936-4bf9-bc61-a3163642fe13","savedPayload":{"position":{"x":14697.851070846615,"y":32507.09967985685},"targetPosition":{"x":14462.224488758851,"y":32271.138653940736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"27ae18d2-032b-41f8-bafc-a24fa4933194"}}},{"type":"Exchange Account Asset","name":"Ether","id":"02712709-2952-425b-b53e-447d75d753ed","savedPayload":{"position":{"x":14462.302162894282,"y":32604.745132236305},"targetPosition":{"x":14462.224488758851,"y":32271.138653940736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4bfba898-c803-4bb6-924f-c9b67c1667de"}}}],"id":"c9dfde0f-314b-4f5c-9102-12c223b09066","savedPayload":{"position":{"x":14462.224488758851,"y":32271.138653940736},"targetPosition":{"x":14226.766758870426,"y":32035.905089291617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"0fd9bffa-8a0b-49f2-b000-77b5b551bc30","savedPayload":{"position":{"x":14054.311501638032,"y":32679.63939229716},"targetPosition":{"x":14140.397287209184,"y":32357.51634113637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"6d6d1bcf-8831-43b9-9b6c-84fb424141a0","savedPayload":{"position":{"x":14140.397287209184,"y":32357.51634113637},"targetPosition":{"x":14226.766758870426,"y":32035.905089291617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4754bc6a-51c8-4586-853b-9813b1a87dc3","savedPayload":{"position":{"x":14226.766758870426,"y":32035.905089291617},"targetPosition":{"x":14140.679185938881,"y":31713.97446144913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f3c4d9e5-4cd2-4629-a49f-5eeadcfa0687","savedPayload":{"position":{"x":14140.679185938881,"y":31713.97446144913},"targetPosition":{"x":14048.972010509444,"y":31371.189457336757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3ff59cad-42ae-4527-b060-4585cc4e7e1a","savedPayload":{"position":{"x":14049.090639945272,"y":31371.552626988883},"targetPosition":{"x":13472.089084145033,"y":31038.238417054105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c16f8dd4-05f5-45db-8a47-713eb1116f72","savedPayload":{"position":{"x":13472.089084145033,"y":31038.238417054105},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Untested","exchanges":[{"type":"Crypto Exchange","name":"Bequant","code":"{ \n\"codeName\": \"bequant\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"BTC\"} \n}","assets":[],"id":"cc05f1f3-95bf-462d-8982-8d3c58e8d23d","savedPayload":{"position":{"x":13093.18639070419,"y":30685.472563031715},"targetPosition":{"x":12855.66263889202,"y":31162.16911834762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[{"type":"Market","name":"New Market","code":"{ \n\"codeName\": \"Write here the name of the market as it is defined at the CCXT library.\"\n}","baseAsset":{"type":"Market Base Asset","name":"","id":"0a2cf9d2-5dd8-431f-9b70-d752caf3a966","savedPayload":{"position":{"x":15087.887086581479,"y":29441.827903984344},"targetPosition":{"x":14875.782728617625,"y":30485.686273416068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Market Quoted Asset","name":"","id":"b0237d1f-bbac-4e94-9fe1-99693e47999b","savedPayload":{"position":{"x":15673.738415516575,"y":31191.303220382015},"targetPosition":{"x":14875.782728617625,"y":30485.686273416068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"superActions":[],"id":"88e751fd-2d4a-4351-9c87-ff79f8a0d3b7","savedPayload":{"position":{"x":14875.782728617625,"y":30485.686273416068},"targetPosition":{"x":13865.722683754822,"y":30823.927695881845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dc316aad-4ea0-411a-9a3f-3f0821acf91b","savedPayload":{"position":{"x":13865.722683754822,"y":30823.927695881845},"targetPosition":{"x":12855.66263889202,"y":31162.16911834762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"647664ab-e32c-4879-aa35-18caea0d096e","savedPayload":{"position":{"x":13554.384134572667,"y":31252.658144712783},"targetPosition":{"x":13332.359194207926,"y":31399.692870159794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"358369ac-eb7b-4e4a-a732-16c55e840eec","savedPayload":{"position":{"x":13365.00586879435,"y":31931.286072865987},"targetPosition":{"x":13348.682531501137,"y":31665.48947151289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"3fcc7cc4-5445-41bb-b00f-1a8eb4f458eb","savedPayload":{"position":{"x":13348.682531501137,"y":31665.48947151289},"targetPosition":{"x":13332.359194207926,"y":31399.692870159794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"58b6d558-0dd5-4c19-b106-a23e47d8fc40","savedPayload":{"position":{"x":13332.359194207926,"y":31399.692870159794},"targetPosition":{"x":13094.010916549973,"y":31280.930994253707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3997897b-821b-4b9e-8056-647227738305","savedPayload":{"position":{"x":13094.010916549973,"y":31280.930994253707},"targetPosition":{"x":12855.66263889202,"y":31162.16911834762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4f8afd83-39cb-40e4-a7d3-7db8f553511a","savedPayload":{"position":{"x":12939.308626374805,"y":31046.595401486727},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bibox","code":"{ \n\"codeName\": \"bibox\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"BTC\"} \n}","assets":[],"id":"17b31081-51c7-4ba4-aa9c-b7a1916dfbde","savedPayload":{"position":{"x":13185.487631741924,"y":30848.262303776402},"targetPosition":{"x":12890.09090495099,"y":31291.43034450834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[{"type":"Market","name":"New Market","code":"{ \n\"codeName\": \"Write here the name of the market as it is defined at the CCXT library.\"\n}","baseAsset":{"type":"Market Base Asset","name":"","id":"c7bae942-f7bf-4972-a3db-2ce05806fc2c","savedPayload":{"position":{"x":15320.329523367385,"y":29864.426442531545},"targetPosition":{"x":14979.067526794537,"y":30873.469951898227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Market Quoted Asset","name":"","id":"e30b2409-5a87-400f-8924-0b88f39a614b","savedPayload":{"position":{"x":15682.293841143462,"y":31673.533264959853},"targetPosition":{"x":14979.067526794537,"y":30873.469951898227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"superActions":[],"id":"026fcfa1-76ac-49a1-99f5-a424a8368a27","savedPayload":{"position":{"x":14979.067526794537,"y":30873.469951898227},"targetPosition":{"x":13934.579215872764,"y":31082.450148203283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6466f001-a903-4397-8868-2f1687b7882f","savedPayload":{"position":{"x":13934.579215872764,"y":31082.450148203283},"targetPosition":{"x":12890.09090495099,"y":31291.43034450834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"1f109135-1209-46d9-8e8e-62bb419c8ed3","savedPayload":{"position":{"x":13571.96149066377,"y":31468.77886228739},"targetPosition":{"x":13333.258945682926,"y":31586.82707129927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"006e65c0-aa64-4413-887b-2ca64c29ce49","savedPayload":{"position":{"x":13299.021896453174,"y":32118.320216113967},"targetPosition":{"x":13316.14042106805,"y":31852.57364370662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"b42fa1e0-34a7-426f-b6cc-2e5a06c327e2","savedPayload":{"position":{"x":13316.14042106805,"y":31852.57364370662},"targetPosition":{"x":13333.258945682926,"y":31586.82707129927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2bd7beba-2468-4c20-98c5-787e5fc64b7c","savedPayload":{"position":{"x":13333.258945682926,"y":31586.82707129927},"targetPosition":{"x":13111.674925316958,"y":31439.128707903805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"62a8c01c-b5f9-408f-b2f3-87365da618b7","savedPayload":{"position":{"x":13111.674925316958,"y":31439.128707903805},"targetPosition":{"x":12890.09090495099,"y":31291.43034450834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2ea5ceab-359a-414d-ad7f-37e8414ca728","savedPayload":{"position":{"x":13065.472804659335,"y":31071.079620467193},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMart","code":"{ \n\"codeName\": \"bitmart\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"BTC\"} \n}","assets":[],"id":"84d13c55-313b-4864-90bb-2c5b9a1555e6","savedPayload":{"position":{"x":13256.658085326404,"y":31021.336811793644},"targetPosition":{"x":12908.046966399652,"y":31423.98731320351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[{"type":"Market","name":"New Market","code":"{ \n\"codeName\": \"Write here the name of the market as it is defined at the CCXT library.\"\n}","baseAsset":{"type":"Market Base Asset","name":"","id":"fa0e5126-ac5b-47fc-899b-4d7f224bdcf9","savedPayload":{"position":{"x":15497.973440776377,"y":30312.825427598178},"targetPosition":{"x":15032.935711140522,"y":31271.140857983733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Market Quoted Asset","name":"","id":"956c3984-4b23-43b6-9929-ffd66397ab26","savedPayload":{"position":{"x":15630.342353875103,"y":32153.0330607594},"targetPosition":{"x":15032.935711140522,"y":31271.140857983733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"superActions":[],"id":"32036092-2868-49bd-8246-135051e76ac3","savedPayload":{"position":{"x":15032.935711140522,"y":31271.140857983733},"targetPosition":{"x":13970.491338770087,"y":31347.56408559362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"003b0a9a-0129-4a48-b3e2-05d4fce01527","savedPayload":{"position":{"x":13970.491338770087,"y":31347.56408559362},"targetPosition":{"x":12908.046966399652,"y":31423.98731320351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"12cf8b72-3cee-42f9-830f-901ad15220f7","savedPayload":{"position":{"x":13562.313135678127,"y":31685.39843032821},"targetPosition":{"x":13310.697467809518,"y":31772.598432130264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"eef1e31a-2013-428b-ac07-55c17d638284","savedPayload":{"position":{"x":13210.116633482165,"y":32295.60955466113},"targetPosition":{"x":13260.407050645841,"y":32034.103993395696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"a0398dce-4873-4f9a-b99a-c5842f2f7eb8","savedPayload":{"position":{"x":13260.407050645841,"y":32034.103993395696},"targetPosition":{"x":13310.697467809518,"y":31772.598432130264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b099ab31-1480-4aeb-bc8c-7f71a220a242","savedPayload":{"position":{"x":13310.697467809518,"y":31772.598432130264},"targetPosition":{"x":13109.372217104585,"y":31598.292872666887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fa8632e1-d8d6-46ac-9a06-b5aa6a0ada07","savedPayload":{"position":{"x":13109.372217104585,"y":31598.292872666887},"targetPosition":{"x":12908.046966399652,"y":31423.98731320351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"875a00bb-b086-41ae-bbff-dd1fdd7cab87","savedPayload":{"position":{"x":13190.140398799513,"y":31111.687160795107},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMax","code":"{ \n\"codeName\": \"bitmax\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"BTC\"} \n}","assets":[],"id":"85beb7ae-1569-43aa-9993-1f5e0714d4ca","savedPayload":{"position":{"x":13305.575350889432,"y":31201.966598702296},"targetPosition":{"x":12909.247645422525,"y":31557.74952185111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[{"type":"Market","name":"New Market","code":"{ \n\"codeName\": \"Write here the name of the market as it is defined at the CCXT library.\"\n}","baseAsset":{"type":"Market Base Asset","name":"","id":"1361c607-fc61-49cf-b412-65a442476471","savedPayload":{"position":{"x":15618.017288111569,"y":30779.95333932918},"targetPosition":{"x":15036.537748209143,"y":31672.427483926534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Market Quoted Asset","name":"","id":"5f56ebcf-8a2c-4e75-ba53-4ae915ca4cc8","savedPayload":{"position":{"x":15518.703259700025,"y":32622.240609561602},"targetPosition":{"x":15036.537748209143,"y":31672.427483926534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"superActions":[],"id":"1098cef6-7410-49a3-b711-81bd7894fc6a","savedPayload":{"position":{"x":15036.537748209143,"y":31672.427483926534},"targetPosition":{"x":13972.892696815834,"y":31615.088502888822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4fc5a028-1c22-477b-b1a0-4081fa2339b3","savedPayload":{"position":{"x":13972.892696815834,"y":31615.088502888822},"targetPosition":{"x":12909.247645422525,"y":31557.74952185111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"eff331cd-b4b1-4887-8f56-b289f773de88","savedPayload":{"position":{"x":13525.591229937512,"y":31899.100628844964},"targetPosition":{"x":13265.03056857134,"y":31954.07722731802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"e6457ed0-2d3c-433a-bd66-b04c8d90ba5b","savedPayload":{"position":{"x":13099.692168987807,"y":32460.35812973103},"targetPosition":{"x":13182.361368779573,"y":32207.217678524525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"1e42fbef-b13c-4234-999e-d8a6993d7e2a","savedPayload":{"position":{"x":13182.361368779573,"y":32207.217678524525},"targetPosition":{"x":13265.03056857134,"y":31954.07722731802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f61ef8f3-2e44-4753-b1c4-1a7958ff7b83","savedPayload":{"position":{"x":13265.03056857134,"y":31954.07722731802},"targetPosition":{"x":13087.139106996932,"y":31755.913374584565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2e0deaae-0d22-4ff2-862e-e28292a2e20b","savedPayload":{"position":{"x":13087.139106996932,"y":31755.913374584565},"targetPosition":{"x":12909.247645422525,"y":31557.74952185111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"eecf368e-46ae-40ea-8538-c1e2afa74207","savedPayload":{"position":{"x":13308.81782861436,"y":31167.70301079564},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Buda","code":"{ \n\"codeName\": \"buda\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"BTC\"} \n}","assets":[],"id":"9a8ec6a1-db4d-4697-86ac-accf01664a29","savedPayload":{"position":{"x":13331.467973931329,"y":31387.303024859808},"targetPosition":{"x":12893.674006594174,"y":31690.607460515097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[{"type":"Market","name":"New Market","code":"{ \n\"codeName\": \"Write here the name of the market as it is defined at the CCXT library.\"\n}","baseAsset":{"type":"Market Base Asset","name":"","id":"1a232899-1d77-4470-9db9-1344a8c8c512","savedPayload":{"position":{"x":15678.567902189789,"y":31258.44329150785},"targetPosition":{"x":14989.816831724089,"y":32071.001299918495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Market Quoted Asset","name":"","id":"ae5aca83-1664-4c8f-91cd-1874b933858e","savedPayload":{"position":{"x":15349.137173823347,"y":33073.75622803084},"targetPosition":{"x":14989.816831724089,"y":32071.001299918495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"superActions":[],"id":"0b765fac-5357-47da-b59d-06c14430d976","savedPayload":{"position":{"x":14989.816831724089,"y":32071.001299918495},"targetPosition":{"x":13941.745419159131,"y":31880.804380216796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"689e1b57-5dab-4845-968e-1fe7f60241f9","savedPayload":{"position":{"x":13941.745419159131,"y":31880.804380216796},"targetPosition":{"x":12893.674006594174,"y":31690.607460515097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"765e34ed-b0ee-444f-b49f-247d50f51496","savedPayload":{"position":{"x":13462.37489983206,"y":32106.51524650755},"targetPosition":{"x":13196.978442249463,"y":32128.401427852255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"875df6bf-362f-48fd-9994-f31dc6e095df","savedPayload":{"position":{"x":12969.489962739557,"y":32609.967757878814},"targetPosition":{"x":13083.23420249451,"y":32369.184592865535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"02cbdcb5-fa36-41c7-b9fb-03b47b0856dd","savedPayload":{"position":{"x":13083.23420249451,"y":32369.184592865535},"targetPosition":{"x":13196.978442249463,"y":32128.401427852255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3d555a40-5268-48db-bc65-aa61d02d6b3d","savedPayload":{"position":{"x":13196.978442249463,"y":32128.401427852255},"targetPosition":{"x":13045.326224421819,"y":31909.504444183676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"47fcdb62-277d-4656-8e2c-21ed64b8a692","savedPayload":{"position":{"x":13045.326224421819,"y":31909.504444183676},"targetPosition":{"x":12893.674006594174,"y":31690.607460515097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f32b5dec-b374-4c15-89dc-842a1cb0aa78","savedPayload":{"position":{"x":13419.640726497379,"y":31238.268398172757},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BW","code":"{ \n\"codeName\": \"bw\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"BTC\"} \n}","assets":[],"id":"c6d6acf9-82c5-4c73-9e71-b90cc70debda","savedPayload":{"position":{"x":13654.535455126086,"y":31643.446681044537},"targetPosition":{"x":13181.473953658066,"y":31889.314383056466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[{"type":"Market","name":"New Market","code":"{ \n\"codeName\": \"Write here the name of the market as it is defined at the CCXT library.\"\n}","baseAsset":{"type":"Market Base Asset","name":"","id":"ea88c83a-73c1-4ddf-9d71-641b502199ab","savedPayload":{"position":{"x":15991.251444678477,"y":31809.343261824106},"targetPosition":{"x":15207.661586027161,"y":32527.476437784833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Market Quoted Asset","name":"","id":"a28e801a-8c77-4b4e-864a-a73fc58af872","savedPayload":{"position":{"x":15438.00715392003,"y":33565.18784956585},"targetPosition":{"x":15207.661586027161,"y":32527.476437784833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"superActions":[],"id":"e2ccad9a-97c9-42cf-b9b6-774028adec04","savedPayload":{"position":{"x":15207.661586027161,"y":32527.476437784833},"targetPosition":{"x":14195.813160385382,"y":32208.78387278686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8ccd7fdd-65a6-46ca-88e5-f3e3070e9447","savedPayload":{"position":{"x":14195.813160385382,"y":32208.78387278686},"targetPosition":{"x":13181.473953658066,"y":31889.314383056466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"27351cd5-5e76-4005-b8da-eecb543035d8","savedPayload":{"position":{"x":13740.986780055742,"y":32461.415272910424},"targetPosition":{"x":13474.474369396348,"y":32449.52381304816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"6f1ec12b-0a4f-4d35-8358-785e6755cb08","savedPayload":{"position":{"x":13189.554795789967,"y":32899.69693385258},"targetPosition":{"x":13332.225311205095,"y":32674.536885606623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"836d13ab-6e84-44db-aaaa-b50cca0a00c9","savedPayload":{"position":{"x":13332.225311205095,"y":32674.536885606623},"targetPosition":{"x":13474.474369396348,"y":32449.52381304816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1591e8ec-5111-4b41-8a8a-5b79550307eb","savedPayload":{"position":{"x":13474.474369396348,"y":32449.52381304816},"targetPosition":{"x":13350.964302316836,"y":32213.074583657977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5d951204-ac35-42ac-9c7c-e09ba80198ba","savedPayload":{"position":{"x":13350.964302316836,"y":32213.074583657977},"targetPosition":{"x":13181.473953658066,"y":31889.314383056466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ae2e83bf-a9a0-4c78-8a1b-81882184d95a","savedPayload":{"position":{"x":13520.979687232926,"y":31322.061605934025},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ByteTrade","code":"{ \n\"codeName\": \"bytetrade\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"BTC\"} \n}","assets":[],"id":"5cd56ed0-ce08-4fe7-ab9c-0b5e5f30e186","savedPayload":{"position":{"x":13312.915476086393,"y":31760.376199133683},"targetPosition":{"x":12813.446865400214,"y":31945.276835866487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[{"type":"Market","name":"New Market","code":"{ \n\"codeName\": \"Write here the name of the market as it is defined at the CCXT library.\"\n}","baseAsset":{"type":"Market Base Asset","name":"","id":"aa134e56-6e18-4060-8bb4-c4ef13ac4ad7","savedPayload":{"position":{"x":15618.323056631147,"y":32219.264847584687},"targetPosition":{"x":14749.135408142209,"y":32835.00942597267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Market Quoted Asset","name":"","id":"0c37d42f-406a-4f24-a274-563324fdc794","savedPayload":{"position":{"x":14847.79203102427,"y":33895.620299413735},"targetPosition":{"x":14749.135408142209,"y":32835.00942597267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"superActions":[],"id":"35a24d78-b4d2-4fcf-a015-4504c08c5ee6","savedPayload":{"position":{"x":14749.135408142209,"y":32835.00942597267},"targetPosition":{"x":13781.291136771211,"y":32390.143130919576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f74ec571-3e5a-451b-9cde-9185af1d92d0","savedPayload":{"position":{"x":13781.291136771211,"y":32390.143130919576},"targetPosition":{"x":12813.446865400214,"y":31945.276835866487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"da372a69-c8d9-4730-81f5-b4512e708a85","savedPayload":{"position":{"x":13260.848913939795,"y":32489.548274930945},"targetPosition":{"x":12998.347502133018,"y":32444.745446552664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"44ac1327-da0d-4b6c-92ea-2d28511a4f04","savedPayload":{"position":{"x":12658.24531525227,"y":32854.608400482284},"targetPosition":{"x":12828.296408692644,"y":32649.676923517472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"1c0ea77c-a646-41ac-b918-c41acb67db07","savedPayload":{"position":{"x":12828.296408692644,"y":32649.676923517472},"targetPosition":{"x":12998.347502133018,"y":32444.745446552664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45cfee4b-5dcb-40b9-bc65-2b4bcf8b4dfd","savedPayload":{"position":{"x":12998.347502133018,"y":32444.745446552664},"targetPosition":{"x":12905.897183766616,"y":32195.011141209576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"07d280a1-3950-43e3-ae20-85c9f7533368","savedPayload":{"position":{"x":12905.897183766616,"y":32195.011141209576},"targetPosition":{"x":12813.446865400214,"y":31945.276835866487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0165e585-afac-4822-b64c-e457e6d39d4c","savedPayload":{"position":{"x":13610.998626733843,"y":31417.707079739994},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CEX.IO","code":"{ \n\"codeName\": \"cex\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"BTC\"} \n}","assets":[],"id":"8340b7d5-ea6a-48d6-a3d1-99dac083048e","savedPayload":{"position":{"x":13268.762939173304,"y":31942.22936042863},"targetPosition":{"x":12750.058592976606,"y":32063.071984372487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[{"type":"Market","name":"New Market","code":"{ \n\"codeName\": \"Write here the name of the market as it is defined at the CCXT library.\"\n}","baseAsset":{"type":"Market Base Asset","name":"","id":"cff92f1b-401b-435f-885f-90821c27a9eb","savedPayload":{"position":{"x":15498.477694197274,"y":32686.44372157654},"targetPosition":{"x":14558.970590871384,"y":33188.394871490666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Market Quoted Asset","name":"","id":"c611d3f1-2be3-4ff1-944f-8afa7ad1239b","savedPayload":{"position":{"x":14523.919486492883,"y":34253.007464963885},"targetPosition":{"x":14558.970590871384,"y":33188.394871490666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"superActions":[],"id":"70e4c0fe-8db3-431a-add0-0fe79e3c2819","savedPayload":{"position":{"x":14558.970590871384,"y":33188.394871490666},"targetPosition":{"x":13654.514591923995,"y":32625.733427931576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ede9c352-98aa-4931-8a5f-44c50b3b5acc","savedPayload":{"position":{"x":13654.514591923995,"y":32625.733427931576},"targetPosition":{"x":12750.058592976606,"y":32063.071984372487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"2a52ac7e-11f8-42c2-bad1-03d852d9824c","savedPayload":{"position":{"x":13125.717443336294,"y":32659.126026020684},"targetPosition":{"x":12870.901216920462,"y":32581.776330569184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"75ec93d9-c2c2-4204-8931-5b9dd5e30493","savedPayload":{"position":{"x":12482.111388032648,"y":32945.78128586288},"targetPosition":{"x":12676.506302476555,"y":32763.778808216033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"532698ff-1cdd-4b25-b098-6ec314e05f09","savedPayload":{"position":{"x":12676.506302476555,"y":32763.778808216033},"targetPosition":{"x":12870.901216920462,"y":32581.776330569184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c6ef9e48-71c2-4d01-a8d2-d7f4a857dde8","savedPayload":{"position":{"x":12870.901216920462,"y":32581.776330569184},"targetPosition":{"x":12810.479904948534,"y":32322.424157470836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0c70240c-33c0-459b-a6c7-3d24c84f0bff","savedPayload":{"position":{"x":12810.479904948534,"y":32322.424157470836},"targetPosition":{"x":12750.058592976606,"y":32063.071984372487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"93b9fd6d-94d7-4cdb-b713-6faf9c0c700b","savedPayload":{"position":{"x":13688.2193610141,"y":31523.880580703797},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"COBINHOOD","code":"{ \n\"codeName\": \"cobinhood\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"BTC\"} \n}","assets":[],"id":"21f5d3ee-09fb-4d1f-a094-40a5d03bc2d6","savedPayload":{"position":{"x":13202.16631346251,"y":32117.114775008482},"targetPosition":{"x":12672.406509153774,"y":32171.993625795905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[{"type":"Market","name":"New Market","code":"{ \n\"codeName\": \"Write here the name of the market as it is defined at the CCXT library.\"\n}","baseAsset":{"type":"Market Base Asset","name":"","id":"b8603b66-f1c6-428f-b75b-d733b1d61ceb","savedPayload":{"position":{"x":15321.024309311942,"y":33134.91814380587},"targetPosition":{"x":14326.01433940289,"y":33515.15979576092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Market Quoted Asset","name":"","id":"157e0798-3a4f-4b53-98b6-77099399d428","savedPayload":{"position":{"x":14157.808284618392,"y":34566.98453269847},"targetPosition":{"x":14326.01433940289,"y":33515.15979576092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"superActions":[],"id":"b40915c4-61c0-4dfb-841a-d75e58f76569","savedPayload":{"position":{"x":14326.01433940289,"y":33515.15979576092},"targetPosition":{"x":13499.210424278332,"y":32843.57671077841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b4ca043d-166d-486c-91d1-9f2306adae95","savedPayload":{"position":{"x":13499.210424278332,"y":32843.57671077841},"targetPosition":{"x":12672.406509153774,"y":32171.993625795905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"397a635b-c896-4562-a670-ea07bd783102","savedPayload":{"position":{"x":12970.397796855674,"y":32810.43014172562},"targetPosition":{"x":12727.285359941197,"y":32701.75343010464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"187f0532-98ce-4e98-97f3-57bf8bd7c8d5","savedPayload":{"position":{"x":12295.939336899672,"y":33014.15981117141},"targetPosition":{"x":12511.612348420435,"y":32857.956620638026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"df6971e2-268f-4f35-8342-0fbe0053ae11","savedPayload":{"position":{"x":12511.612348420435,"y":32857.956620638026},"targetPosition":{"x":12727.285359941197,"y":32701.75343010464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"258a62b1-a209-454f-b255-7347868aff03","savedPayload":{"position":{"x":12727.285359941197,"y":32701.75343010464},"targetPosition":{"x":12699.845934547486,"y":32436.873527950273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5d33c326-ff20-4697-b7ec-9ed5cb793149","savedPayload":{"position":{"x":12699.845934547486,"y":32436.873527950273},"targetPosition":{"x":12672.406509153774,"y":32171.993625795905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1e6aca88-f82f-4587-8f61-cc59c2b73428","savedPayload":{"position":{"x":13751.486130554698,"y":31638.92838382216},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"COSS","code":"{ \n\"codeName\": \"coss\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"BTC\"} \n}","assets":[],"id":"d036ba74-c041-4d9c-834c-4cfec29c9105","savedPayload":{"position":{"x":11068.559135176756,"y":31816.12207710078},"targetPosition":{"x":12581.715233680708,"y":32270.32400078486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[{"type":"Market","name":"New Market","code":"{ \n\"codeName\": \"Write here the name of the market as it is defined at the CCXT library.\"\n}","baseAsset":{"type":"Market Base Asset","name":"","id":"01043ce2-e549-4fc2-8dbb-a80c27593ea1","savedPayload":{"position":{"x":15088.761447860299,"y":33557.61540472851},"targetPosition":{"x":14053.940512983692,"y":33810.15092072779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Market Quoted Asset","name":"","id":"ac2bfe20-b843-4816-a384-ff85a1c3525e","savedPayload":{"position":{"x":13755.232217758577,"y":34832.599896698535},"targetPosition":{"x":14053.940512983692,"y":33810.15092072779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"superActions":[],"id":"525bb43d-32dd-4043-b467-6f61e19bf0b2","savedPayload":{"position":{"x":14053.940512983692,"y":33810.15092072779},"targetPosition":{"x":13317.8278733322,"y":33040.237460756325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3dd1e27a-a0ba-4475-89ef-ef11a56fdc3d","savedPayload":{"position":{"x":13317.8278733322,"y":33040.237460756325},"targetPosition":{"x":12581.715233680708,"y":32270.32400078486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"dd910bc4-a6fe-40e4-8ace-228a7783a4eb","savedPayload":{"position":{"x":12797.339458106397,"y":32941.0744657564},"targetPosition":{"x":12569.76483905175,"y":32802.78463462852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"5c706e00-36cd-486b-8645-23e41238fbd1","savedPayload":{"position":{"x":12102.665206313497,"y":33058.665606216426},"targetPosition":{"x":12336.215022682623,"y":32930.725120422474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"9b7f4495-b3a0-45fc-862b-e8bd9902954a","savedPayload":{"position":{"x":12336.215022682623,"y":32930.725120422474},"targetPosition":{"x":12569.76483905175,"y":32802.78463462852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c1d1659e-715e-4eac-99e9-d0bdb2682c49","savedPayload":{"position":{"x":12569.76483905175,"y":32802.78463462852},"targetPosition":{"x":12575.74003636623,"y":32536.55431770669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bc4cf484-fb6c-421d-9e94-a6eb85239ae5","savedPayload":{"position":{"x":12575.74003636623,"y":32536.55431770669},"targetPosition":{"x":12581.715233680708,"y":32270.32400078486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"43e86446-f8e8-42f1-933a-400cb9d2973b","savedPayload":{"position":{"x":13799.821183019807,"y":31761.010166210872},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CREX24","code":"{ \n\"codeName\": \"crex24\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"BTC\"} \n}","assets":[],"id":"49d8202a-bc47-4da0-b698-3b9808ebf9ba","savedPayload":{"position":{"x":13006.179263254267,"y":32435.103555769285},"targetPosition":{"x":12479.415022147965,"y":32356.51238058606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[{"type":"Market","name":"New Market","code":"{ \n\"codeName\": \"Write here the name of the market as it is defined at the CCXT library.\"\n}","baseAsset":{"type":"Market Base Asset","name":"","id":"2aff69bc-aa4a-477c-a56f-049dc4f8d377","savedPayload":{"position":{"x":14805.352033914556,"y":33947.86931603258},"targetPosition":{"x":13747.039878385462,"y":34068.71606013138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Market Quoted Asset","name":"","id":"d9cdd517-071f-464e-a58f-982a7d11ef6c","savedPayload":{"position":{"x":13322.540150975115,"y":35045.66464400285},"targetPosition":{"x":13747.039878385462,"y":34068.71606013138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"superActions":[],"id":"d5c7ee47-264a-425d-a3d8-e183d42944a4","savedPayload":{"position":{"x":13747.039878385462,"y":34068.71606013138},"targetPosition":{"x":13113.227450266713,"y":33212.61422035872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"917fefe5-83a5-49fe-976e-bbb359f010c2","savedPayload":{"position":{"x":13113.227450266713,"y":33212.61422035872},"targetPosition":{"x":12479.415022147965,"y":32356.51238058606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"ad7318b5-ff9b-4490-ab2f-2f3227a0161a","savedPayload":{"position":{"x":12609.271660470578,"y":33048.99865907991},"targetPosition":{"x":12400.82384696474,"y":32883.27662169236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"07a4c525-bb51-4a26-a971-e30aa72a44cd","savedPayload":{"position":{"x":11905.33704476984,"y":33078.59678802357},"targetPosition":{"x":12153.08044586729,"y":32980.936704857966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"1aead44e-b96f-4253-b04d-c1fad39e288f","savedPayload":{"position":{"x":12153.08044586729,"y":32980.936704857966},"targetPosition":{"x":12400.82384696474,"y":32883.27662169236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"387a1343-9429-4598-a2fa-f2c482b6c25d","savedPayload":{"position":{"x":12400.82384696474,"y":32883.27662169236},"targetPosition":{"x":12440.119434556353,"y":32619.894501139213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"022a8146-0321-41d1-a85e-ff2f7077ffcf","savedPayload":{"position":{"x":12440.119434556353,"y":32619.894501139213},"targetPosition":{"x":12479.415022147965,"y":32356.51238058606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7e61effa-1cf5-4aa6-950f-5d78fcc6f5ae","savedPayload":{"position":{"x":13832.476158926542,"y":31888.183749594755},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FTX","code":"{ \n\"codeName\": \"ftx\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"BTC\"} \n}","assets":[],"id":"8364622a-fa06-4c65-8ffe-ff529d8fde65","savedPayload":{"position":{"x":12879.879671615588,"y":32573.192048920355},"targetPosition":{"x":12367.119210002593,"y":32429.199522963594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[{"type":"Market","name":"New Market","code":"{ \n\"codeName\": \"Write here the name of the market as it is defined at the CCXT library.\"\n}","baseAsset":{"type":"Market Base Asset","name":"","id":"67ba02cc-46d2-4435-a36e-fecbd760ba71","savedPayload":{"position":{"x":14475.265603233194,"y":34299.525340410444},"targetPosition":{"x":13410.152441949345,"y":34286.777487263986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Market Quoted Asset","name":"","id":"d896ad36-1ed2-47ac-b342-758c4d8ca561","savedPayload":{"position":{"x":12866.555896638873,"y":35202.81861626772},"targetPosition":{"x":13410.152441949345,"y":34286.777487263986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"superActions":[],"id":"9b47f081-2d8c-442c-a58f-e980a843dc96","savedPayload":{"position":{"x":13410.152441949345,"y":34286.777487263986},"targetPosition":{"x":12888.635825975969,"y":33357.98850511379},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"226edef4-88bb-4201-b2ea-871bb1179844","savedPayload":{"position":{"x":12888.635825975969,"y":33357.98850511379},"targetPosition":{"x":12367.119210002593,"y":32429.199522963594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"3d9eec9e-b477-46df-9191-c4aa4cfda23f","savedPayload":{"position":{"x":12409.160345463186,"y":33132.50069269666},"targetPosition":{"x":12223.126684045832,"y":32941.95998457659},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"dd77791c-5696-4f29-9c58-6d429f6e992c","savedPayload":{"position":{"x":11707.066835254363,"y":33073.63902994944},"targetPosition":{"x":11965.096759650098,"y":33007.799507263015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"d11c876f-7b79-4fc3-9108-f6834aab8b28","savedPayload":{"position":{"x":11965.096759650098,"y":33007.799507263015},"targetPosition":{"x":12223.126684045832,"y":32941.95998457659},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6232f61b-8b1e-46f9-ab24-4304b4825223","savedPayload":{"position":{"x":12223.126684045832,"y":32941.95998457659},"targetPosition":{"x":12295.122947024212,"y":32685.579753770093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"66a9032a-6c45-42e4-929e-e0b3746bf43d","savedPayload":{"position":{"x":12295.122947024212,"y":32685.579753770093},"targetPosition":{"x":12367.119210002593,"y":32429.199522963594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0de24041-98f7-4c85-91cf-f51448623cd8","savedPayload":{"position":{"x":13848.933177693028,"y":32018.450924222267},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"HitBTC","code":"{ \n\"codeName\": \"hitbtc2\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"f2917f2f-7567-436c-a3aa-e8a557ce5353","savedPayload":{"position":{"x":13227.939055947993,"y":32901.485165418955},"targetPosition":{"x":12246.598769284397,"y":32487.239108260976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[{"type":"Market","name":"New Market","code":"{ \n\"codeName\": \"Write here the name of the market as it is defined at the CCXT library.\"\n}","baseAsset":{"type":"Market Base Asset","name":"","id":"78e7960c-4add-492d-9293-56ab756c71d2","savedPayload":{"position":{"x":14103.707816012156,"y":34607.037652288534},"targetPosition":{"x":13048.591119794759,"y":34460.89624315613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Market Quoted Asset","name":"","id":"37f34e36-8951-4dbe-9256-0fd791869436","savedPayload":{"position":{"x":12394.470598832544,"y":35301.583401471304},"targetPosition":{"x":13048.591119794759,"y":34460.89624315613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"superActions":[],"id":"273bdd7e-0435-40a7-9a2b-af13d1b1fbaa","savedPayload":{"position":{"x":13048.591119794759,"y":34460.89624315613},"targetPosition":{"x":12647.594944539578,"y":33474.06767570855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d65fb5c5-74e0-4835-84cc-1d9880355bc5","savedPayload":{"position":{"x":12647.594944539578,"y":33474.06767570855},"targetPosition":{"x":12246.598769284397,"y":32487.239108260976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"31f62a1f-a35c-4848-8158-402abea61ffe","savedPayload":{"position":{"x":12200.161388062605,"y":33190.263689654814},"targetPosition":{"x":12039.475740705408,"y":32977.90925159278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"b60172cb-ec04-4ea0-ade2-3def4a366327","savedPayload":{"position":{"x":11510.981417412024,"y":33043.8705188005},"targetPosition":{"x":11775.228579058716,"y":33010.88988519664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"15a1e5fa-5ccc-45c2-a02a-23b44a481c96","savedPayload":{"position":{"x":11775.228579058716,"y":33010.88988519664},"targetPosition":{"x":12039.475740705408,"y":32977.90925159278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"89802761-4b1d-4e07-8057-5346f78c7424","savedPayload":{"position":{"x":12039.475740705408,"y":32977.90925159278},"targetPosition":{"x":12143.037254994902,"y":32732.574179926876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"10ef4611-d685-4e3e-a475-f5144bc6a5b4","savedPayload":{"position":{"x":12143.037254994902,"y":32732.574179926876},"targetPosition":{"x":12246.598769284397,"y":32487.239108260976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c891d366-b897-48e4-906b-1fde21d42f3c","savedPayload":{"position":{"x":13848.92952005346,"y":32149.49682577581},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"KuCoin","code":"{ \n\"codeName\": \"kucoin\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"BTC\"} \n}","assets":[],"id":"668e3483-e241-4188-ad8b-ebeba12e9fcd","savedPayload":{"position":{"x":12580.596043117046,"y":32796.70289485812},"targetPosition":{"x":12119.754379338925,"y":32529.715817546894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[{"type":"Market","name":"New Market","code":"{ \n\"codeName\": \"Write here the name of the market as it is defined at the CCXT library.\"\n}","baseAsset":{"type":"Market Base Asset","name":"","id":"9be992d9-dea4-4d43-bc1b-cf37fabdc86a","savedPayload":{"position":{"x":13696.538360513776,"y":34865.55659880957},"targetPosition":{"x":12668.057949958342,"y":34588.326371013885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Market Quoted Asset","name":"","id":"40897ea6-f86f-46f8-a5dd-9754f1f50a2b","savedPayload":{"position":{"x":11913.729324712616,"y":35340.4014199517},"targetPosition":{"x":12668.057949958342,"y":34588.326371013885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"superActions":[],"id":"e08a9812-7eda-4fca-887c-1b5b915fa678","savedPayload":{"position":{"x":12668.057949958342,"y":34588.326371013885},"targetPosition":{"x":12393.906164648633,"y":33559.02109428039},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bdec657b-4430-475d-966b-c61e41f609b6","savedPayload":{"position":{"x":12393.906164648633,"y":33559.02109428039},"targetPosition":{"x":12119.754379338925,"y":32529.715817546894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"fd18e3bf-0ebe-407b-b099-8aa03065bdb4","savedPayload":{"position":{"x":11985.570826676958,"y":33221.376692986385},"targetPosition":{"x":11852.767302027694,"y":32990.55748132501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"c4d41062-b1fd-4923-9a6d-cd3cc43ba7e6","savedPayload":{"position":{"x":11320.17317541794,"y":32989.76072178039},"targetPosition":{"x":11586.470238722817,"y":32990.1591015527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"ba844ab9-160d-414d-bfba-d27be702a87c","savedPayload":{"position":{"x":11586.470238722817,"y":32990.1591015527},"targetPosition":{"x":11852.767302027694,"y":32990.55748132501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c55f9712-750a-496e-9230-03a56a3261ec","savedPayload":{"position":{"x":11852.767302027694,"y":32990.55748132501},"targetPosition":{"x":11986.26084068331,"y":32760.136649435954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"272a4277-2669-45e7-b3fc-b35f16c8d3f2","savedPayload":{"position":{"x":11986.26084068331,"y":32760.136649435954},"targetPosition":{"x":12119.754379338925,"y":32529.715817546894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ad559406-2fb4-4bbb-9e23-588df56c2fe8","savedPayload":{"position":{"x":13832.46520127102,"y":32279.770472257536},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"STEX","code":"{ \n\"codeName\": \"stex\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"BTC\"} \n}","assets":[],"id":"8041d4c6-94af-46e7-867f-cb55b3df6880","savedPayload":{"position":{"x":12412.331887861978,"y":32878.60034808548},"targetPosition":{"x":11988.586451968778,"y":32555.95976774156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[{"type":"Market","name":"New Market","code":"{ \n\"codeName\": \"Write here the name of the market as it is defined at the CCXT library.\"\n}","baseAsset":{"type":"Market Base Asset","name":"","id":"a0550541-f019-4f57-bb77-2d290e9ac10d","savedPayload":{"position":{"x":13260.178542282496,"y":35071.005181755194},"targetPosition":{"x":12274.554167847902,"y":34667.05822159788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Market Quoted Asset","name":"","id":"9802becb-85da-4c07-aeb8-d5173b18e064","savedPayload":{"position":{"x":11431.91365135287,"y":35318.660488368725},"targetPosition":{"x":12274.554167847902,"y":34667.05822159788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"superActions":[],"id":"a2bda03b-4135-49a7-b8c9-356fa46fd2ec","savedPayload":{"position":{"x":12274.554167847902,"y":34667.05822159788},"targetPosition":{"x":12131.57030990834,"y":33611.50899466972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"88bb679f-af18-4940-b8d2-704b099e52b0","savedPayload":{"position":{"x":12131.57030990834,"y":33611.50899466972},"targetPosition":{"x":11988.586451968778,"y":32555.95976774156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"a003acf8-abef-4bff-b89d-1a5f1a8c4bdc","savedPayload":{"position":{"x":11768.772882649486,"y":33225.349032042854},"targetPosition":{"x":11665.945871624855,"y":32979.70520363476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"aee6c55e-5350-4e32-884a-791d66d520b3","savedPayload":{"position":{"x":11137.651269231676,"y":32912.16298271177},"targetPosition":{"x":11401.798570428266,"y":32945.934093173266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"da627842-2ddc-4c35-8255-2284bd035d4c","savedPayload":{"position":{"x":11401.798570428266,"y":32945.934093173266},"targetPosition":{"x":11665.945871624855,"y":32979.70520363476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"82938a4b-3d0c-410b-b689-e7a6dfe362a4","savedPayload":{"position":{"x":11665.945871624855,"y":32979.70520363476},"targetPosition":{"x":11827.266161796817,"y":32767.83248568816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5e3f4247-f466-4e2b-abcf-47f11065863b","savedPayload":{"position":{"x":11827.266161796817,"y":32767.83248568816},"targetPosition":{"x":11988.586451968778,"y":32555.95976774156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"39519fcb-3c13-4b63-9952-7528e24d81a8","savedPayload":{"position":{"x":13799.800229186507,"y":32406.96073151442},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ACX","code":"{ \n\"codeName\": \"acx\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"9b72511c-ad94-4d0d-9f09-697e5fc960b5","savedPayload":{"position":{"x":12235.130073095495,"y":32938.762924761475},"targetPosition":{"x":11855.163583744508,"y":32565.557076073022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"d9534c6b-d3b2-49b5-b9d3-0148a1dcc436","savedPayload":{"position":{"x":11864.7245734598,"y":33630.70361133265},"targetPosition":{"x":11855.163583744508,"y":32565.557076073022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"77ae93eb-c65c-4bc9-a626-d67aef5ccbe4","savedPayload":{"position":{"x":11553.18658906632,"y":33202.11806066432},"targetPosition":{"x":11481.95773505606,"y":32945.52356542401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"0cc2fe28-92cc-4d5f-bdcd-048857bcdc75","savedPayload":{"position":{"x":10966.29417834709,"y":32812.30106429437},"targetPosition":{"x":11224.125956701575,"y":32878.91231485919},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"7357504d-139d-4013-83b6-163bb37c1840","savedPayload":{"position":{"x":11224.125956701575,"y":32878.91231485919},"targetPosition":{"x":11481.95773505606,"y":32945.52356542401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0c03d8f8-bb1c-4be0-afa3-ec591f41cd0f","savedPayload":{"position":{"x":11481.95773505606,"y":32945.52356542401},"targetPosition":{"x":11668.560659400284,"y":32755.540320748518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"976025c3-0ba4-4fc3-876b-03a821ac6a5b","savedPayload":{"position":{"x":11668.560659400284,"y":32755.540320748518},"targetPosition":{"x":11855.163583744508,"y":32565.557076073022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"43ad7b8f-7379-4256-87bf-830b81d5a10d","savedPayload":{"position":{"x":13751.449715623665,"y":32529.05788662567},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BigONE","code":"{ \n\"codeName\": \"bigone\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"3087e5de-ff2a-4cf6-80f1-52aa2d1dc0dd","savedPayload":{"position":{"x":12051.7851772917,"y":32976.24182511254},"targetPosition":{"x":11721.589933000969,"y":32558.356387255746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"ec8d6ff9-bbaf-4940-81e0-829cdd488eda","savedPayload":{"position":{"x":11597.577271972721,"y":33616.302233698094},"targetPosition":{"x":11721.589933000969,"y":32558.356387255746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"d4eb467e-278f-4690-8f22-9d9ba57ebe66","savedPayload":{"position":{"x":11342.211870562269,"y":33152.050145146946},"targetPosition":{"x":11303.704495144177,"y":32888.55163154648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"98214dc8-fa6c-469e-bdd0-6b943bcc1b35","savedPayload":{"position":{"x":10808.804306451197,"y":32691.749848636275},"targetPosition":{"x":11056.254400797687,"y":32790.150740091376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"370a4d7e-5520-4722-8abb-9bff76f25116","savedPayload":{"position":{"x":11056.254400797687,"y":32790.150740091376},"targetPosition":{"x":11303.704495144177,"y":32888.55163154648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c1a3cd3f-6d33-49cc-8005-352f09f8c763","savedPayload":{"position":{"x":11303.704495144177,"y":32888.55163154648},"targetPosition":{"x":11512.647214072573,"y":32723.454009401114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"954b1fee-7bad-4fa5-99e1-ad80f38adf00","savedPayload":{"position":{"x":11512.647214072573,"y":32723.454009401114},"targetPosition":{"x":11721.589933000969,"y":32558.356387255746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5618dfe2-8332-44e4-9788-12281ad393d8","savedPayload":{"position":{"x":13688.176200982278,"y":32644.135264583812},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Binance Jersey","code":"{ \n\"codeName\": \"binanceje\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"4ade0ad1-5ee1-4a42-b4c7-956e8c74acea","savedPayload":{"position":{"x":11865.188658982353,"y":32990.44598449133},"targetPosition":{"x":11589.97203600342,"y":32534.471260453854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"b684fea0-5542-436d-a925-5e048686438b","savedPayload":{"position":{"x":11334.341477977625,"y":33568.53198009431},"targetPosition":{"x":11589.97203600342,"y":32534.471260453854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"a0fab516-a8c3-49e9-a0c7-6bfd4b229812","savedPayload":{"position":{"x":11139.175924478337,"y":33075.934886427545},"targetPosition":{"x":11133.997311965946,"y":32809.68788343279},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"bc040c78-505c-476e-b32d-9dab5e0d84aa","savedPayload":{"position":{"x":10667.66536290369,"y":32552.4105004222},"targetPosition":{"x":10900.831337434818,"y":32681.049191927494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"a7992c2a-5871-487a-9040-4118a0dc314b","savedPayload":{"position":{"x":10900.831337434818,"y":32681.049191927494},"targetPosition":{"x":11133.997311965946,"y":32809.68788343279},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"24a81576-68ec-457d-853d-4fd6e943ef99","savedPayload":{"position":{"x":11133.997311965946,"y":32809.68788343279},"targetPosition":{"x":11361.984673984683,"y":32672.079571943323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8e98a7f9-e4c7-4bb4-ae11-98a88608aca7","savedPayload":{"position":{"x":11361.984673984683,"y":32672.079571943323},"targetPosition":{"x":11589.97203600342,"y":32534.471260453854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e07fcedb-0ad5-4645-9f27-ba5719281d53","savedPayload":{"position":{"x":13610.977507410387,"y":32750.377308600953},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Binance US","code":"{ \n\"codeName\": \"binanceus\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"dbedddba-d1e4-443e-b6af-3444e29e5bf1","savedPayload":{"position":{"x":11678.283256728546,"y":32981.151394819295},"targetPosition":{"x":11462.38558561223,"y":32494.278378385305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"6e8c09af-46bc-4918-80ca-ff74eedd4e27","savedPayload":{"position":{"x":11079.168577195243,"y":33488.14621595721},"targetPosition":{"x":11462.38558561223,"y":32494.278378385305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"2d8b994e-ff1d-4bda-8a27-24c3f5a3c33a","savedPayload":{"position":{"x":10947.280748972056,"y":32974.972667605194},"targetPosition":{"x":10975.51256917824,"y":32710.176049501617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"179c4481-1592-4389-ab29-7f5c68834654","savedPayload":{"position":{"x":10545.10319315662,"y":32396.480484410782},"targetPosition":{"x":10760.30788116743,"y":32553.3282669562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"14ae2263-2a44-4211-83e4-6e7b8c89bc8b","savedPayload":{"position":{"x":10760.30788116743,"y":32553.3282669562},"targetPosition":{"x":10975.51256917824,"y":32710.176049501617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"24c1009c-19e9-40f1-aa5c-19108230510c","savedPayload":{"position":{"x":10975.51256917824,"y":32710.176049501617},"targetPosition":{"x":11218.949077395235,"y":32602.22721394346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0cf78230-ed7c-4ae1-8c13-e8a6d6505549","savedPayload":{"position":{"x":11218.949077395235,"y":32602.22721394346},"targetPosition":{"x":11462.38558561223,"y":32494.278378385305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d4c25e40-6d00-47ae-bcf3-adce62a2a14d","savedPayload":{"position":{"x":13521.071028809642,"y":32846.10799689546},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitbank","code":"{ \n\"codeName\": \"bitbank\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"d0fee8f4-5cdf-41ce-b358-e9f43cc9da13","savedPayload":{"position":{"x":11494.016580375697,"y":32948.504637327875},"targetPosition":{"x":11340.84269636652,"y":32438.411606810376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"6376deac-7c50-43cc-9a22-0c0f45a6bad4","savedPayload":{"position":{"x":10836.082798703825,"y":33376.41267280735},"targetPosition":{"x":11340.84269636652,"y":32438.411606810376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"93fdf866-c8db-4375-ab51-5dce5bed7c67","savedPayload":{"position":{"x":10769.55264559379,"y":32850.75572318262},"targetPosition":{"x":10830.749665849025,"y":32591.585490819554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"23d0e4f7-cae1-4758-8c5e-87a066d309ba","savedPayload":{"position":{"x":10443.050675842,"y":32226.4189101026},"targetPosition":{"x":10636.900170845513,"y":32409.002200461076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"615f8caf-8eef-4102-abfb-abcb7f532979","savedPayload":{"position":{"x":10636.900170845513,"y":32409.002200461076},"targetPosition":{"x":10830.749665849025,"y":32591.585490819554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"145b421a-e62b-4ec0-9462-768f22b4ecbe","savedPayload":{"position":{"x":10830.749665849025,"y":32591.585490819554},"targetPosition":{"x":11085.796181107773,"y":32514.998548814965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"450d0a00-f710-43aa-a8ad-a0423dd0cfb6","savedPayload":{"position":{"x":11085.796181107773,"y":32514.998548814965},"targetPosition":{"x":11340.84269636652,"y":32438.411606810376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"db4b7c0f-fbd9-422b-bcf9-977c93b4a9bc","savedPayload":{"position":{"x":13419.874549925615,"y":32929.81720731314},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitBay","code":"{ \n\"codeName\": \"bitbay\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"35fdefed-4392-45b0-a6ce-f9e59d9663a1","savedPayload":{"position":{"x":11315.294625485469,"y":32893.02057088493},"targetPosition":{"x":11227.2601722359,"y":32367.751998089996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"32e8e40e-245f-48f5-a032-469989d4d52b","savedPayload":{"position":{"x":10608.917750442582,"y":33235.093455366594},"targetPosition":{"x":11227.2601722359,"y":32367.751998089996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"73320751-a49c-4bea-9ea7-ef54f1b2e43a","savedPayload":{"position":{"x":10608.79449270343,"y":32705.243028576966},"targetPosition":{"x":10701.991599440964,"y":32455.78645133957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"ab1587ef-a758-46e5-b395-243d9af1a84a","savedPayload":{"position":{"x":10363.117240121097,"y":32044.90775011434},"targetPosition":{"x":10532.55441978103,"y":32250.347100726955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"0dac7620-1285-49d9-b60b-4cece77bf9e3","savedPayload":{"position":{"x":10532.55441978103,"y":32250.347100726955},"targetPosition":{"x":10701.991599440964,"y":32455.78645133957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6be65887-30be-4558-b5e2-707d58cdd140","savedPayload":{"position":{"x":10701.991599440964,"y":32455.78645133957},"targetPosition":{"x":10964.625885838432,"y":32411.769224714782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3cbcccca-ea18-4914-baca-49bd224de756","savedPayload":{"position":{"x":10964.625885838432,"y":32411.769224714782},"targetPosition":{"x":11227.2601722359,"y":32367.751998089996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c2c1582f-2cc5-442e-bb42-e0379a45adc1","savedPayload":{"position":{"x":13308.983896675116,"y":33000.184494949506},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitfinex","code":"{ \n\"codeName\": \"bitfinex2\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"6c753543-ca13-416f-bc84-6726bdfac3c9","savedPayload":{"position":{"x":11144.9359440498,"y":32815.57421236286},"targetPosition":{"x":11123.429277476816,"y":32283.413896463695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"ea6392b0-ff81-41ce-b2c4-1261009a76a6","savedPayload":{"position":{"x":10401.255960924416,"y":33066.41725211399},"targetPosition":{"x":11123.429277476816,"y":32283.413896463695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"e38e2a17-1b6f-4467-9d1b-19e5d361bf9d","savedPayload":{"position":{"x":10467.541542404324,"y":32540.729405907237},"targetPosition":{"x":10591.268961577653,"y":32304.920563036678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"b51869e3-e7c4-4af2-807c-b7df817bb619","savedPayload":{"position":{"x":10306.563484025146,"y":31854.80954386854},"targetPosition":{"x":10448.9162228014,"y":32079.86505345261},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"c61bc35a-0ec4-4e32-9f4b-b4843ee9dce4","savedPayload":{"position":{"x":10448.9162228014,"y":32079.86505345261},"targetPosition":{"x":10591.268961577653,"y":32304.920563036678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cc3d9fd6-bb2c-4c61-88d8-4144a89aa217","savedPayload":{"position":{"x":10591.268961577653,"y":32304.920563036678},"targetPosition":{"x":10857.349119527235,"y":32294.167229750186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c563e7dd-cc8e-403a-b6c4-da5ca928d5b9","savedPayload":{"position":{"x":10857.349119527235,"y":32294.167229750186},"targetPosition":{"x":11123.429277476816,"y":32283.413896463695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4eb75dd1-9731-4f12-b3e8-683bbbf2e8b2","savedPayload":{"position":{"x":13190.147774055582,"y":33056.099891459715},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitforex","code":"{ \n\"codeName\": \"bitforex\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"1878696f-f6ce-4490-8e40-b3fdc81a3adc","savedPayload":{"position":{"x":10985.627194242275,"y":32717.386937099756},"targetPosition":{"x":11030.987487325194,"y":32186.727364175258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"ace29646-cd45-4535-9ac4-aae66ba0f2fe","savedPayload":{"position":{"x":10216.372380621171,"y":32873.04418753712},"targetPosition":{"x":11030.987487325194,"y":32186.727364175258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"11ab2c02-a5d8-4d41-bde3-9ca8862db366","savedPayload":{"position":{"x":10348.021438103113,"y":32359.809333278623},"targetPosition":{"x":10500.327914400696,"y":32141.367071092343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"639ca9e8-575d-4fb1-8e17-321d7ff352cb","savedPayload":{"position":{"x":10274.28129407136,"y":31659.12225363687},"targetPosition":{"x":10387.304604236027,"y":31900.244662364606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"a2c3c5ce-529c-4f47-b406-f77e41a2964e","savedPayload":{"position":{"x":10387.304604236027,"y":31900.244662364606},"targetPosition":{"x":10500.327914400696,"y":32141.367071092343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"22a853be-26a4-4cba-898c-9e344066343a","savedPayload":{"position":{"x":10500.327914400696,"y":32141.367071092343},"targetPosition":{"x":10765.657700862945,"y":32164.0472176338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c1b4ad64-3933-4e57-8f37-b47d7ae7fd14","savedPayload":{"position":{"x":10765.657700862945,"y":32164.0472176338},"targetPosition":{"x":11030.987487325194,"y":32186.727364175258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b76d1cba-a5ed-40eb-9118-5c126b45710d","savedPayload":{"position":{"x":13065.240190714641,"y":33096.681393038125},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitkk","code":"{ \n\"codeName\": \"bitkk\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"07552b63-5d51-40b3-b6e3-7ac517a10550","savedPayload":{"position":{"x":10839.880770213793,"y":32600.007217080754},"targetPosition":{"x":10951.39266403377,"y":32079.217205596604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"5b65cafe-f0f1-48f4-ba5c-68e7cde9b8f7","savedPayload":{"position":{"x":10057.182734038324,"y":32658.02387037981},"targetPosition":{"x":10951.39266403377,"y":32079.217205596604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"1d05bdf6-5801-4b99-9c0c-e46085f2f499","savedPayload":{"position":{"x":10252.119083242476,"y":32165.336028312868},"targetPosition":{"x":10430.60265254962,"y":31967.70531177663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"c82938b9-5716-40ae-973a-e1d9d6278f30","savedPayload":{"position":{"x":10266.779779679757,"y":31460.93198488418},"targetPosition":{"x":10348.691216114688,"y":31714.318648330405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"8fcbfb93-cd06-4653-8f00-f5b1651046a7","savedPayload":{"position":{"x":10348.691216114688,"y":31714.318648330405},"targetPosition":{"x":10430.60265254962,"y":31967.70531177663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6593d3cc-a76c-4e6e-a38c-71714469c396","savedPayload":{"position":{"x":10430.60265254962,"y":31967.70531177663},"targetPosition":{"x":10690.997658291695,"y":32023.461258686617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"94a2e279-0604-4e77-8738-6240373de493","savedPayload":{"position":{"x":10690.997658291695,"y":32023.461258686617},"targetPosition":{"x":10951.39266403377,"y":32079.217205596604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b191511e-0de0-4e11-aca9-8393d645641f","savedPayload":{"position":{"x":12936.230906123832,"y":33121.288858761734},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bit-Z","code":"{ \n\"codeName\": \"bitz\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"d033626d-60a5-45bf-bcf1-9c7db0f674c6","savedPayload":{"position":{"x":10709.995180135978,"y":32465.286200609804},"targetPosition":{"x":10885.900065513495,"y":31962.57892015198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"2ad1aea8-4754-4d51-8ad4-af9a1a7db7e5","savedPayload":{"position":{"x":9926.197536997774,"y":32424.747299490562},"targetPosition":{"x":10885.900065513495,"y":31962.57892015198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"d91abc57-a908-41c2-9672-481f74748554","savedPayload":{"position":{"x":10181.346915247856,"y":31960.376451202017},"targetPosition":{"x":10383.192785055671,"y":31786.674034774464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"16b4859e-0519-4ef0-9786-c8a838664a2d","savedPayload":{"position":{"x":10284.177244213479,"y":31263.36431654184},"targetPosition":{"x":10333.685014634575,"y":31525.01917565815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"0cfdae07-7772-435a-b3d4-1e1f3ccf6eb5","savedPayload":{"position":{"x":10333.685014634575,"y":31525.01917565815},"targetPosition":{"x":10383.192785055671,"y":31786.674034774464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9dcdac0d-18c4-4af0-b1a1-76c01d36f9f4","savedPayload":{"position":{"x":10383.192785055671,"y":31786.674034774464},"targetPosition":{"x":10634.546425284583,"y":31874.62647746322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bc2bf9bf-2b69-4d93-87f9-e8a2985eba91","savedPayload":{"position":{"x":10634.546425284583,"y":31874.62647746322},"targetPosition":{"x":10885.900065513495,"y":31962.57892015198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ebc44629-82ff-46d7-977f-b84daa7ecb63","savedPayload":{"position":{"x":12805.298487200831,"y":33129.534094868555},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC-Alpha","code":"{ \n\"codeName\": \"btcalpha\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"37084e77-50ee-45eb-be4b-96c9cf77d574","savedPayload":{"position":{"x":10598.018797354243,"y":32315.34851859508},"targetPosition":{"x":10835.542549166414,"y":31838.651963279175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"c538ee2c-863f-455b-a8d1-7dd6750e15de","savedPayload":{"position":{"x":9825.48250430361,"y":32176.893385744952},"targetPosition":{"x":10835.542549166414,"y":31838.651963279175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"35e9fdc4-618f-4216-99b5-d1265acc3d70","savedPayload":{"position":{"x":10136.821053485766,"y":31748.162936914014},"targetPosition":{"x":10358.845993850508,"y":31601.128211467003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"a97548c9-dc64-464f-8f13-00f66488edd9","savedPayload":{"position":{"x":10326.199319264084,"y":31069.53500876081},"targetPosition":{"x":10342.522656557296,"y":31335.331610113906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"96e381ff-8a4d-4d05-88ff-b1ffe003015b","savedPayload":{"position":{"x":10342.522656557296,"y":31335.331610113906},"targetPosition":{"x":10358.845993850508,"y":31601.128211467003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"efbb3b74-f3b8-4c92-8e96-163761cec8e5","savedPayload":{"position":{"x":10358.845993850508,"y":31601.128211467003},"targetPosition":{"x":10597.19427150846,"y":31719.89008737309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"18eb1550-10e5-4e5b-92c5-a6b1dba4e01a","savedPayload":{"position":{"x":10597.19427150846,"y":31719.89008737309},"targetPosition":{"x":10835.542549166414,"y":31838.651963279175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b66eeb46-4d63-4214-b54a-d4dc8f15a570","savedPayload":{"position":{"x":12674.342367520258,"y":33121.28558958715},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC Markets","code":"{ \n\"codeName\": \"btcmarkets\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"5aefd832-649f-4d2c-8455-adf07c6df8a3","savedPayload":{"position":{"x":10505.71755631651,"y":32152.55877785039},"targetPosition":{"x":10801.114283107443,"y":31709.390737118454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"773e5b99-a1eb-434a-8c6b-2934cd5efe85","savedPayload":{"position":{"x":9756.62597218567,"y":31918.37093342351},"targetPosition":{"x":10801.114283107443,"y":31709.390737118454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"f7c218f7-2b13-4d8a-bf64-321d580ce12a","savedPayload":{"position":{"x":10119.243697394662,"y":31532.042219339404},"targetPosition":{"x":10357.946242375507,"y":31413.994010327522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"5f7456dd-327e-4f9f-9a3c-45709c04f01b","savedPayload":{"position":{"x":10392.183291605259,"y":30882.500865512826},"targetPosition":{"x":10375.064766990383,"y":31148.247437920174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"e6db90ba-a33e-4a5f-a8a2-66817f3ac05d","savedPayload":{"position":{"x":10375.064766990383,"y":31148.247437920174},"targetPosition":{"x":10357.946242375507,"y":31413.994010327522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"52a97854-8a49-4112-8bf9-7808bcf4c0ae","savedPayload":{"position":{"x":10357.946242375507,"y":31413.994010327522},"targetPosition":{"x":10579.530262741475,"y":31561.692373722988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b214bac2-6b56-45d0-9f14-bd320b8066ad","savedPayload":{"position":{"x":10579.530262741475,"y":31561.692373722988},"targetPosition":{"x":10801.114283107443,"y":31709.390737118454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"06121640-476d-456c-a497-d44ec1e751f7","savedPayload":{"position":{"x":12545.334761911465,"y":33096.67554069976},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Coinbase Prime","code":"{ \n\"codeName\": \"coinbaseprime\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"f75ef76d-d822-4c97-9406-2f28f208b20d","savedPayload":{"position":{"x":10434.547102732029,"y":31979.484269833156},"targetPosition":{"x":10783.158221658781,"y":31576.833768423287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"62782c8c-c4eb-4370-b5b0-c994415dba2b","savedPayload":{"position":{"x":9720.713849288346,"y":31653.256996033175},"targetPosition":{"x":10783.158221658781,"y":31576.833768423287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"8386976a-560e-49e1-bb47-ac342d40ea3a","savedPayload":{"position":{"x":10128.892052380303,"y":31315.422651298588},"targetPosition":{"x":10380.507720248912,"y":31228.222649496533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"03ec8302-eba6-40b9-b479-12777542e720","savedPayload":{"position":{"x":10481.088554576265,"y":30705.211526965668},"targetPosition":{"x":10430.798137412588,"y":30966.7170882311},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"afc17757-468b-4e1c-b578-d20f64f4c70b","savedPayload":{"position":{"x":10430.798137412588,"y":30966.7170882311},"targetPosition":{"x":10380.507720248912,"y":31228.222649496533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3547e4b0-34b9-4653-801a-599e2a70ab5c","savedPayload":{"position":{"x":10380.507720248912,"y":31228.222649496533},"targetPosition":{"x":10581.832970953847,"y":31402.52820895991},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"af1cce33-ee0a-4268-901c-9b066af20cf3","savedPayload":{"position":{"x":10581.832970953847,"y":31402.52820895991},"targetPosition":{"x":10783.158221658781,"y":31576.833768423287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b56abd83-c213-401b-a50f-d61bb1e11f46","savedPayload":{"position":{"x":12420.427027900394,"y":33056.091286065726},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CoinEx","code":"{ \n\"codeName\": \"coinex\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"33c0aae0-28bc-4e68-a795-7a31bd143ac5","savedPayload":{"position":{"x":10385.629837169,"y":31798.8544829245},"targetPosition":{"x":10781.957542635908,"y":31443.071559775686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"512c878b-1698-4011-940d-de321a132dc5","savedPayload":{"position":{"x":9718.3124912426,"y":31385.732578737974},"targetPosition":{"x":10781.957542635908,"y":31443.071559775686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"4cadd3a6-670c-4bc3-9db8-dba41172d30d","savedPayload":{"position":{"x":10165.61395812092,"y":31101.720452781832},"targetPosition":{"x":10426.174619487094,"y":31046.743854308777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"82ef50d1-153a-437a-94f4-688386fb4b0f","savedPayload":{"position":{"x":10591.513019070626,"y":30540.462951895766},"targetPosition":{"x":10508.84381927886,"y":30793.603403102272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"a65190aa-120d-4343-bd52-5f6cd5f9e4dc","savedPayload":{"position":{"x":10508.84381927886,"y":30793.603403102272},"targetPosition":{"x":10426.174619487094,"y":31046.743854308777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"021753f1-0ad3-4574-9a4d-1b102d476c0f","savedPayload":{"position":{"x":10426.174619487094,"y":31046.743854308777},"targetPosition":{"x":10604.0660810615,"y":31244.90770704223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"303661e1-7c61-40f0-988e-37584ac42dfa","savedPayload":{"position":{"x":10604.0660810615,"y":31244.90770704223},"targetPosition":{"x":10781.957542635908,"y":31443.071559775686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5cb52740-c6a2-4b2b-8df8-b5c84b9dacee","savedPayload":{"position":{"x":12301.590273383581,"y":33000.17291263762},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DigiFinex","code":"{ \n\"codeName\": \"digifinex\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"e3e2e794-8ba3-435a-965e-f5b616fcc33c","savedPayload":{"position":{"x":10359.737214127104,"y":31613.51805676699},"targetPosition":{"x":10797.53118146426,"y":31310.2136211117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"b341fc76-5b95-449b-af41-1d96eb03f391","savedPayload":{"position":{"x":9749.459768899302,"y":31120.01670141},"targetPosition":{"x":10797.53118146426,"y":31310.2136211117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"0c974198-204e-4c77-97dd-d23e48febe3f","savedPayload":{"position":{"x":10228.830288226372,"y":30894.305835119252},"targetPosition":{"x":10494.22674580897,"y":30872.41965377455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"811da43d-fc27-4dbe-aff4-00b600464ba1","savedPayload":{"position":{"x":10721.715225318876,"y":30390.85332374799},"targetPosition":{"x":10607.970985563923,"y":30631.63648876127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"f704e8be-2d2b-4ad0-ba8c-641eed79aef0","savedPayload":{"position":{"x":10607.970985563923,"y":30631.63648876127},"targetPosition":{"x":10494.22674580897,"y":30872.41965377455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f2bac61c-7ea8-414f-97d6-ac6d7011b403","savedPayload":{"position":{"x":10494.22674580897,"y":30872.41965377455},"targetPosition":{"x":10645.878963636615,"y":31091.316637443124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8b7657e4-960a-4ce3-9ef9-87607b051779","savedPayload":{"position":{"x":10645.878963636615,"y":31091.316637443124},"targetPosition":{"x":10797.53118146426,"y":31310.2136211117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ae49639e-f6b8-4e5d-997f-20ab8d2cf74d","savedPayload":{"position":{"x":12190.698622980513,"y":32929.80232810788},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DSX","code":"{ \n\"codeName\": \"dsx\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"60c2f9bc-d4e3-4bb0-9029-65b23f794101","savedPayload":{"position":{"x":10357.277575739221,"y":31426.397857515734},"targetPosition":{"x":10829.633532556276,"y":31180.35520148954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"9ba8a2da-e478-43ca-9c24-e307dc217b90","savedPayload":{"position":{"x":9813.664471083335,"y":30860.29986216568},"targetPosition":{"x":10829.633532556276,"y":31180.35520148954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"336c1901-0efa-4e5b-b266-28bb7fbd9c19","savedPayload":{"position":{"x":10317.544083407294,"y":30696.44985073486},"targetPosition":{"x":10583.590876530081,"y":30707.999244672486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"07c9aeac-5cea-4d7d-91f5-ce053ea0746d","savedPayload":{"position":{"x":10869.64180674946,"y":30258.742075730675},"targetPosition":{"x":10726.61634163977,"y":30483.37066020158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"2c1d28c2-1ba4-4d7a-b8fa-38ddfa07fa40","savedPayload":{"position":{"x":10726.61634163977,"y":30483.37066020158},"targetPosition":{"x":10583.590876530081,"y":30707.999244672486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b9c9aad5-47ac-41ee-8f42-f02c96b5e396","savedPayload":{"position":{"x":10583.590876530081,"y":30707.999244672486},"targetPosition":{"x":10706.612204543178,"y":30944.177223081013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3d9665fa-3a8f-424a-a998-557050172a36","savedPayload":{"position":{"x":10706.612204543178,"y":30944.177223081013},"targetPosition":{"x":10829.633532556276,"y":31180.35520148954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a78c3281-a96d-4e9e-b006-6bfd94554e5f","savedPayload":{"position":{"x":12089.500767612197,"y":32846.08938556181},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoin","code":"{ \n\"codeName\": \"fcoin\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"6a4fcfe5-7829-41b4-94aa-ef03766717fc","savedPayload":{"position":{"x":10378.289711972038,"y":31240.444882493113},"targetPosition":{"x":10877.75832265822,"y":31055.54424576031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"583dff58-3e3b-4942-a7f3-1c7a2a278371","savedPayload":{"position":{"x":9909.914051287222,"y":30610.67795070722},"targetPosition":{"x":10877.75832265822,"y":31055.54424576031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"8d243b45-015d-469f-9989-1040e48a3289","savedPayload":{"position":{"x":10430.356274118638,"y":30511.27280669585},"targetPosition":{"x":10692.857685925415,"y":30556.075635074132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"608c1994-6256-4c40-8b22-8a12478732a9","savedPayload":{"position":{"x":11032.959872806166,"y":30146.212681144516},"targetPosition":{"x":10862.90877936579,"y":30351.144158109324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"62d7b3d9-3645-4340-b36a-1ba6c66fbcd8","savedPayload":{"position":{"x":10862.90877936579,"y":30351.144158109324},"targetPosition":{"x":10692.857685925415,"y":30556.075635074132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"459ac10c-ba83-409f-9a68-66fd2da10dbc","savedPayload":{"position":{"x":10692.857685925415,"y":30556.075635074132},"targetPosition":{"x":10785.308004291817,"y":30805.80994041722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d40863c3-a1c1-4d7a-b7b6-c52dd22ceb5d","savedPayload":{"position":{"x":10785.308004291817,"y":30805.80994041722},"targetPosition":{"x":10877.75832265822,"y":31055.54424576031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4adfd82b-f67d-4c47-94e9-33d867215f47","savedPayload":{"position":{"x":11999.592475258793,"y":32750.354393654903},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoinJP","code":"{ \n\"codeName\": \"fcoinjp\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"b83f1f0f-1b1e-4e17-ab3f-390f2e178c12","savedPayload":{"position":{"x":10422.442248885127,"y":31058.591721198165},"targetPosition":{"x":10941.146595081826,"y":30937.74909725431},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"d4be442c-d76c-4483-9a92-abdc8218ee0f","savedPayload":{"position":{"x":10036.690596134435,"y":30375.08765369522},"targetPosition":{"x":10941.146595081826,"y":30937.74909725431},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"0e2702fe-e84c-4f32-9083-62783cdc7fab","savedPayload":{"position":{"x":10565.487744722137,"y":30341.695055606113},"targetPosition":{"x":10820.30397113797,"y":30419.044751057612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"34d73432-f1ad-47ca-9bce-ff6165a701d7","savedPayload":{"position":{"x":11209.09380002578,"y":30055.039795763914},"targetPosition":{"x":11014.698885581874,"y":30237.042273410763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"597d3609-4cc0-4fa6-9572-40240c6e1263","savedPayload":{"position":{"x":11014.698885581874,"y":30237.042273410763},"targetPosition":{"x":10820.30397113797,"y":30419.044751057612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7388e5c9-54c6-438d-b983-8cbf30fabcd2","savedPayload":{"position":{"x":10820.30397113797,"y":30419.044751057612},"targetPosition":{"x":10880.725283109898,"y":30678.39692415596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e735aaf0-726f-46b5-995d-6400118d6f24","savedPayload":{"position":{"x":10880.725283109898,"y":30678.39692415596},"targetPosition":{"x":10941.146595081826,"y":30937.74909725431},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d4ef0262-ee7d-4cd0-afc0-d7e6ee5055e2","savedPayload":{"position":{"x":11922.391433760258,"y":32644.107310586453},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Gate.io","code":"{ \n\"codeName\": \"gateio\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"67bd6811-91d6-45a2-906c-7fa44cfa58f6","savedPayload":{"position":{"x":10489.038874595923,"y":30883.706306618315},"targetPosition":{"x":11018.798678904659,"y":30828.82745583089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"f9d61348-3c44-498c-bd9a-8e12cdc94a51","savedPayload":{"position":{"x":10191.994763780101,"y":30157.244370848384},"targetPosition":{"x":11018.798678904659,"y":30828.82745583089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"d86bff4a-b9db-4bad-a2e2-756e2726e5ac","savedPayload":{"position":{"x":10720.80739120276,"y":30190.390939901175},"targetPosition":{"x":10963.919828117236,"y":30299.067651522157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"2bc36bc8-de8b-4af2-a3d7-6fc790f7496f","savedPayload":{"position":{"x":11395.265851158762,"y":29986.661270455385},"targetPosition":{"x":11179.592839637999,"y":30142.86446098877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"5cbc280d-3dbe-4e85-a309-0e5300a9a42f","savedPayload":{"position":{"x":11179.592839637999,"y":30142.86446098877},"targetPosition":{"x":10963.919828117236,"y":30299.067651522157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"337fff20-8df4-4349-84c7-21912bb11aa7","savedPayload":{"position":{"x":10963.919828117236,"y":30299.067651522157},"targetPosition":{"x":10991.359253510947,"y":30563.947553676524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2e610a57-ebf3-46f7-a6b2-0e07d963565d","savedPayload":{"position":{"x":10991.359253510947,"y":30563.947553676524},"targetPosition":{"x":11018.798678904659,"y":30828.82745583089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a8fd9004-9bd6-4929-86ed-34c65c2220b4","savedPayload":{"position":{"x":11859.114886413736,"y":32529.02395523286},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Pro","code":"{ \n\"codeName\": \"huobipro\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"2d4a2cc6-e73d-43b3-b5b4-429ac2cb8ce0","savedPayload":{"position":{"x":10577.029320534062,"y":30718.546686212976},"targetPosition":{"x":11109.489954377723,"y":30730.497080841935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"7d8a1d59-e7e4-4c47-aeee-8bd98805cf70","savedPayload":{"position":{"x":10373.377314726229,"y":29960.58362087047},"targetPosition":{"x":11109.489954377723,"y":30730.497080841935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"b9685831-c75b-42ef-99cf-7f917f721e11","savedPayload":{"position":{"x":10893.865729952035,"y":30059.746615870397},"targetPosition":{"x":11121.440349006682,"y":30198.036446998278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"e872876b-ad32-4755-8bd6-96b837fc37b4","savedPayload":{"position":{"x":11588.539981744934,"y":29942.155475410374},"targetPosition":{"x":11354.990165375808,"y":30070.095961204326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"38bcab02-da61-4d66-81b9-58f8d53a590a","savedPayload":{"position":{"x":11354.990165375808,"y":30070.095961204326},"targetPosition":{"x":11121.440349006682,"y":30198.036446998278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3a66a03a-6db4-45f2-9c93-3079f5da1c97","savedPayload":{"position":{"x":11121.440349006682,"y":30198.036446998278},"targetPosition":{"x":11115.465151692202,"y":30464.266763920106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b911bc60-1953-4133-aa35-eeb7be03138e","savedPayload":{"position":{"x":11115.465151692202,"y":30464.266763920106},"targetPosition":{"x":11109.489954377723,"y":30730.497080841935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b5b53d64-3211-4dd1-9bbb-1d8d85440c3f","savedPayload":{"position":{"x":11810.760420692724,"y":32406.919616028823},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Russia","code":"{ \n\"codeName\": \"huobiru\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"79216c72-1dc2-427d-8ea1-1b5fa735d7ad","savedPayload":{"position":{"x":10685.025924804168,"y":30565.71752585751},"targetPosition":{"x":11211.79016591047,"y":30644.308701040736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"e1ab2761-d830-4048-9ea8-32e850bd5f8e","savedPayload":{"position":{"x":10577.977737791723,"y":29788.206861268074},"targetPosition":{"x":11211.79016591047,"y":30644.308701040736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"35ac8958-39fa-4ca5-9878-14ac88f53b28","savedPayload":{"position":{"x":11081.933527587857,"y":29951.82242254688},"targetPosition":{"x":11290.381341093695,"y":30117.54445993443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"25da3a47-f6b8-4109-937e-8a8794f842a8","savedPayload":{"position":{"x":11785.868143288595,"y":29922.224293603223},"targetPosition":{"x":11538.124742191145,"y":30019.884376768827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"ff61d3cf-1c9b-4b15-96d2-cb80621e31da","savedPayload":{"position":{"x":11538.124742191145,"y":30019.884376768827},"targetPosition":{"x":11290.381341093695,"y":30117.54445993443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"85c4c6ac-63b7-452f-9fe8-519d43472185","savedPayload":{"position":{"x":11290.381341093695,"y":30117.54445993443},"targetPosition":{"x":11251.085753502082,"y":30380.926580487583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a8a93d11-235c-465a-8562-e9fb0521595a","savedPayload":{"position":{"x":11251.085753502082,"y":30380.926580487583},"targetPosition":{"x":11211.79016591047,"y":30644.308701040736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0555787c-92ab-40a8-b47a-afcca8cf7b78","savedPayload":{"position":{"x":11778.090211789306,"y":32279.72048346557},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"KKEX","code":"{ \n\"codeName\": \"kkex\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"05e4b891-6623-4785-9ca8-a1303eb4a8eb","savedPayload":{"position":{"x":10811.325516442843,"y":30427.62903270644},"targetPosition":{"x":11324.085978055838,"y":30571.621558663202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"50146792-6f6e-497b-bc70-13533e5ffa4f","savedPayload":{"position":{"x":10802.56936208246,"y":29642.832576513007},"targetPosition":{"x":11324.085978055838,"y":30571.621558663202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"560b7d04-5e11-4a63-992f-be7b3aa91c70","savedPayload":{"position":{"x":11282.044842595245,"y":29868.320388930133},"targetPosition":{"x":11468.0785040126,"y":30058.861097050205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"3e200a7a-4712-4954-bd67-b874a0aa0509","savedPayload":{"position":{"x":11984.138352804068,"y":29927.18205167735},"targetPosition":{"x":11726.108428408334,"y":29993.02157436378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"88978886-2dee-4bc0-811f-4b2210ca23ed","savedPayload":{"position":{"x":11726.108428408334,"y":29993.02157436378},"targetPosition":{"x":11468.0785040126,"y":30058.861097050205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"495056dd-0999-4d59-b227-0fc49d8b3d6b","savedPayload":{"position":{"x":11468.0785040126,"y":30058.861097050205},"targetPosition":{"x":11396.082241034219,"y":30315.241327856704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bd7952e5-06fe-4db9-bc8f-9b3c5077d272","savedPayload":{"position":{"x":11396.082241034219,"y":30315.241327856704},"targetPosition":{"x":11324.085978055838,"y":30571.621558663202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"20a6c70c-1314-4b08-b974-eaa72dcfb620","savedPayload":{"position":{"x":11761.618963569184,"y":32149.433376971283},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"LBank","code":"{ \n\"codeName\": \"lbank\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"a5bb0028-3d5b-4708-9e55-e92a15542f5f","savedPayload":{"position":{"x":10953.936275442238,"y":30306.45894478683},"targetPosition":{"x":11444.606418774036,"y":30513.58197336582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"f509adc2-7b94-44ce-a165-0c2fcb9b8c23","savedPayload":{"position":{"x":11043.610243518855,"y":29526.753405918244},"targetPosition":{"x":11444.606418774036,"y":30513.58197336582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"c6b167f9-9e53-47e5-ad1f-2c3cacfecd48","savedPayload":{"position":{"x":11491.043799995829,"y":29810.55739197199},"targetPosition":{"x":11651.729447353026,"y":30022.911830034027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"0f681476-7c75-45b4-b0c8-6f89b186460a","savedPayload":{"position":{"x":12180.22377064641,"y":29956.950562826307},"targetPosition":{"x":11915.976608999717,"y":29989.931196430167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"4f0c5515-c1de-48e3-a984-22fa98084b70","savedPayload":{"position":{"x":11915.976608999717,"y":29989.931196430167},"targetPosition":{"x":11651.729447353026,"y":30022.911830034027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1e0a5593-5e38-4aa2-9ee1-34cb120c9eec","savedPayload":{"position":{"x":11651.729447353026,"y":30022.911830034027},"targetPosition":{"x":11548.16793306353,"y":30268.246901699924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3c1ada64-ef1e-4244-9ffa-389c9258ee91","savedPayload":{"position":{"x":11548.16793306353,"y":30268.246901699924},"targetPosition":{"x":11444.606418774036,"y":30513.58197336582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f39da7c4-7878-4d07-83ec-fcadad89d25c","savedPayload":{"position":{"x":11761.606561805464,"y":32018.37679355161},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Mercado Bitcoin","code":"{ \n\"codeName\": \"mercado\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"1f4c164a-7423-4e9e-bb3b-509b22e52300","savedPayload":{"position":{"x":11110.609144941387,"y":30204.118186768672},"targetPosition":{"x":11571.450808719508,"y":30471.105264079903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"83d63c79-0578-49dc-9977-b594f0ff9d46","savedPayload":{"position":{"x":11297.2990234098,"y":29441.799987346407},"targetPosition":{"x":11571.450808719508,"y":30471.105264079903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"cfec8ae6-009e-41cc-87de-dcacb34f86af","savedPayload":{"position":{"x":11705.634361381475,"y":29779.44438864041},"targetPosition":{"x":11838.437886030739,"y":30010.263600301783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"fe502c1a-ed2e-493c-9ece-aa5d41f97204","savedPayload":{"position":{"x":12371.032012640493,"y":30011.060359846408},"targetPosition":{"x":12104.734949335616,"y":30010.661980074095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"accbdcd9-7217-49c8-a4d0-006cce0af4b5","savedPayload":{"position":{"x":12104.734949335616,"y":30010.661980074095},"targetPosition":{"x":11838.437886030739,"y":30010.263600301783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f26e9ed7-e67c-436a-93c9-c4f573acf467","savedPayload":{"position":{"x":11838.437886030739,"y":30010.263600301783},"targetPosition":{"x":11704.944347375123,"y":30240.684432190843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"87ec4b65-d089-4138-9f53-d50bc379e140","savedPayload":{"position":{"x":11704.944347375123,"y":30240.684432190843},"targetPosition":{"x":11571.450808719508,"y":30471.105264079903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"98acc3b9-ece3-4db7-9429-ad10130c09dd","savedPayload":{"position":{"x":11778.05141846809,"y":31888.10289091663},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKCoin CNY","code":"{ \n\"codeName\": \"okcoincny\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"b8fce633-35fe-4df9-9a3c-07fb5ee6eaa8","savedPayload":{"position":{"x":11278.873300196456,"y":30122.22073354132},"targetPosition":{"x":11702.618736089655,"y":30444.861313885238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"9c337fe2-c853-4267-988b-80e993f9f61b","savedPayload":{"position":{"x":11559.634878150093,"y":29389.312086957078},"targetPosition":{"x":11702.618736089655,"y":30444.861313885238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"7fcf8b0f-ead8-4e5c-915e-5b7f04eb75f7","savedPayload":{"position":{"x":11922.432305408944,"y":29775.472049583943},"targetPosition":{"x":12025.259316433574,"y":30021.115877992037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"810d83cd-fe62-4b05-a0c5-9448607bc90f","savedPayload":{"position":{"x":12553.553918826754,"y":30088.658098915024},"targetPosition":{"x":12289.406617630164,"y":30054.88698845353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"6dd9ead8-54b8-4bd8-a4aa-76f850483317","savedPayload":{"position":{"x":12289.406617630164,"y":30054.88698845353},"targetPosition":{"x":12025.259316433574,"y":30021.115877992037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8f14561a-07c8-463d-8562-08f8936578a7","savedPayload":{"position":{"x":12025.259316433574,"y":30021.115877992037},"targetPosition":{"x":11863.939026261614,"y":30232.988595938637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2a55a053-2b62-416f-9207-e1b82035ba57","savedPayload":{"position":{"x":11863.939026261614,"y":30232.988595938637},"targetPosition":{"x":11702.618736089655,"y":30444.861313885238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5d52f5ae-f5e7-4793-9340-234d6301da6f","savedPayload":{"position":{"x":11810.69316891062,"y":31760.923208986995},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKCoin USD","code":"{ \n\"codeName\": \"okcoinusd\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"a118f1c5-49be-4b76-a3b8-71bc6cdeb7d7","savedPayload":{"position":{"x":11456.075114962938,"y":30062.058156865325},"targetPosition":{"x":11836.041604313925,"y":30435.264005553774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"fd417d67-dcec-472a-86ab-5605c494ce26","savedPayload":{"position":{"x":11826.480614598633,"y":29370.11747029415},"targetPosition":{"x":11836.041604313925,"y":30435.264005553774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"a20ab6a7-cfae-4dd2-a609-c3fbce6ded6d","savedPayload":{"position":{"x":12138.018598992114,"y":29798.70302096247},"targetPosition":{"x":12209.247453002374,"y":30055.297516202783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"826e033a-30ae-40b8-80f4-d4a1ba7b3bd4","savedPayload":{"position":{"x":12724.911009711343,"y":30188.520017332416},"targetPosition":{"x":12467.079231356858,"y":30121.9087667676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"416914d1-1e2d-483a-920b-4d914cf7b7c1","savedPayload":{"position":{"x":12467.079231356858,"y":30121.9087667676},"targetPosition":{"x":12209.247453002374,"y":30055.297516202783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b0a3d61c-8df4-4a2b-bc34-cbbca1e10a7a","savedPayload":{"position":{"x":12209.247453002374,"y":30055.297516202783},"targetPosition":{"x":12022.64452865815,"y":30245.28076087828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e6880401-372f-40a7-8d28-eb793c378163","savedPayload":{"position":{"x":12022.64452865815,"y":30245.28076087828},"targetPosition":{"x":11836.041604313925,"y":30435.264005553774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ad181ba5-ba1c-4c4f-9751-752298d8eb72","savedPayload":{"position":{"x":11859.017385356952,"y":31638.84633388599},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKEX","code":"{ \n\"codeName\": \"okex\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"525b16fe-ea76-4c48-a9e6-21010ce85b9f","savedPayload":{"position":{"x":11639.420010766731,"y":30024.57925651426},"targetPosition":{"x":11969.615255057462,"y":30442.46469437105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"9c0ef74d-5cd3-42aa-83fa-faf5cf39f5d8","savedPayload":{"position":{"x":12093.627916085708,"y":29384.518847928703},"targetPosition":{"x":11969.615255057462,"y":30442.46469437105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"afea2116-970c-49a3-a62b-8a3ecb1e4e66","savedPayload":{"position":{"x":12348.993317496162,"y":29848.77093647985},"targetPosition":{"x":12387.500692914255,"y":30112.269450080315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"94f7bb24-0549-46da-97e9-32e94e3d1f83","savedPayload":{"position":{"x":12882.400881607235,"y":30309.07123299052},"targetPosition":{"x":12634.950787260745,"y":30210.670341535417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"9786a969-da0f-460b-aafc-bb36e5c35658","savedPayload":{"position":{"x":12634.950787260745,"y":30210.670341535417},"targetPosition":{"x":12387.500692914255,"y":30112.269450080315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1167f663-98e5-492f-845f-74e1b756d37b","savedPayload":{"position":{"x":12387.500692914255,"y":30112.269450080315},"targetPosition":{"x":12178.557973985859,"y":30277.367072225683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2202d0ca-a05f-41ef-a312-1a8c1fddffa4","savedPayload":{"position":{"x":12178.557973985859,"y":30277.367072225683},"targetPosition":{"x":11969.615255057462,"y":30442.46469437105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2fa05975-7476-49e5-8a96-0f9350cda354","savedPayload":{"position":{"x":11922.280362681344,"y":31523.80552733286},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKEX","code":"{ \n\"codeName\": \"okex3\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"a0ea5e83-4515-4f26-bdf5-cc389a657bbf","savedPayload":{"position":{"x":11826.016529076081,"y":30010.375097135468},"targetPosition":{"x":12101.233152055014,"y":30466.349821172942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"9ea35796-030d-4e1e-ae1c-b6c8a1ba406e","savedPayload":{"position":{"x":12356.863710080812,"y":29432.289101532486},"targetPosition":{"x":12101.233152055014,"y":30466.349821172942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"1d389c58-e423-4df6-bd9f-d3e56226ee8c","savedPayload":{"position":{"x":12552.029263580098,"y":29924.886195199255},"targetPosition":{"x":12557.207876092489,"y":30191.133198194013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"35213beb-fa40-4473-b0a1-1b85a242ccbb","savedPayload":{"position":{"x":13023.539825154745,"y":30448.4105812046},"targetPosition":{"x":12790.373850623617,"y":30319.771889699306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"6587352d-0229-44c7-a1ab-f102d67ab28e","savedPayload":{"position":{"x":12790.373850623617,"y":30319.771889699306},"targetPosition":{"x":12557.207876092489,"y":30191.133198194013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e7b21a07-abef-4d2a-ad53-fde2d14e4bad","savedPayload":{"position":{"x":12557.207876092489,"y":30191.133198194013},"targetPosition":{"x":12329.220514073751,"y":30328.741509683477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"143a4a5c-f9e5-4a9d-b7ba-8008dbcef851","savedPayload":{"position":{"x":12329.220514073751,"y":30328.741509683477},"targetPosition":{"x":12101.233152055014,"y":30466.349821172942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b23a36d8-6521-4573-9a82-42be776ef918","savedPayload":{"position":{"x":11999.50136663086,"y":31417.634892887298},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"RightBTC","code":"{ \n\"codeName\": \"rightbtc\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"748aa88d-0a89-440e-a405-fb8d19909112","savedPayload":{"position":{"x":12012.921931329887,"y":30019.6696868075},"targetPosition":{"x":12228.819602446203,"y":30506.542703241492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"f10ebc34-a129-4a3c-ac49-3f8c78ad777f","savedPayload":{"position":{"x":12612.03661086319,"y":29512.674865669585},"targetPosition":{"x":12228.819602446203,"y":30506.542703241492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"059b72a5-f4fb-4935-bc7c-429ced26c4a9","savedPayload":{"position":{"x":12743.924439086377,"y":30025.848414021606},"targetPosition":{"x":12715.692618880194,"y":30290.64503212518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"37375cd6-1006-493e-ab1f-80713f7ee2d6","savedPayload":{"position":{"x":13146.101994901814,"y":30604.340597216014},"targetPosition":{"x":12930.897306891004,"y":30447.492814670597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"0204b828-1dba-4833-af6b-5d228828aa24","savedPayload":{"position":{"x":12930.897306891004,"y":30447.492814670597},"targetPosition":{"x":12715.692618880194,"y":30290.64503212518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"231a2b3c-a100-46a8-8152-103b49fdf50c","savedPayload":{"position":{"x":12715.692618880194,"y":30290.64503212518},"targetPosition":{"x":12472.256110663198,"y":30398.593867683336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1bfc0fc0-ae3a-40c5-ae0c-2604434a5749","savedPayload":{"position":{"x":12472.256110663198,"y":30398.593867683336},"targetPosition":{"x":12228.819602446203,"y":30506.542703241492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e9d59aa7-dab8-47df-b153-f23a2c60d89b","savedPayload":{"position":{"x":12089.508244011651,"y":31321.974545721372},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TideBit","code":"{ \n\"codeName\": \"tidebit\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"4b930e8f-5336-483e-b6e8-58f26f789331","savedPayload":{"position":{"x":12197.188607682734,"y":30052.316444298925},"targetPosition":{"x":12350.36249169191,"y":30562.40947481642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"54e2ae13-b1fa-40c5-b7b6-e92b2d4521d6","savedPayload":{"position":{"x":12855.122389354605,"y":29624.408408819443},"targetPosition":{"x":12350.36249169191,"y":30562.40947481642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"5d77ca4b-381e-4c9e-8d57-8d6f3bb305e4","savedPayload":{"position":{"x":12921.65254246464,"y":30150.065358444175},"targetPosition":{"x":12860.455522209406,"y":30409.235590807242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"9ad9ad4f-5522-4b66-a690-a42bf48cfeb0","savedPayload":{"position":{"x":13248.154512216432,"y":30774.402171524198},"targetPosition":{"x":13054.305017212919,"y":30591.81888116572},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"c687d24f-49f7-4d18-87eb-ed687c7e097e","savedPayload":{"position":{"x":13054.305017212919,"y":30591.81888116572},"targetPosition":{"x":12860.455522209406,"y":30409.235590807242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e09ddb5a-bf59-4604-a377-bf7a61ee3f14","savedPayload":{"position":{"x":12860.455522209406,"y":30409.235590807242},"targetPosition":{"x":12605.409006950658,"y":30485.82253281183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0085400e-82dc-4e22-9ab5-374773820ca3","savedPayload":{"position":{"x":12605.409006950658,"y":30485.82253281183},"targetPosition":{"x":12350.36249169191,"y":30562.40947481642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"174fa8a2-1f0a-4638-ae31-c232fb585be4","savedPayload":{"position":{"x":12190.801862875098,"y":31238.175785726893},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TimeX","code":"{ \n\"codeName\": \"timex\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"261e5b4b-f7b2-4bfe-a0ec-23bb2e7e389a","savedPayload":{"position":{"x":12375.910562572964,"y":30107.800510741865},"targetPosition":{"x":12463.945015822534,"y":30633.0690835368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"8b10dbfa-5d8c-401a-85f6-99b9c5c15db0","savedPayload":{"position":{"x":13082.28743761585,"y":29765.727626260203},"targetPosition":{"x":12463.945015822534,"y":30633.0690835368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"94edf4da-e337-4b5f-b480-1ee875f0e275","savedPayload":{"position":{"x":13082.410695355004,"y":30295.57805304983},"targetPosition":{"x":12989.21358861747,"y":30545.034630287228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"f770e3b9-b900-4754-98bc-cc7249fa6f5a","savedPayload":{"position":{"x":13328.087947937336,"y":30955.913331512456},"targetPosition":{"x":13158.650768277403,"y":30750.473980899842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"55c4fa76-7bf2-450b-93ce-167d48793cef","savedPayload":{"position":{"x":13158.650768277403,"y":30750.473980899842},"targetPosition":{"x":12989.21358861747,"y":30545.034630287228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5ac39dc1-e2cb-4795-bb84-9bfb0dc98fc8","savedPayload":{"position":{"x":12989.21358861747,"y":30545.034630287228},"targetPosition":{"x":12726.579302220001,"y":30589.051856912014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9ab863f3-9c1b-4bdf-91b1-b44e960c5769","savedPayload":{"position":{"x":12726.579302220001,"y":30589.051856912014},"targetPosition":{"x":12463.945015822534,"y":30633.0690835368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ca50e110-a56e-41e3-b134-beea02fcbd1e","savedPayload":{"position":{"x":12301.614242851761,"y":31167.64836930507},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TOP.Q","code":"{ \n\"codeName\": \"topq\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"166f0916-240f-438b-b972-3bd370840329","savedPayload":{"position":{"x":12546.269244008634,"y":30185.246869263938},"targetPosition":{"x":12567.775910581617,"y":30717.4071851631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"21b274ca-3f76-4d39-a09e-5a63795d7593","savedPayload":{"position":{"x":13289.949227134017,"y":29934.403829512805},"targetPosition":{"x":12567.775910581617,"y":30717.4071851631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"11c411ef-b860-4c84-8069-e6b236a63109","savedPayload":{"position":{"x":13223.66364565411,"y":30460.09167571956},"targetPosition":{"x":13099.93622648078,"y":30695.90051859012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"c6c83f40-9db2-4cd3-ba01-6adcead10dce","savedPayload":{"position":{"x":13384.641704033287,"y":31146.011537758255},"targetPosition":{"x":13242.288965257034,"y":30920.956028174187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"2b0b9ba2-e358-4db0-a55d-a8646d16f524","savedPayload":{"position":{"x":13242.288965257034,"y":30920.956028174187},"targetPosition":{"x":13099.93622648078,"y":30695.90051859012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f43db8ea-40b1-4468-9275-1faa5ae97b0a","savedPayload":{"position":{"x":13099.93622648078,"y":30695.90051859012},"targetPosition":{"x":12833.856068531199,"y":30706.65385187661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c66efb70-d7d5-4cbf-ac58-97d60dacbae1","savedPayload":{"position":{"x":12833.856068531199,"y":30706.65385187661},"targetPosition":{"x":12567.775910581617,"y":30717.4071851631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"85116028-fe56-42ac-a889-0cd97c28e3c1","savedPayload":{"position":{"x":12420.306535228421,"y":31111.65857217819},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"WhiteBit","code":"{ \n\"codeName\": \"whitebit\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"25e706ad-3982-4201-bab8-22b2cac9b373","savedPayload":{"position":{"x":12705.577993816158,"y":30283.434144527044},"targetPosition":{"x":12660.21770073324,"y":30814.093717451542},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"e228108c-fa85-4044-8bf3-2414764a3a94","savedPayload":{"position":{"x":13474.832807437262,"y":30127.776894089686},"targetPosition":{"x":12660.21770073324,"y":30814.093717451542},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"d75bdfd0-32ab-46b5-a2d7-47223a80fd86","savedPayload":{"position":{"x":13343.18374995532,"y":30641.011748348184},"targetPosition":{"x":13190.877273657738,"y":30859.454010534464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"ecbe360d-9ba7-4e02-983e-48543b9d20a8","savedPayload":{"position":{"x":13416.92389398707,"y":31341.698827989938},"targetPosition":{"x":13303.900583822404,"y":31100.5764192622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"9deeeaa2-8940-42f5-b4bf-f7d0e3e9aff4","savedPayload":{"position":{"x":13303.900583822404,"y":31100.5764192622},"targetPosition":{"x":13190.877273657738,"y":30859.454010534464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2bbe321c-4063-43fb-bf66-b3da113f63c5","savedPayload":{"position":{"x":13190.877273657738,"y":30859.454010534464},"targetPosition":{"x":12925.547487195488,"y":30836.773863993003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"579ee3f2-e919-4bbe-a3fd-ed3e3e726fb8","savedPayload":{"position":{"x":12925.547487195488,"y":30836.773863993003},"targetPosition":{"x":12660.21770073324,"y":30814.093717451542},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e6216dfa-09ca-4bf6-af3b-2e6c93ba4ed5","savedPayload":{"position":{"x":12544.977273938124,"y":31071.066151916813},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ZB","code":"{ \n\"codeName\": \"zb\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[],"id":"92573b20-1a4e-4702-b9b6-c5eb51d44303","savedPayload":{"position":{"x":12851.32441784464,"y":30400.813864546042},"targetPosition":{"x":12739.812524024663,"y":30921.603876030193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"a515a3dd-5136-48cd-be7a-9f212c64437d","savedPayload":{"position":{"x":13634.022454020109,"y":30342.797211246987},"targetPosition":{"x":12739.812524024663,"y":30921.603876030193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"73196162-297b-4788-9196-af3500ddb862","savedPayload":{"position":{"x":13439.086104815957,"y":30835.48505331393},"targetPosition":{"x":13260.602535508813,"y":31033.115769850167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"1a69e094-d056-4318-a042-5deaa22ae003","savedPayload":{"position":{"x":13424.425408378676,"y":31539.889096742616},"targetPosition":{"x":13342.513971943745,"y":31286.50243329639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"972d3524-af29-4c90-a2c3-446290da9bfa","savedPayload":{"position":{"x":13342.513971943745,"y":31286.50243329639},"targetPosition":{"x":13260.602535508813,"y":31033.115769850167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c950a8cf-e84f-4ca2-948b-5b0f300e76a9","savedPayload":{"position":{"x":13260.602535508813,"y":31033.115769850167},"targetPosition":{"x":13000.207529766738,"y":30977.35982294018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"331badcf-241b-45cc-9428-fe9a34c9e07c","savedPayload":{"position":{"x":13000.207529766738,"y":30977.35982294018},"targetPosition":{"x":12739.812524024663,"y":30921.603876030193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"321011fe-4125-4689-b909-c1ffac01a56a","savedPayload":{"position":{"x":12671.086136367423,"y":31046.59389118469},"targetPosition":{"x":12805.302940294665,"y":32083.787868631527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a7702fa4-c753-4c9f-8ea0-c7d554f1d43e","savedPayload":{"position":{"x":12805.302940294665,"y":32083.787868631527},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Testing Queue","exchanges":[{"type":"Crypto Exchange","name":"Bittrex","code":"{\n \"codeName\": \"bittrex\",\n \"API\": [\n {\n \"method\": \"fetch_ohlcv\",\n \"hostname\": \"global.bittrex.com\"\n }\n ]\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"BTC\"} \n}","assets":[{"type":"Asset","name":"Bitcoin","code":"{ \n\"codeName\": \"BTC\"\n}","id":"20119f66-f7e7-46b3-a18a-f5d5b752f532","savedPayload":{"position":{"x":11250.008392171483,"y":31442.186807763785},"targetPosition":{"x":10912.299419713998,"y":31532.532668896987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","code":"{ \n\"codeName\": \"USDT\"\n}","id":"4021d203-1155-47f0-acfd-e36eae2f6144","savedPayload":{"position":{"x":11250.075921441785,"y":31623.124475935027},"targetPosition":{"x":10912.299419713998,"y":31532.532668896987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Ether","code":"{ \n\"codeName\": \"ETH\"\n}","id":"4bb91b8c-edd9-4cf5-ba96-4ec88e715467","savedPayload":{"position":{"x":11159.552692640189,"y":31779.95207203089},"targetPosition":{"x":10912.299419713998,"y":31532.532668896987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Monero","code":"{ \n\"codeName\": \"XMR\"\n}","id":"36f9fe20-a89e-4546-bce0-196ded444757","savedPayload":{"position":{"x":11002.7351541114,"y":31870.499230444137},"targetPosition":{"x":10912.299419713998,"y":31532.532668896987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Stellar","code":"{ \n\"codeName\": \"XLM\"\n}","id":"7a2e1a9d-630f-4c38-bf3c-16ddd1c8a3b2","savedPayload":{"position":{"x":10821.856373202336,"y":31870.499973817863},"targetPosition":{"x":10912.299419713998,"y":31532.532668896987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Ethereum Classic","code":"{ \n\"codeName\": \"ETC\"\n}","id":"0b232387-4c8a-4299-9058-02f6029403eb","savedPayload":{"position":{"x":10665.048827637143,"y":31779.950642152122},"targetPosition":{"x":10912.299419713998,"y":31532.532668896987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"ADA","code":"{ \n\"codeName\": \"ADA\"\n}","id":"e85947dd-72f5-4cba-a308-4603273b21ae","savedPayload":{"position":{"x":10574.530998113325,"y":31623.107238922585},"targetPosition":{"x":10912.299419713998,"y":31532.532668896987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"TRX","code":"{ \n\"codeName\": \"TRX\"\n}","id":"e76e5034-5cac-4c45-bae4-987687375eca","savedPayload":{"position":{"x":10574.545126765433,"y":31442.19087340895},"targetPosition":{"x":10912.299419713998,"y":31532.532668896987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"DASH","code":"{ \n\"codeName\": \"DASH\"\n}","id":"8324b9a0-d5e3-4ea4-b5e8-f325d8597c21","savedPayload":{"position":{"x":10665.069998419765,"y":31285.332010450085},"targetPosition":{"x":10912.299419713998,"y":31532.532668896987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"EOS","code":"{ \n\"codeName\": \"EOS\"\n}","id":"99125fb1-4c68-4350-8bfb-3927cfebfba5","savedPayload":{"position":{"x":10821.847055913826,"y":31194.780305477092},"targetPosition":{"x":10912.299419713998,"y":31532.532668896987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"QTUM","code":"{ \n\"codeName\": \"QTUM\"\n}","id":"5218e2aa-060e-4607-903d-9f5a03146e8c","savedPayload":{"position":{"x":11002.729778596175,"y":31194.83590318002},"targetPosition":{"x":10912.299419713998,"y":31532.532668896987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"id":"cf57db5f-e0f5-4575-a977-9e75eee36351","savedPayload":{"position":{"x":10912.299419713998,"y":31532.532668896987},"targetPosition":{"x":11406.501309360794,"y":31038.234185104997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[{"type":"Market","name":"BTC/USDT","code":"{ \n\"codeName\": \"BTC/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","id":"8e601dec-ea22-43ed-84d3-8f95864eb27b","savedPayload":{"position":{"x":9739.996103407655,"y":32399.407414545756},"targetPosition":{"x":9794.718321284872,"y":31702.445955819436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"20119f66-f7e7-46b3-a18a-f5d5b752f532"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"024fef5e-75f9-4469-ac2b-113729e78fd1","savedPayload":{"position":{"x":9550.112733464957,"y":32721.600344451042},"targetPosition":{"x":9794.718321284872,"y":31702.445955819436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"4021d203-1155-47f0-acfd-e36eae2f6144"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"852df415-b416-4564-9d74-7ac014c7240f","savedPayload":{"position":{"x":9728.077941087215,"y":31864.205919524957},"targetPosition":{"x":9794.718321284872,"y":31702.445955819436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"acda8ac4-fe3e-4b62-ad58-29f78078c751","savedPayload":{"position":{"x":9612.142276215478,"y":32000.816020545797},"targetPosition":{"x":9794.718321284872,"y":31702.445955819436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"b440afe2-4129-4553-8adc-a2bbbf88354d","savedPayload":{"position":{"x":9794.718321284872,"y":31702.445955819436},"targetPosition":{"x":10010.117765892512,"y":31038.2414289695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"ETH/USDT","code":"{ \n\"codeName\": \"ETH/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ether","id":"3bcc480b-e089-41b7-af45-25db0bbec1cf","savedPayload":{"position":{"x":9332.344903942269,"y":32249.1590758358},"targetPosition":{"x":9599.854886697416,"y":31603.225737738183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4bb91b8c-edd9-4cf5-ba96-4ec88e715467"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"c28133a1-0c88-4196-8f94-7aff546dbec0","savedPayload":{"position":{"x":9052.224549300816,"y":32496.895929036327},"targetPosition":{"x":9599.854886697416,"y":31603.225737738183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"4021d203-1155-47f0-acfd-e36eae2f6144"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"15a3c109-5ba6-4d0a-8d43-3028df836ac7","savedPayload":{"position":{"x":9486.322786309622,"y":31736.400242763182},"targetPosition":{"x":9599.854886697416,"y":31603.225737738183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"77d04b5a-a93c-41fa-943c-43a26ae64975","savedPayload":{"position":{"x":9333.879750612949,"y":31830.538601870296},"targetPosition":{"x":9599.854886697416,"y":31603.225737738183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169","savedPayload":{"position":{"x":9599.854886697416,"y":31603.225737738183},"targetPosition":{"x":10010.117765892512,"y":31038.2414289695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"ETC/USDT","code":"{ \n\"codeName\": \"ETC/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ethereum Classic","id":"b291a995-c43f-41ee-ae2e-76904b8c913d","savedPayload":{"position":{"x":8991.159575870868,"y":31980.320807279168},"targetPosition":{"x":9445.244904473786,"y":31448.691698259707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ethereum Classic","id":"0b232387-4c8a-4299-9058-02f6029403eb"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"910739e4-e13d-42e9-8998-1425cf42accc","savedPayload":{"position":{"x":8648.214591800097,"y":32129.370951857367},"targetPosition":{"x":9445.244904473786,"y":31448.691698259707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"4021d203-1155-47f0-acfd-e36eae2f6144"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"9b1ff7d5-eaf4-4cfe-a27d-41ab7b6c5d0c","savedPayload":{"position":{"x":9296.020382760005,"y":31540.19625334321},"targetPosition":{"x":9445.244904473786,"y":31448.691698259707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"6a820002-433a-435a-b693-da5b132624b7","savedPayload":{"position":{"x":9121.971534362072,"y":31582.640869698826},"targetPosition":{"x":9445.244904473786,"y":31448.691698259707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a","savedPayload":{"position":{"x":9445.244904473786,"y":31448.691698259707},"targetPosition":{"x":10010.117765892512,"y":31038.2414289695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"XMR/USDT","code":"{ \n\"codeName\": \"XMR/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Monero","id":"7446ed4d-1a87-4642-ba98-1cb5760e08f5","savedPayload":{"position":{"x":8749.80421884518,"y":31619.22311120301},"targetPosition":{"x":9345.99325373452,"y":31253.967429706936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Monero","id":"36f9fe20-a89e-4546-bce0-196ded444757"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"30f20dab-15c4-4c39-9e0c-858d7a71eed2","savedPayload":{"position":{"x":8377.594298008593,"y":31655.006389017137},"targetPosition":{"x":9345.99325373452,"y":31253.967429706936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"4021d203-1155-47f0-acfd-e36eae2f6144"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"3e8dc197-1a80-44cf-9a24-1be3fa483fa7","savedPayload":{"position":{"x":9175.743416227157,"y":31294.821553104448},"targetPosition":{"x":9345.99325373452,"y":31253.967429706936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"6f70c101-c6fd-498e-bbac-c6340a099087","savedPayload":{"position":{"x":8997.104829143394,"y":31281.416909133615},"targetPosition":{"x":9345.99325373452,"y":31253.967429706936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"35020f56-8c2c-4a78-8547-41f39c8d282f","savedPayload":{"position":{"x":9345.99325373452,"y":31253.967429706936},"targetPosition":{"x":10010.117765892512,"y":31038.2414289695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"DASH/USDT","code":"{ \n\"codeName\": \"DASH/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"DASH","id":"2996c139-c41e-4154-90bd-707fe602dc9c","savedPayload":{"position":{"x":8631.883290262851,"y":31201.334672469744},"targetPosition":{"x":9311.798149906164,"y":31038.230889340273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"DASH","id":"8324b9a0-d5e3-4ea4-b5e8-f325d8597c21"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"906e1ede-fa52-4636-a42d-0951767295d6","savedPayload":{"position":{"x":8266.836431470349,"y":31120.3518219209},"targetPosition":{"x":9311.798149906164,"y":31038.230889340273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"4021d203-1155-47f0-acfd-e36eae2f6144"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"eb838219-9425-4140-b789-ed1a77ea1277","savedPayload":{"position":{"x":9137.223648687817,"y":31024.615156903135},"targetPosition":{"x":9311.798149906164,"y":31038.230889340273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"be0f8147-fe81-412f-9651-efabf34f3715","savedPayload":{"position":{"x":8971.473101481259,"y":30956.672646716826},"targetPosition":{"x":9311.798149906164,"y":31038.230889340273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6","savedPayload":{"position":{"x":9311.798149906164,"y":31038.230889340273},"targetPosition":{"x":10010.117765892512,"y":31038.2414289695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"ADA/USDT","code":"{ \n\"codeName\": \"ADA/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"ADA","id":"35a3964b-e990-47b1-a8af-a0ac8fc2f426","savedPayload":{"position":{"x":8648.921525397753,"y":30767.656961264824},"targetPosition":{"x":9345.99004881409,"y":30822.470242030668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"ADA","id":"e85947dd-72f5-4cba-a308-4603273b21ae"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"379c57c3-cc86-46f5-8b8c-6f2a7a45c530","savedPayload":{"position":{"x":8326.766342642502,"y":30577.836294318113},"targetPosition":{"x":9345.99004881409,"y":30822.470242030668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"4021d203-1155-47f0-acfd-e36eae2f6144"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"40b6c5ff-7a62-4baf-a076-d9d86e9325b2","savedPayload":{"position":{"x":9184.209674440663,"y":30755.539892428813},"targetPosition":{"x":9345.99004881409,"y":30822.470242030668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"939a7b9d-47c9-4993-8669-928eaf379381","savedPayload":{"position":{"x":9047.566907752374,"y":30639.7109930645},"targetPosition":{"x":9345.99004881409,"y":30822.470242030668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f","savedPayload":{"position":{"x":9345.99004881409,"y":30822.470242030668},"targetPosition":{"x":10010.117765892512,"y":31038.2414289695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"TRX/USDT","code":"{ \n\"codeName\": \"TRX/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"TRX","id":"36b47715-fec9-4457-89e4-41e89ffc82ab","savedPayload":{"position":{"x":8799.266710448626,"y":30360.185715736025},"targetPosition":{"x":9445.237671475092,"y":30627.745557902945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"TRX","id":"e76e5034-5cac-4c45-bae4-987687375eca"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"3457ac9e-a64f-48b3-ba88-a39fa7d30b05","savedPayload":{"position":{"x":8551.533298500963,"y":30080.108524535746},"targetPosition":{"x":9445.237671475092,"y":30627.745557902945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"4021d203-1155-47f0-acfd-e36eae2f6144"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"b9987b0f-1be5-4cb2-83de-85c249066417","savedPayload":{"position":{"x":9312.123506972115,"y":30514.057639682327},"targetPosition":{"x":9445.237671475092,"y":30627.745557902945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"49d18ab0-e48e-4c83-9eef-2393bed250c4","savedPayload":{"position":{"x":9217.958548606064,"y":30361.68353262632},"targetPosition":{"x":9445.237671475092,"y":30627.745557902945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"2cb30869-9de4-4855-bf78-58ac6a10a285","savedPayload":{"position":{"x":9445.237671475092,"y":30627.745557902945},"targetPosition":{"x":10010.117765892512,"y":31038.2414289695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"XLM/USDT","code":"{ \n\"codeName\": \"XLM/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Stellar","id":"35d321d0-db6f-41a5-bacb-a0fec0ddb386","savedPayload":{"position":{"x":9068.220774187575,"y":30019.113200550793},"targetPosition":{"x":9599.840866016759,"y":30473.211975209528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Stellar","id":"7a2e1a9d-630f-4c38-bf3c-16ddd1c8a3b2"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"bb7a3cb8-5893-42d2-aa82-fef28c1a1039","savedPayload":{"position":{"x":8919.152628925842,"y":29676.194870956868},"targetPosition":{"x":9599.840866016759,"y":30473.211975209528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"4021d203-1155-47f0-acfd-e36eae2f6144"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"ac107849-71a2-4cd4-ad6f-4616c4047491","savedPayload":{"position":{"x":9508.480248130913,"y":30323.91873932882},"targetPosition":{"x":9599.840866016759,"y":30473.211975209528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"5efafb67-4dd0-4956-8c2f-7688f3b59dee","savedPayload":{"position":{"x":9466.001456937352,"y":30149.92172944439},"targetPosition":{"x":9599.840866016759,"y":30473.211975209528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"04b82448-a05a-4991-aa02-6a29f23d0ccc","savedPayload":{"position":{"x":9599.840866016759,"y":30473.211975209528},"targetPosition":{"x":10010.117765892512,"y":31038.2414289695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market","name":"EOS/USDT","code":"{ \n\"codeName\": \"EOS/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"EOS","id":"beccec26-4b63-433e-9cef-ebe8eaed7c82","savedPayload":{"position":{"x":9429.499767692705,"y":29777.83518536247},"targetPosition":{"x":9794.690994677178,"y":30373.999489883412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"EOS","id":"99125fb1-4c68-4350-8bfb-3927cfebfba5"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"89d36ebd-6f21-413c-b226-5fbed39fb4db","savedPayload":{"position":{"x":9393.678068900388,"y":29405.64986048494},"targetPosition":{"x":9794.690994677178,"y":30373.999489883412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"4021d203-1155-47f0-acfd-e36eae2f6144"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"046694f6-548f-416b-a36f-4b483dad52ee","savedPayload":{"position":{"x":9754.094569959665,"y":30203.775945177927},"targetPosition":{"x":9794.690994677178,"y":30373.999489883412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"9cdf7254-2991-46fb-a038-07075ef36c22","savedPayload":{"position":{"x":9767.430440602404,"y":30025.19006083594},"targetPosition":{"x":9794.690994677178,"y":30373.999489883412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7","savedPayload":{"position":{"x":9794.690994677178,"y":30373.999489883412},"targetPosition":{"x":10010.117765892512,"y":31038.2414289695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5b18f8df-908e-406a-a1c9-20a85a1c1aff","savedPayload":{"position":{"x":10010.117765892512,"y":31038.2414289695},"targetPosition":{"x":11406.501309360794,"y":31038.234185104997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","userAccounts":[{"type":"User Account","name":"New User Account","userAssets":{"type":"User Assets","name":"New User Assets","assets":[],"id":"75cda0c9-4bae-4d8b-8557-a837350782f5","savedPayload":{"position":{"x":10327.762213787168,"y":30386.970299544362},"targetPosition":{"x":10665.330401454969,"y":30296.735542774903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","code":"{ \n\"codeName\": \"Paste your exchange API name or label here\",\n\"secret\": \"Paste your exchange API secret key here. To keep you exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\"\n}","id":"c28ded34-d2ee-48a0-9de9-10af97332187","savedPayload":{"position":{"x":10846.112654950275,"y":29621.154396705853},"targetPosition":{"x":10755.74248892461,"y":29958.879470017757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"7bbd85d7-55cd-4fbb-9901-8b542c5171ed","savedPayload":{"position":{"x":10755.74248892461,"y":29958.879470017757},"targetPosition":{"x":10665.330401454969,"y":30296.735542774903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dd6b185e-b8b7-4f09-8f85-391608875769","savedPayload":{"position":{"x":10665.330401454969,"y":30296.735542774903},"targetPosition":{"x":10912.423670126245,"y":30544.0075981432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f21048d0-6018-46b7-a85f-f25e1faa54a9","savedPayload":{"position":{"x":10912.423670126245,"y":30544.0075981432},"targetPosition":{"x":11406.501309360794,"y":31038.234185104997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a9a5c7bc-797b-4cd1-b24e-a627cd396d3e","savedPayload":{"position":{"x":11406.501309360794,"y":31038.234185104997},"targetPosition":{"x":12105.680299912206,"y":31038.2364852166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4255ce74-e993-421b-8c7b-e2e5eec97aee","savedPayload":{"position":{"x":12105.680299912206,"y":31038.2364852166},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"signalsProviders":[],"superActions":{"type":"Super Actions","name":"New Super Actions","superActions":[{"type":"Super Action","name":"Install Market","id":"2cd8e9dd-02a8-40b5-8979-108491309697","savedPayload":{"position":{"x":13596.796537982185,"y":29900.600915146206},"targetPosition":{"x":13238.769838624787,"y":30494.890822183912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"d103d8f7-8b21-436a-a0cf-8244b3dcb756","savedPayload":{"position":{"x":13738.553946135695,"y":30013.646249280533},"targetPosition":{"x":13238.769838624787,"y":30494.890822183912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"c934df8f-d942-4723-ad44-f187e5df4351","savedPayload":{"position":{"x":12805.278842336647,"y":30389.20684138293},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9f4e7bfb-ea29-47cd-92bd-11f31d177ff8","savedPayload":{"position":{"x":12805.301618063546,"y":31038.2348844148},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"e"}}},{"type":"Charting Space","name":"New Charting Space","viewport":{"type":"Viewport","name":"New Viewport","code":"{\"zoom\":\"0.00\"}","id":"c3db9bcf-39ee-47d1-ab4f-14bd5de815da","savedPayload":{"position":{"x":13421.60994808922,"y":24983.353401471086},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"frame":{"position":{"x":13.750000000000227,"y":384}}}},"dashboards":[{"type":"Dashboard","name":"Super Action Generated","timeMachines":[{"type":"Time Machine","name":"Binance BTC/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2017-08-17T00:00:00.000Z\",\n \"toDate\": \"2020-04-27T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"c0e548d5-18bc-44ad-8945-dff20cb88f0a","savedPayload":{"position":{"x":12524.348758803366,"y":25309.98535989181},"targetPosition":{"x":13075.403928432961,"y":25732.285101397178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 2817,\n \"maxValue\": 19798.68,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"1454ac56-e031-41a2-aa66-fb0e69bfb936","savedPayload":{"position":{"x":12652.552191577817,"y":25181.643408979482},"targetPosition":{"x":13075.403928432961,"y":25732.285101397178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"380e7e59-1968-4226-a434-4fba6b58c2ec","savedPayload":{"position":{"x":12810.102694567238,"y":25112.230820654186},"targetPosition":{"x":13075.403928432961,"y":25732.285101397178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"loading\",\n \"showPanels\": false\n}","id":"5d499f14-bf91-410d-8396-bdfa64305d3c","savedPayload":{"position":{"x":44078.64999458624,"y":30934.89460131808},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"431ea989-085b-40ae-aa2a-d371d7cb68c6"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ef396a73-0d6e-404d-b803-3fd5a6a507b5","savedPayload":{"position":{"x":44163.85123076828,"y":30946.443093510883},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"ddd34b26-4fa8-4d7c-b76d-f671c92a6181"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0e65d47e-0dd2-44d2-9d5d-61ef940c65ec","savedPayload":{"position":{"x":44241.83694393738,"y":30974.63232510084},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"683e24f7-010a-412e-ba21-f280e63a0f1d"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5c954b3c-42eb-4c4c-b70f-b1a824133e67","savedPayload":{"position":{"x":44311.67549610568,"y":31016.49344919726},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"210b7e14-a6f0-4c56-b5e4-108f57ebb4c6"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e9ecc09d-96a1-49d3-9359-765efe3d9f2f","savedPayload":{"position":{"x":44371.85960146544,"y":31070.221683842996},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"303572ad-cc90-46c9-8620-8454d557897b"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"070bc298-b6ac-46c0-9937-02bf8e6b7bcf","savedPayload":{"position":{"x":44420.81779483182,"y":31133.88297441118},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"10142313-9ac8-4f4c-8105-88aec7bb7ce9"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3f29e182-d202-442b-970f-f5c20a3ac114","savedPayload":{"position":{"x":44457.117328935085,"y":31205.319635425785},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"afbf02cf-97a6-4dc0-a3d5-95f29ba7781f"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"085d70ad-beca-4286-8b4c-596532725d71","savedPayload":{"position":{"x":44479.64133141089,"y":31282.130540258924},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"80ed873e-8017-45ec-b211-fc4604f5aaf6"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b1b65274-71af-4cf9-bf24-6b119a61fd87","savedPayload":{"position":{"x":44487.61147096234,"y":31361.728456129385},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"6635502b-5366-430e-8dc1-4edaa21c2a7f"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0ce8fc4a-d73b-4d3f-a0be-1c791d4420a6","savedPayload":{"position":{"x":44480.78341149639,"y":31441.3959689604},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"3ebce074-9080-426a-baf9-61c1a04fc05b"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"1e7782c8-1e94-408c-90f8-7359413521da","savedPayload":{"position":{"x":44459.48592250235,"y":31518.457632189642},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"c424ba00-bbe0-4ae9-830a-3d2aa6fcaf4d"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"49eb0d21-6618-4c22-9792-56100a9b95ea","savedPayload":{"position":{"x":44424.41129890276,"y":31590.302021321455},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"3d048c1f-d45a-442a-9d44-362ad7770bb6"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"6a050c22-4d82-4a15-992f-55e42ded6634","savedPayload":{"position":{"x":44376.75954564685,"y":31654.50449366559},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c92d9454-d5fb-4954-a188-367dcd697af6"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"f56d6fb7-70b9-4c00-8e42-3f4504543d7b","savedPayload":{"position":{"x":44318.14175549443,"y":31708.891385093266},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"4810638a-c137-4df6-8016-c8a2540dc9e7"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"cbc52576-2118-4733-a0ce-46d4cfeb301b","savedPayload":{"position":{"x":44250.60221948984,"y":31751.772743890055},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"9c1f6b84-409e-4257-92ea-a9481d3509cd"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"c9216fd6-be30-45f7-9ae5-8ade686409c2","savedPayload":{"position":{"x":44153.02320691994,"y":31784.13904467631},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"dcd46168-1662-42c5-be91-f489d9a55833"}}}],"id":"6d3110be-ac1c-463a-86cc-3f24e4af1361","savedPayload":{"position":{"x":44141.821764465945,"y":31355.229987239374},"targetPosition":{"x":43626.31800703183,"y":31407.414884109556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"ab74fc1e-8a97-48a5-8338-521964f5b98f","savedPayload":{"position":{"x":12985.846704570287,"y":25043.837675364775},"targetPosition":{"x":13075.403928432961,"y":25732.285101397178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 28059.458155876786,\n \"maxValue\": 36963.479419651776,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"15b07a5e-61da-41a7-bcfc-1a01f6347887","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"424670b0-3ed3-44a5-8d63-7562e58c08f5","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"cc76acbb-9fd2-43f0-95de-dc78e1aaa2b5"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"1a754c47-be68-4ba1-8ea6-2744f574fe71","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"e0d47cb6-6d3e-4c50-b13b-4cb748722e29","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"65f111e4-3c9d-4515-96e8-1960f1605842","savedPayload":{"position":{"x":13166.352756697594,"y":25043.728402856592},"targetPosition":{"x":13075.403928432961,"y":25732.285101397178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 9.034592348123713,\n \"maxValue\": 13.034592348123713,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"ade7baa2-6d4d-4840-883f-c03fddc47439","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7bcbbe38-eae6-4322-9627-30a48db50e9e","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"302bfaf2-6466-4aa0-9924-33999366b774"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"513f3192-373b-4c4b-a002-481d67cec80b","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"f6868e09-2559-4fac-9631-54cf1a867c8a"}}}],"id":"b06df65c-f0ff-4214-a7e0-e4cc6f06af4d","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"8db2874f-5d6b-40c6-b9af-acb0b24f245a","savedPayload":{"position":{"x":13341.015381884503,"y":25091.34127808004},"targetPosition":{"x":13075.403928432961,"y":25732.285101397178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 9.034592348123713,\n \"maxValue\": 13.034592348123713,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"713e6bce-5e40-4d52-8b84-9bb89f7a715d","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e257155c-df75-464d-b327-146273b82856","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"be7e47ef-a530-4dc1-bf59-b731f1e49fa1"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"cf56454f-5813-4cb2-be56-977e48a4d856","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"0333bb7c-5101-441b-be9a-d9ff1a84f116"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"8bfc5004-5a90-4e47-a1e7-6035b954f655","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"913f8079-b038-444a-ad43-465fa0443c04"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"4af78a5c-748d-4faa-867d-fc40da0b0a01","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"bba7e1ab-5bca-44c0-a8aa-cd9570b338f3"}}}],"id":"6a91e3e5-005d-4420-9f51-70f8b0e13894","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"fba394b4-3d00-4be1-913d-63a431ed248f","savedPayload":{"position":{"x":13498.865933588835,"y":25181.69600093408},"targetPosition":{"x":13075.403928432961,"y":25732.285101397178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-min\"}","id":"e83ea85f-9b0a-4590-a732-bbc5ff9d2cba","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"ee524abe-ce4c-43de-a260-e4332d058bd6","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"527c6b54-c797-4977-99d1-36b89e08f5bb"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"fb7501fb-f8ca-4493-9522-a2bf3d3ea5fc","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"8a538782-87e4-45e7-90fe-879d921f3a84"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"ff0a139b-e03f-49b6-a883-801aa2844808","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"f4cceeeb-e0a3-4e0b-81e8-f4d1a9c64d8f"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"a3e9f878-2fea-4030-9a1d-c6c1afc14e77","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"824314e2-9950-4479-af8d-ed86864b935f"}}}],"id":"babeb0fd-29d3-47d6-a587-f5a65829124a","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":330,"radius":0}}},"id":"cbd29e2b-b767-44f1-b5f4-3cf270fdd14b","savedPayload":{"position":{"x":13626.990638949983,"y":25309.56619076788},"targetPosition":{"x":13075.403928432961,"y":25732.285101397178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"26eaf9c9-7de1-49f5-9d7c-b32a6fe6ed79","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"going right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"c48591c8-008b-4e51-8dd1-5ce0cd41240c","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"11799e85-e7db-4069-8485-24039fb9ec8c"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"7c91f5c1-7e02-4337-8481-b7d2244b56d4","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"4b336f24-4ef4-47bd-a768-ce8ff0bf3ddc"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"20e89f25-c65a-400b-a8cc-869b078d7170","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"8219cb27-d00c-404c-af8d-707ed0e5bf93"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"ff3d41dc-1eb5-4a88-b7c7-6b1faa935d62","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"69df429a-96ca-4830-b234-a9c214beef8c"}}}],"id":"443747f0-4ea7-4b53-8a90-a082fdcac398","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1870,"y":80},"width":150,"height":40,"radius":0}}},"id":"a47a6bda-d071-4447-b3db-4e96c9291f9a","savedPayload":{"position":{"x":13717.649356011434,"y":25466.56084164854},"targetPosition":{"x":13075.403928432961,"y":25732.285101397178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"2ad52fa2-1ac3-401a-b378-3a78078b4d6a","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"going right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"c232a962-f13e-48e3-9b4e-8d4b31931fdb","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"86135c4b-7161-4602-8331-5ada9f2621ea"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"4d1440d9-19a6-4d56-afe5-f76c1cc517bd","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"a19aea16-1776-4222-abc3-9441c55fdff8"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"b6663f69-d7ce-4319-b427-92a3fdcb27b4","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"716af81c-fb38-4488-9e39-73ca2fdbaa21"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"d9ba5892-a4b1-4d97-8739-3c879090c7d7","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"48bafad6-7649-4128-ade0-c9d706fc895b"}}}],"id":"2b2e2169-5bbc-46f5-9553-c25749610b3b","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1720,"y":80},"width":150,"height":40,"radius":0}}},"id":"7f4852b6-d5fd-4c6b-b02e-61b72a1f9d9f","savedPayload":{"position":{"x":13764.664742539624,"y":25641.73740636788},"targetPosition":{"x":13075.403928432961,"y":25732.285101397178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"5ea7cfcd-8717-4f6d-8ef0-394509af038b","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"going right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"a5bb774c-cf9c-427f-a66b-424ed54a815c","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"c53d8a77-b1d4-446c-9bef-8458b832c5e5"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"46159a77-54c6-4a3f-9423-0eb43acca50c","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"0f1e10be-0da8-4d10-93d7-35e407579cb0"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"a7b4661f-09e3-43cd-8783-d4fa014e9e33","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"a85fc58e-5b58-449b-b733-c3a623e1d5d4"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"48963159-f811-462a-bcab-09573a2bfaec","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"302de277-a428-4cc0-8757-b2ef7de6040b"}}}],"id":"9b7cda1d-5fcd-4840-983d-5d168dc1ef21","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1570,"y":80},"width":150,"height":40,"radius":0}}},"id":"93865aa1-19b2-4e2a-ad9d-84e44247e3da","savedPayload":{"position":{"x":13764.672526378674,"y":25823.180741164284},"targetPosition":{"x":13075.403928432961,"y":25732.285101397178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b28baefa-7061-48f9-b410-7d74dd1f4d06","savedPayload":{"position":{"x":13075.49864690815,"y":25732.164231182436},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":645,"y":-155},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"Binance ETH/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2018-12-28T18:29:04.249Z\",\n \"toDate\": \"2019-01-08T14:51:37.101Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"699a1ff0-ab65-41a6-bce3-44c3a753483a","savedPayload":{"position":{"x":43433.904964020134,"y":31090.08122008158},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3940.7984598459843,\n \"maxValue\": 4470.5984598459845,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"f42902ce-0143-40dd-9287-c560e8ce46f3","savedPayload":{"position":{"x":43522.58881136428,"y":31164.598399546274},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"31c4bebf-859b-4116-9c38-7c2e34184ac2","savedPayload":{"position":{"x":43586.959939711174,"y":31259.03996760349},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"805eba9f-f77c-49f0-85ee-9a7dfb13611a","savedPayload":{"position":{"x":44078.64999458624,"y":30934.89460131808},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"2d7d22ec-f671-4090-9c9c-e4b0c6c2775e"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a72c458b-99dd-4001-ae73-11d0cb988e10","savedPayload":{"position":{"x":44163.85123076828,"y":30946.443093510883},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"64e94c82-d070-485a-a117-01a4b77412ce"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"bb5d27dd-b313-479f-bbab-4d8a521c37f5","savedPayload":{"position":{"x":44241.83694393738,"y":30974.63232510084},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"36099c73-db76-421f-a708-3034438521fd"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"206ef498-cbea-48b7-b08f-7a36c4e1fb37","savedPayload":{"position":{"x":44311.67549610568,"y":31016.49344919726},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"85bba657-c6e4-47bd-ba9b-90896d7a0dfb"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"39ca8f80-549f-471c-9506-258f30dade07","savedPayload":{"position":{"x":44371.85960146544,"y":31070.221683842996},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"7c579b34-cec9-4088-8356-6456aaf584f9"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9c8e874d-9dbb-4bc6-8161-986419151b40","savedPayload":{"position":{"x":44420.81779483182,"y":31133.88297441118},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"f70fcd18-3dcb-4fb4-b6a5-3c747fffbb4c"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d86287b4-92bf-42ee-9dbf-008553c795c3","savedPayload":{"position":{"x":44457.117328935085,"y":31205.319635425785},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"a74b855f-2618-48a1-a205-912c0706d557"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"01e45723-4cce-4b00-865b-fa232762dfb0","savedPayload":{"position":{"x":44479.64133141089,"y":31282.130540258924},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"f1c226bf-68b1-4cc3-bbfb-719742db129b"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9f7b60a5-b12e-4afb-84c2-2e2868ffcf21","savedPayload":{"position":{"x":44487.61147096234,"y":31361.728456129385},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"4a2e6c31-6ac4-4cfb-afd3-3a80351f820d"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"df25cdbc-790f-4d4c-a0f8-30214b6fd726","savedPayload":{"position":{"x":44480.78341149639,"y":31441.3959689604},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"9e8c58c4-c1eb-4465-b679-ac9d3e8f4c4e"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"7781823f-9fe6-444c-8591-f65f39d89743","savedPayload":{"position":{"x":44459.48592250235,"y":31518.457632189642},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"06c72bab-01ca-446b-a0b4-7d7eee109839"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"9ce7c994-f323-4a0b-972e-c316bf4a9b4a","savedPayload":{"position":{"x":44424.41129890276,"y":31590.302021321455},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"1e19eb33-7c3f-4b24-99e3-e5bf275a4b14"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"2462ad5b-0d73-47cd-8161-d59d5261fa5d","savedPayload":{"position":{"x":44376.75954564685,"y":31654.50449366559},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"559be759-fcc7-4c8f-bfe5-fe2ad5699e64"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"42cc3795-0ca6-4ac2-8099-af04f462d21f","savedPayload":{"position":{"x":44318.14175549443,"y":31708.891385093266},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"f7bb88aa-5624-4164-8353-c1006976ce5a"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"cf3f0195-0693-4243-8399-c167b0f6bf07","savedPayload":{"position":{"x":44250.60221948984,"y":31751.772743890055},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"ca3b14d4-b9b4-42be-89c9-d1f6f03e2584"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"fddac395-2857-4f42-8b41-305eee2c1e10","savedPayload":{"position":{"x":44153.02320691994,"y":31784.13904467631},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"3616f54f-d12a-4a33-8493-d79943095b40"}}}],"id":"f2dcf101-d9bd-4297-9201-823b7debaa3a","savedPayload":{"position":{"x":44141.821764465945,"y":31355.229987239374},"targetPosition":{"x":43626.31800703183,"y":31407.414884109556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"df038364-e775-4528-a227-fa875c19f7b5","savedPayload":{"position":{"x":43623.85978187672,"y":31362.647150527082},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 32053.26160624008,\n \"maxValue\": 40957.28287001507,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"5c58e2ee-804c-4a67-919f-d834d581a68d","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"414562d8-2e0f-4f8f-bfb0-cfb5a31880ca","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"77bbb005-e635-4a07-a00e-5d0f25bc9084"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"0535c50a-23d0-4705-b91a-88cddb59d4d8","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"43437758-d954-4c53-ada2-16f6b5d4318e","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"1f6ea583-6ef7-4b14-a641-fbb5426955e4","savedPayload":{"position":{"x":43633.74577614054,"y":31475.276430635626},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 10.828749541620834,\n \"maxValue\": 14.828749541620834,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"773da424-57da-48d3-875d-e01eef767717","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0a382b1f-e874-4350-80cd-ec73916149f5","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"83fd70d7-063a-491e-bb0e-49da3fdbbc79"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9fbbf4be-3ce7-415a-930e-e6a3d02eddc7","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"a22caa08-ca88-4217-a718-54256191090d"}}}],"id":"28292fb6-dfdc-44b9-9afa-227f5974d535","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"f476c36d-6c43-4e30-9c55-8684391ad26f","savedPayload":{"position":{"x":43611.43180799584,"y":31591.37193734411},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 10.828749541620834,\n \"maxValue\": 14.828749541620834,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"a6ffbee2-3867-4fe9-90e6-e2417d894178","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6f4a9e10-5e9c-456d-8642-f6779e221e54","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"077fe5ec-7fab-402b-b39a-752c0b8ee216"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c1158754-048c-466d-ba17-416db7ed07f5","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"32daacad-779a-468e-af1e-f481169a140a"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"f51dae0d-7e3b-4a10-8915-2bbf5cc9bee0","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"5c5274f1-d2e6-467a-b0d0-5c608a7f8cd1"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"eecd623a-7b82-40a0-a604-6e402c9464d6","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"6b2f9252-dd53-448b-9ec3-b40f38d6967b"}}}],"id":"ca66c75f-f88c-47ca-ba33-5ee784038dc2","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"f390155c-756a-4be4-8093-e0ef94476c19","savedPayload":{"position":{"x":43559.23277912925,"y":31694.525566454333},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"68d8485d-1bdc-4395-87c6-ce687464c1e4","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"0ab57e23-ab14-47e0-a50f-8aa7464d3f5d","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"d7302c42-c04d-4e40-ae81-53a3d5ab6973"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"84fe17d7-bda4-48e3-9a43-43d6bfdbf8a6","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"7cd519e8-5891-49c9-85ae-ee9be4af47b1"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"4f5547db-e1f8-4deb-b6ae-58ef45bc1ef4","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"983419aa-c0b7-443c-9662-ab5ebc7789bb"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"cfb55e6a-9387-43a5-8a0b-8e0cda359654","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"a7e568fd-34cc-4947-823e-de9537a218f4"}}}],"id":"8be39a23-6611-472e-96ed-394ea02ac636","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"d530efdd-1324-484f-b2c1-92bc12cbd09b","savedPayload":{"position":{"x":43484.72851305459,"y":31777.876573021833},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"19e51e34-661e-4204-83af-13ef68bc7807","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"78870996-4a8e-4cc3-8d66-c1b2f07d97ec","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"9dbc8439-506c-45f6-9fff-53efa1b9e49e"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"71c41284-7fc1-4d83-8b61-c492ead438aa","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"72912a92-465b-475c-adba-38eccfdc3feb"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"b9797404-7640-4e55-807a-9826be6621b6","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"4df740e7-dc01-4d8b-a524-921242be2461"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"4388dcf6-2dab-4454-87c9-01c2a5f27d38","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"78f9823a-c50f-4181-851f-6e7ce7dfec68"}}}],"id":"f4a3c54a-0fcf-4918-a613-95fe1c0a06dd","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"ea966d65-7a93-45e7-ab7d-cfda2d6a85ad","savedPayload":{"position":{"x":43391.02991247641,"y":31839.99226140119},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"427a99b5-ef71-49ff-9518-90fec57a9384","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"9d47d0cf-879d-4213-802c-b3a534ba0022","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e08f86ed-a70e-4992-a629-aba8cb5974a0"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"d8cac6e0-b778-463e-8dc0-5f797af10cce","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"2fa173f0-7dc6-4092-a353-df11cbbf94e6"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"a32c8571-3a19-43ba-9545-f7f19b021f7d","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"1480e422-f905-462a-8472-4abef0c8a9c3"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"e8ffaf4c-43b9-4559-b40e-1dadc2c11ec3","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"371864f3-f899-49bf-9550-8eeac54cc4e0"}}}],"id":"f237e640-98a3-487f-a369-a3e1ce38823b","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"d0e3a339-765d-4ff1-bdbe-3adfbe41f2de","savedPayload":{"position":{"x":43284.22656791505,"y":31876.045500857595},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"1c6f1b36-a915-4deb-a32a-89d0cd20f53b","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"11dc3541-b7d7-4a6d-85f3-0e63bfede7df","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"ac6e339c-3702-4311-81c7-b6a4f6e556bd"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"50bbd2c5-5122-471b-b51e-9ad85398e6ba","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"75198a71-5f02-4975-b8c6-161e883c946b"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"089811d4-6414-48b9-a57e-dda6db7663e6","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"bb3a2219-7fa9-466a-99c8-7d0143ba9cd2"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"d2888f96-dfa2-45e6-be1f-0d85098c7962","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"ae479800-3046-4727-a7fd-c34eb55facd5"}}}],"id":"ffde7ab8-815d-456d-b6b6-3124781c898e","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"6551eda8-5430-4bae-ab36-97fbfdcdcc67","savedPayload":{"position":{"x":43156.82064724961,"y":31879.74004634101},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"df4b659d-8864-49f3-ba9b-6b75d1030c50","savedPayload":{"position":{"x":13301.016472323434,"y":25882.710338356064},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":645,"y":55},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"Binance ETH/BTC","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2018-12-30T23:22:24.048Z\",\n \"toDate\": \"2019-01-10T19:44:56.900Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"8c69056f-09e0-47be-bd6f-7e7f8043f883","savedPayload":{"position":{"x":43433.904964020134,"y":31090.08122008158},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3540,\n \"maxValue\": 4069.8,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"764a2b8f-af55-42b7-869b-8308902e8fae","savedPayload":{"position":{"x":43522.58881136428,"y":31164.598399546274},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"997933e3-e9ca-4a35-8b8b-999ae72cfafa","savedPayload":{"position":{"x":43586.959939711174,"y":31259.03996760349},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"84396b1c-ff1c-4c49-bab1-52c6efd1e907","savedPayload":{"position":{"x":44078.64999458624,"y":30934.89460131808},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"16b9f4a3-a8d5-4dee-9e06-ebf6dc99a0dd"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b1a0cd40-1bdf-4142-a6ca-af39576c3339","savedPayload":{"position":{"x":44163.85123076828,"y":30946.443093510883},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"ad4e270d-d05a-4c08-a5d9-77eee5b0c1df"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b47b3606-0682-4ca9-9176-f3e4c372a052","savedPayload":{"position":{"x":44241.83694393738,"y":30974.63232510084},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"f5a6c648-702c-4a09-b31f-172a39667a0d"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"750e7503-336e-4459-9f1f-17cfe7ec0c7a","savedPayload":{"position":{"x":44311.67549610568,"y":31016.49344919726},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"b79faabd-ce5d-4c0f-83f9-cf92872ef865"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4c45a86f-683c-4eee-863c-bc34db00039a","savedPayload":{"position":{"x":44371.85960146544,"y":31070.221683842996},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"3f5f5748-7e39-45c6-9e35-f9ef72ee49b4"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9ab6879f-0294-4b49-825a-6af5e1b00173","savedPayload":{"position":{"x":44420.81779483182,"y":31133.88297441118},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"a61f956e-17b3-4dd7-97a6-d752909f25ba"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b4da46b9-581e-4a4e-b328-c6e557881302","savedPayload":{"position":{"x":44457.117328935085,"y":31205.319635425785},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"6e7ed7af-2ab2-4c26-a945-5ff282ba708e"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"98e8b274-c06b-4a0f-a558-55df44d0aff4","savedPayload":{"position":{"x":44479.64133141089,"y":31282.130540258924},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"fdee854a-412d-4da3-bfc6-097328a7b08b"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ec864951-6115-4788-8d60-3c0c5a445b6f","savedPayload":{"position":{"x":44487.61147096234,"y":31361.728456129385},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"d65052b9-889e-4e5b-bf27-1f69eac2c1dd"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7651503d-04f1-402e-bc7b-b0a23863d923","savedPayload":{"position":{"x":44480.78341149639,"y":31441.3959689604},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"7bb9b38c-0720-4cba-93d0-5e8df34f7b37"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"76fbc7a7-c634-4298-9215-651e300d639e","savedPayload":{"position":{"x":44459.48592250235,"y":31518.457632189642},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"f50e39e6-fccf-4641-a5b9-c4999ea85bc9"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"af058dfd-083b-44b1-9c7d-927b0b96155b","savedPayload":{"position":{"x":44424.41129890276,"y":31590.302021321455},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"b9800757-deb3-460a-b21a-b1ded164bfe3"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"5ee5f14e-2b39-48e2-bfdb-5f13d58a21c5","savedPayload":{"position":{"x":44376.75954564685,"y":31654.50449366559},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"2d36dd55-4a17-4c7c-ad99-f8e155cf79df"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"f9045e10-ba18-4bd3-be0e-9f59e56a2891","savedPayload":{"position":{"x":44318.14175549443,"y":31708.891385093266},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"6260b35f-cb85-462b-b231-75d0300c319b"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"186448a2-a517-41b0-8876-6b8b0ebf01c7","savedPayload":{"position":{"x":44250.60221948984,"y":31751.772743890055},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"dae4c509-b392-48fb-8719-c885e113e582"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"f3a0282e-2443-493f-9e3d-8d75d9a972fe","savedPayload":{"position":{"x":44153.02320691994,"y":31784.13904467631},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"3a752ddd-2215-4875-9d30-bdafa1e56330"}}}],"id":"bce536ce-7871-4fb6-87cf-21f3247fa1af","savedPayload":{"position":{"x":44141.821764465945,"y":31355.229987239374},"targetPosition":{"x":43626.31800703183,"y":31407.414884109556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"830b6530-00cb-405f-9233-8c41afb003c3","savedPayload":{"position":{"x":43623.85978187672,"y":31362.647150527082},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3496.3969296811883,\n \"maxValue\": 12400.41819345618,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"68511546-2393-4ddd-98ef-6f089889c6dc","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f88a6522-cb98-41fb-b32e-be4c6444a4e2","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"3e3efaba-d646-4ed1-84e4-e557d6577cff"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"c969c06e-a064-483d-85e8-5b12f6519fd5","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"86342cd3-4aa7-40af-9a05-579f3cbdcd2f","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"2d09aa0a-7630-4abe-a9b8-0419bdd8513d","savedPayload":{"position":{"x":43633.74577614054,"y":31475.276430635626},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"c78d1550-4b18-4822-bd72-572ce66ca0fe","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f74bd610-ba0c-4033-b12d-c5813e404a0a","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"6b44528c-99f2-4481-bb5a-4543ce9eeb23"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0df32ee2-4048-423d-bc7b-96ff716fc702","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"762df080-244a-44a5-a10e-e6f90547e039"}}}],"id":"9a83438d-0215-46d0-a8b1-e1f2433bff3b","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"e16b3e9e-6a75-4ec0-a8c6-63011ea690f1","savedPayload":{"position":{"x":43611.43180799584,"y":31591.37193734411},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"b46dca0e-7f5c-46e9-9d04-36000b9375bf","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f744923e-d6f0-47b6-b455-a57118a92280","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"37aea73f-0321-4711-82f0-27f2331851f9"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b321f5f1-c71c-4306-8626-f61886b481a0","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"4dd66811-c216-4488-80ae-f5fb86527782"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"b2d1c6e7-57ad-4cef-9ab1-da6940e4088a","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"cdeb9d99-2e44-457e-aa1a-77e4e83128f2"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"9e7f734c-6467-4c08-89a4-6e2290a4b876","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"8c7efbf3-df1e-4d2a-b16f-2c44610a92f0"}}}],"id":"a7278c61-6298-49de-80f8-4d8a8005801a","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"e4f3f06e-86c0-4c2a-9d02-301615231dc9","savedPayload":{"position":{"x":43559.23277912925,"y":31694.525566454333},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"1f88c46e-37f4-49cc-aafa-331cd26af2bd","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"9a56f1f5-c29f-44c6-9af7-eae68078cb68","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"ccf46688-a170-415e-b02a-2086ea54303a"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"a917d3a3-b79a-494b-b62b-9b6c664c2873","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"d4ec1ce0-bb1e-4264-bf21-cb8a5fc1a503"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"6537a0a8-6d18-4e44-8e03-cd428aeda997","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"a31e1238-a02a-4f7f-afb4-4eccb55d7134"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"89584d2e-6a59-445c-b39b-972621dd8c50","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"979497e1-fc1d-45ff-a315-dc38732d1f5d"}}}],"id":"daefa7a9-c7a9-4534-b7d8-c226b9c4af15","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"797a44ca-69f0-4f8c-af9f-10f5964b0565","savedPayload":{"position":{"x":43484.72851305459,"y":31777.876573021833},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"8197664a-1915-454d-8a79-1f1f4b940bd9","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"71fc47de-6b54-4fce-8985-f753e4801ee7","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"fb7a0d59-28c0-4e85-8263-2fca9291395f"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"f8c8bb80-84d5-48fc-804d-eb982651825f","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"a895b4b5-54be-420d-9f60-4afefce04b20"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"f7f685ba-e080-4caf-8096-5d459eef42b6","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"dc4f0ddf-405d-4f6a-8954-3dbab72561ae"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"6b108485-e675-43f7-b1d5-47bd027af4dc","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"ed2abc11-a45f-4e39-b4ae-ef677aec9690"}}}],"id":"23acf30b-a19d-478d-a5d9-c6a11bee8b02","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"dd5b992b-23dd-4a4b-8bad-208c04c5cb46","savedPayload":{"position":{"x":43391.02991247641,"y":31839.99226140119},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"ee362d29-7331-4198-a88f-1e5edd42d1f5","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"69377e5c-dec2-475c-9b1b-65a8fbfebea0","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"b34828ab-b807-49c9-ad9a-dd42c0f4f656"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"526575a2-f546-4985-8cc5-e6424f7c42ee","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"8624e12a-5ed5-45d5-b142-f80182af0633"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"4f6fe777-cfed-45a7-987b-53502c1f9077","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"6555b383-f5e5-4dbf-8a35-47bcfcec27a5"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"b4409acd-4f46-4436-8350-989262553da6","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"248329f6-dff0-473d-9a8f-ef4cd20669f5"}}}],"id":"ef202075-821c-43d7-bfba-92db4a538fcc","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"611c2dde-a670-45fd-8282-ea44816d96dd","savedPayload":{"position":{"x":43284.22656791505,"y":31876.045500857595},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"d90939e8-8631-4a33-9e43-203e9ed71093","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"7ad19bf4-a2b8-4ddb-b2f7-8d66b8f1daad","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e2ac8a3b-67a4-4fb0-92e7-520cccb48d82"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"22d1d089-2ceb-41f6-9b2e-bf9416294446","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"7a5fb561-1307-43e6-9b34-2a35dac865ad"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"1d20a79b-5eb0-4dcd-8da4-cccdda6df9c7","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"2e976c51-c1c9-4347-9db2-7c7deca89d28"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"831df92d-4013-4327-b40f-4d1019d0aca9","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"24962019-f13a-4530-907c-492af5dd145d"}}}],"id":"915d9cfe-a623-4d1b-b9cb-88392dac2988","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"438cac4f-365c-4323-a26b-a54f1e5aa407","savedPayload":{"position":{"x":43156.82064724961,"y":31879.74004634101},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"35d8c1ec-b36d-4daf-a392-a4bfaf2920e4","savedPayload":{"position":{"x":13451.586371422298,"y":26108.008969359016},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":645,"y":275},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"Bitfinex BTC/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-03-11T00:00:00.000Z\",\n \"toDate\": \"2020-04-24T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"e531739b-5332-437d-8d13-7e2891f3886a","savedPayload":{"position":{"x":13684.219125396925,"y":25702.488382545678},"targetPosition":{"x":13504.323467754602,"y":26373.61775161554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3800.9,\n \"maxValue\": 13969,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"1da9c8f6-9c11-4c05-b555-256a124fde58","savedPayload":{"position":{"x":13852.268073620487,"y":25772.12340913945},"targetPosition":{"x":13504.323467754602,"y":26373.61775161554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"f9b9861d-806c-4a7e-b112-3498937a9583","savedPayload":{"position":{"x":13996.374635914955,"y":25882.50928983947},"targetPosition":{"x":13504.323467754602,"y":26373.61775161554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"loading\",\n \"showPanels\": false\n}","id":"b6646ed3-1c86-474b-9f18-9582307c4b3d","savedPayload":{"position":{"x":44078.64999458624,"y":30934.89460131808},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"8ca5590a-f8fd-4451-beb4-6f129503917f"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c68d6a1b-499f-4500-827d-00016f045c91","savedPayload":{"position":{"x":44163.85123076828,"y":30946.443093510883},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"51e94a87-e6cf-4245-a74b-96c3032abb05"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2d364b62-deaf-4195-80d9-a632191abe13","savedPayload":{"position":{"x":44241.83694393738,"y":30974.63232510084},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"a5534859-2c15-4848-8083-a1eb33485e21"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f4dbb99f-2b6f-4cc0-8ce8-e188c3fcdfac","savedPayload":{"position":{"x":44311.67549610568,"y":31016.49344919726},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"8969e130-aa60-47c1-a301-99f1908db6df"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ab65e7e3-8a92-4602-80df-580327fd2220","savedPayload":{"position":{"x":44371.85960146544,"y":31070.221683842996},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"56d92d99-a094-4b18-9e22-37eba7b7dfdb"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7f8990ac-b41f-4283-9f1b-721462cb7598","savedPayload":{"position":{"x":44420.81779483182,"y":31133.88297441118},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"eb35295a-b358-4688-8482-74307091466e"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"322104e7-278c-4420-969e-87f4bbb870f5","savedPayload":{"position":{"x":44457.117328935085,"y":31205.319635425785},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"158d1589-7e86-4a42-819b-f3992495d35c"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2098e265-daa1-4864-ac04-e5283eeef1bf","savedPayload":{"position":{"x":44479.64133141089,"y":31282.130540258924},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"d525e21f-ea75-4844-8e09-87f5f478045e"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f983b37e-c670-4b0f-bc4b-8fe65af3d232","savedPayload":{"position":{"x":44487.61147096234,"y":31361.728456129385},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"d4905d55-abce-4fa9-95a2-1875c16fb4b7"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"293ee942-5d27-4644-a7fc-803edfaa5cfb","savedPayload":{"position":{"x":44480.78341149639,"y":31441.3959689604},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"9e1a2843-59a0-485e-8ce0-e8c98e5a2001"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"6245c15f-7307-4739-8ef3-7e265a0f6978","savedPayload":{"position":{"x":44459.48592250235,"y":31518.457632189642},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"850a58e9-2da0-43dc-b5be-739bd478309e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"4a247561-e97c-4a42-895d-3dd6452225eb","savedPayload":{"position":{"x":44424.41129890276,"y":31590.302021321455},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"891c972c-e624-42af-ab10-056b6d6f194b"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"b63dee4a-4432-48ba-ba61-1520962df5a8","savedPayload":{"position":{"x":44376.75954564685,"y":31654.50449366559},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"dbfb5bbc-ebb7-41da-8a45-eaf75d943736"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"5adcf815-2f03-425d-966e-bce835cd3ae4","savedPayload":{"position":{"x":44318.14175549443,"y":31708.891385093266},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"5bcf67c8-5a50-477f-9dce-c23993104cea"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"a4d4d706-613b-4500-84ab-ed4dc1a63022","savedPayload":{"position":{"x":44250.60221948984,"y":31751.772743890055},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"83243cbe-ccb6-4aef-94a2-5fa4870c674b"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"3eb34c12-9a1c-486a-a05e-36a4fe72e8bb","savedPayload":{"position":{"x":44153.02320691994,"y":31784.13904467631},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"62ae801f-e2e0-4611-9cc0-a3dc66a76da1"}}}],"id":"ee081f41-fa2b-4dce-ac9b-3a90753d586c","savedPayload":{"position":{"x":44141.821764465945,"y":31355.229987239374},"targetPosition":{"x":43626.31800703183,"y":31407.414884109556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"4e5b7cbd-9670-45dd-81c9-ba32c736abd4","savedPayload":{"position":{"x":14106.416207905106,"y":26026.45813447207},"targetPosition":{"x":13504.323467754602,"y":26373.61775161554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3496.3969296811883,\n \"maxValue\": 12400.41819345618,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"eedff2a2-f9d1-4f67-b7cb-d14b9241aa8f","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"258f0f02-d099-4787-9ca7-415f5e4da714","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"40ad627e-1b42-471c-bf9c-5d2ac61811f9"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"392c53ea-3bf6-42b1-a405-74d3376288f1","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"1cb31f2b-c096-420e-9b44-dc7e4e2f65a2","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"98efda27-2cec-456c-845a-eb9641db0319","savedPayload":{"position":{"x":14175.680897182294,"y":26194.006230464587},"targetPosition":{"x":13504.323467754602,"y":26373.61775161554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"31286777-b7c2-409b-96d4-bd146eda485a","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f70ff0a8-9395-4b5a-b8a0-49c818073762","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"1ef0b65e-d904-4a82-bf61-a6ba3aaf5443"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"08c9c2df-d758-457c-affa-57aad392edda","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"90374e6f-9568-4211-b3a6-7c650c45f1e3"}}}],"id":"a21ccb2a-f9a0-4e0b-b4ae-3c0bbcbef247","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"e45c15cd-174e-4964-bb63-facd8dd8b201","savedPayload":{"position":{"x":14199.357314694356,"y":26373.64064063085},"targetPosition":{"x":13504.323467754602,"y":26373.61775161554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"fbc4d6f1-e43a-4248-9f91-d5143d920fe1","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e894311a-023f-4e18-b7c4-6ec0444cdf4c","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"e19f6e55-47de-4f92-99ae-e7e10d755561"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b04f7a03-a426-4077-bd91-ec0e443f3ea3","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"bbfcd667-2876-4432-acdd-c4c18a10da9f"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"7e40af27-aebc-4f27-8bf1-5d1e63d56221","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"3331fec3-bb84-41ba-aec6-e8859970cbf5"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"bfd88231-7f34-4472-82b4-7ffd4ba62c5c","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"aeb10072-f55f-49e3-96bf-46967054f62f"}}}],"id":"d645da34-e127-4f3a-b3f1-206c56bb56d4","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"e5e52607-234d-4301-bea4-b04a9dad20fc","savedPayload":{"position":{"x":14175.531300349332,"y":26553.566796583294},"targetPosition":{"x":13504.323467754602,"y":26373.61775161554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"43bebd72-7827-41da-b16f-7e034b28af57","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"loading\",\n \"showPanels\": true\n}","id":"1752986e-5f50-4518-8e22-9aca61cb0101","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"69356347-8b0c-4fbc-b280-aa9062704fae"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"ab27e94b-86a3-47b0-97cb-6285751730ea","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"454eab4f-b3e1-4bb1-bd63-fdbd0f1a873a"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"loading\"\n}","id":"e9e7a786-f5bf-46a0-81b9-ea6bc6e8d502","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"5754e659-008a-4c78-a74d-abe6cae82799"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"loading\"\n}","id":"0f34627b-0e3a-4749-a66a-5eafb849ce46","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"362e6861-aac6-49bf-b7e3-393fd0e1a4e5"}}}],"id":"232aece5-3a9a-4c56-8c3c-c3535f61a9ed","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":330,"radius":0}}},"id":"7eefea12-e8ed-4d16-9aab-8d05936376d4","savedPayload":{"position":{"x":14106.222996424593,"y":26721.02460245541},"targetPosition":{"x":13504.323467754602,"y":26373.61775161554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"eebc1cdb-81ce-438a-b56d-a22491d6cc51","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"going right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"75ee4020-4dd9-410b-b928-446743007dc9","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"2daaf951-8ba9-41a8-8f00-4823e5a060b8"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"143ea38a-e0f3-446c-a344-167bd62f9312","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"a42db4cb-8572-438b-a904-e09a26239622"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"2cb11cbd-2103-446e-9f9c-2b26854200c2","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"7f2b1543-352b-44f1-bcff-501bf021dec9"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"e492d7f3-546d-4209-bccc-13ace9efb5cf","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"8a5e18dd-59c7-48a9-af1a-963fb114889b"}}}],"id":"de9f653d-3939-48db-97e1-f9c58c0a4c2c","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1870,"y":80},"width":150,"height":40,"radius":0}}},"id":"4b49db02-fa17-4b76-941f-8c759dcdaf97","savedPayload":{"position":{"x":13995.87194101155,"y":26864.936820802617},"targetPosition":{"x":13504.323467754602,"y":26373.61775161554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"7530a102-c1bb-4aac-9f05-ede58f100104","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"going right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"2a955ff3-74a3-4ef1-9ad0-39fbbe96bc97","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"2bb7ea2d-a457-4ac9-98db-36498996679c"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"26bf0648-9dc2-4443-adec-a4bb758357a9","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"80f1751b-0a93-414b-b1ff-a26361ea7ca8"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"a70126df-ebea-4e40-afa0-0e87873d6cd7","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"1702e9f5-5319-4c2b-a42f-66f37ad6db47"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"ea8e4559-6a95-4518-8e98-99ffed62e656","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"7ab2d3fd-c160-4db8-baef-9751dff11606"}}}],"id":"b5d7c656-c91b-4d43-b52a-4b1d18d8e399","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1720,"y":80},"width":150,"height":40,"radius":0}}},"id":"434fb961-a550-47df-a8bf-283746bd2120","savedPayload":{"position":{"x":13851.979153426022,"y":26975.447414686132},"targetPosition":{"x":13504.323467754602,"y":26373.61775161554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"f0c891fb-59de-4fb2-8294-589edc47160a","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"going right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"fe54e021-5987-430c-bdff-623607199d9c","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"516a1509-9f5f-4b61-b68d-9c909d3b8e68"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"f1e202f1-2b60-4d6d-964a-0a0352160d47","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"977ad327-512d-4d5d-9eda-7300e1e9b155"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"2fa0a561-0d63-4764-b294-d4ed7af09fc8","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"c6fc5b0d-ff9b-4bac-a5d5-2202b4b6bf65"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"a7cee5d2-7278-4a82-b478-535bb57e8611","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"b32f6163-26d6-48ad-8cfe-895962be4423"}}}],"id":"27a86b50-2ef5-4047-9465-8b2f775bd7aa","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1570,"y":80},"width":150,"height":40,"radius":0}}},"id":"6bf6c81b-b2f1-4a50-86d3-14f27e791894","savedPayload":{"position":{"x":13684.088040080054,"y":27045.11199800664},"targetPosition":{"x":13504.323467754602,"y":26373.61775161554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8c7d7000-6929-4616-8788-0d9e89284891","savedPayload":{"position":{"x":13504.445299304121,"y":26373.61997826694},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":1005,"y":-155},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"Bitfinex ETH/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2018-12-31T15:38:48.601Z\",\n \"toDate\": \"2019-01-11T12:01:21.453Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"a8650e7d-da8c-4cfe-80a8-a41c5531c665","savedPayload":{"position":{"x":43433.904964020134,"y":31090.08122008158},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3590.156472313898,\n \"maxValue\": 4119.956472313898,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"68bb8d1a-c586-4921-b666-0cbb07bde5b2","savedPayload":{"position":{"x":43522.58881136428,"y":31164.598399546274},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"0e9b5aee-3d2c-4898-9a40-d35d26862b36","savedPayload":{"position":{"x":43586.959939711174,"y":31259.03996760349},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"loading\",\n \"showPanels\": false\n}","id":"c5c3cdec-b047-4484-ac7f-39bed1a200cc","savedPayload":{"position":{"x":44078.64999458624,"y":30934.89460131808},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"db5a0847-7d32-407f-b998-504e6987ac5d"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"79aaa2dc-6268-46b7-baf2-ad866a98f144","savedPayload":{"position":{"x":44163.85123076828,"y":30946.443093510883},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"1b8b981a-f564-4be0-b964-5a6e8aac483c"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0faf111e-fe2e-4bf0-8947-29ca253de41d","savedPayload":{"position":{"x":44241.83694393738,"y":30974.63232510084},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"311b5bc6-89b8-4111-9dff-297c8cada756"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8f6a983c-8dcd-49ef-9aa1-bd8b50eb1777","savedPayload":{"position":{"x":44311.67549610568,"y":31016.49344919726},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"55f7eed7-d7d8-4d6c-aeeb-37dc4f19e250"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"66160c70-7f78-4262-8ba8-5c4b375520f9","savedPayload":{"position":{"x":44371.85960146544,"y":31070.221683842996},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"8443e827-1f25-4628-ad26-ae9b2ed75a4c"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4dc86d7f-0b26-4d94-adb4-62bc544d4b8e","savedPayload":{"position":{"x":44420.81779483182,"y":31133.88297441118},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"b5a92b7b-49f7-4e81-96b0-65139a052f31"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6ebc60a3-0a18-4d1c-a1fa-ea3f9f10ed2b","savedPayload":{"position":{"x":44457.117328935085,"y":31205.319635425785},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"2e75cfc3-0672-4036-ab3c-e442f25e67c5"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"bddd20a7-aa97-4a70-864a-b841ed9e780f","savedPayload":{"position":{"x":44479.64133141089,"y":31282.130540258924},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"6ce07f50-22e1-4067-89d5-35197f49c12d"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5316fdb7-e413-4d4c-82c2-ca406917a19c","savedPayload":{"position":{"x":44487.61147096234,"y":31361.728456129385},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5ee22014-e965-4bd3-9dc4-5f278fa645e2"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"818c80a9-b39d-4360-a9f4-3b23fd240895","savedPayload":{"position":{"x":44480.78341149639,"y":31441.3959689604},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"0bc50648-a584-454e-a1f2-aa10ca3bf584"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"b018792e-a37e-4363-ba05-4e93e77ab7ed","savedPayload":{"position":{"x":44459.48592250235,"y":31518.457632189642},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"427f90de-6fcb-4118-81ad-8edbbc56d69e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"3b152664-597b-463e-bed1-236e299cd00a","savedPayload":{"position":{"x":44424.41129890276,"y":31590.302021321455},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"16c5f929-dfa2-491d-8840-f7364d585534"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"50b279d4-d304-49e1-b2bf-cfa73aab20c5","savedPayload":{"position":{"x":44376.75954564685,"y":31654.50449366559},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"ccd8661e-6c55-4487-85c8-c8a78ef69449"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"0772e54d-778a-425d-b8c1-311284a7e2f8","savedPayload":{"position":{"x":44318.14175549443,"y":31708.891385093266},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"99141ad2-c42b-4a92-905a-a5204bdbd028"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"821bf38d-a5d6-49ee-bd18-c0b988d6f915","savedPayload":{"position":{"x":44250.60221948984,"y":31751.772743890055},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"606c917d-f3c8-4bda-876b-f2a330c9e080"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"28744b0c-89ae-4719-9719-c34e19677013","savedPayload":{"position":{"x":44153.02320691994,"y":31784.13904467631},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"55faf55c-a35d-4fab-b06e-a741c79eb649"}}}],"id":"ca232755-2f5f-4ddd-b204-2a4340bc5d6a","savedPayload":{"position":{"x":44141.821764465945,"y":31355.229987239374},"targetPosition":{"x":43626.31800703183,"y":31407.414884109556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"e30a4604-aadf-41f7-8945-5731dd6ee563","savedPayload":{"position":{"x":43623.85978187672,"y":31362.647150527082},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 6812.685010688694,\n \"maxValue\": 15716.706274463686,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"7d8b90ec-3f7a-48fe-8705-be48e108e286","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"86828650-015d-4051-9e64-995d2025d4de","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"1aa532fa-b407-484a-b905-ffcaabbd18dd"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"59638125-81b4-4094-9f0f-37b0c20ffdc9","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"9b682fbe-d8bd-413e-836c-3ddf8ccf47d0","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"6fa17804-6ff7-4057-b907-67775deafab5","savedPayload":{"position":{"x":43633.74577614054,"y":31475.276430635626},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -0.5102065762131769,\n \"maxValue\": 3.489793423786823,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"45bd86dd-cc8f-4016-865a-2a0af24a550a","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"350cf048-3185-4f5f-910b-72c7284d2f0c","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"6318dc61-c509-4f55-8bc1-f8c354750373"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a6763dc6-4678-4389-85aa-6926a5d65b56","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"6050a905-5b53-4564-839c-704689a8040c"}}}],"id":"6dfbd50a-4ef1-458a-9b34-a77d60abf662","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"72293414-37ca-475a-bbd4-9717690f47e4","savedPayload":{"position":{"x":43611.43180799584,"y":31591.37193734411},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -0.5102065762131769,\n \"maxValue\": 3.489793423786823,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"377bf713-5c7a-482c-8ef4-a60c95729158","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9f8b8e76-ff65-4c71-b7e1-7c6510784cfb","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"91c0af7b-fb28-4579-a9cd-f3bb72d3a7b5"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e110212f-eea2-4b99-8d4e-329c37a8e31a","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"c691a7ca-0ca2-40e3-8d3c-0aa2d0dc67df"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"c9e24440-2953-4840-974a-6a016f397d3a","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"e70866c1-2510-4173-955c-c5f051675fc2"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"62b2ff62-6e32-4bef-a438-b5b842fdb708","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"244258eb-32a2-4461-82b0-189843ae2938"}}}],"id":"9d808f92-5623-41d2-8b24-d6cd3b680218","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"7dd7c695-a8ee-47bb-831b-9caf8ee15e4f","savedPayload":{"position":{"x":43559.23277912925,"y":31694.525566454333},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"fa1b1ac5-319e-45f3-a828-ae0491238b93","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"8ea1f068-7903-4350-9804-1bb7dcd57dad","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"8b53b255-12d3-47b3-a871-0d851c8bc8ae"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"40b91c05-5243-4cc6-9255-bb06154daa19","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"843d8d51-1117-41ff-a49a-8c4997ab4c2d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"296a83cf-8f64-4407-ad07-1d337782ac87","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"47996c06-9545-4455-ac2d-d1a7ec09fa55"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"61c90677-4d8f-4f14-be83-d30bf5cd153b","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"98b9505a-321f-4a53-9f26-285e75511bf3"}}}],"id":"2cf35211-9861-4a90-8972-645ab286460b","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"033d85be-c0dd-4570-8093-7500a2710413","savedPayload":{"position":{"x":43484.72851305459,"y":31777.876573021833},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"4f50b7c6-f08d-410e-8a06-9438a0ac3e07","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"dc8399a3-7e4e-4ff5-ba62-d3855245e395","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"56f265cd-0b1e-4a6b-be41-edfed0323a0b"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"8fc527b1-db08-4fad-b7ba-ed6406518bb6","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"e644e7dc-8362-41dd-b4be-e2cc5dd6a117"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"6f9cb609-4107-42c2-b2d6-2b4b1c0c4f22","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"7b70c767-5bd4-4933-a691-7a92e80bf40c"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"9ab6166e-2d07-4b48-a496-7e3c00d4b283","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"97805367-6a8c-4b1c-b44c-6621f76e23e9"}}}],"id":"4057ad65-1872-4897-986d-39b2281ad1bc","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"132c1457-e1fa-4993-ac55-dc90af0dffd1","savedPayload":{"position":{"x":43391.02991247641,"y":31839.99226140119},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"0e7b3ad2-0e03-4c26-a0dd-a0ad942668cd","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"6d010c66-a351-4d60-9dff-e3ee9a0ccd45","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"57f048db-6099-4b22-860e-9ee0d03cb642"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"7a8f8467-2453-4752-ad91-35c35844ed63","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"011bbfc9-2c72-4295-b4ba-f620003b7687"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"28aed64f-f955-4162-b9f4-196474dbd61a","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"160d4652-15a8-44dd-a230-a5c5bd4fd8de"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"62d0f779-2e68-4e39-bd66-611bfd2e39e9","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"8edfaf6e-b6d8-475c-8378-29d8605515b6"}}}],"id":"985b1c32-0576-4e48-8243-00f14bcc194b","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"ded54412-a26f-4111-96b5-5f18c52833cc","savedPayload":{"position":{"x":43284.22656791505,"y":31876.045500857595},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"9a052def-9dec-4205-8562-73f7259ba237","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"db3eaa08-c826-4a3f-94fd-e23684d1809d","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"d3366b10-fa22-4725-baf9-7a32e539ea1f"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"4d7e6601-359c-4281-b08c-9bc061438682","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"eab6c873-15e1-4d89-be61-283ce19466c4"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"f7ee4e90-f489-4976-ae9f-a82ffc97358e","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"85e9d71f-7cde-48d6-b2c7-941c201ce607"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"b0cd36d1-0d28-499c-8625-b5672a6315ec","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"dfcaaffc-321f-4c66-a3f7-71204cc2270d"}}}],"id":"770a1535-5fab-4510-821d-82d07e66ff3a","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"7ba40d9b-1a1b-44ae-8d74-fd84f0e26a6f","savedPayload":{"position":{"x":43156.82064724961,"y":31879.74004634101},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"40de6f0a-4987-47aa-8f51-6d8f0b93a07f","savedPayload":{"position":{"x":13451.563996447518,"y":26639.40326055431},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":1005,"y":55},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"Bitfinex ETH/BTC","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2018-12-30T23:22:24.048Z\",\n \"toDate\": \"2019-01-10T19:44:56.900Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"89b12f3f-2471-4f79-8c35-ee9c84f5d2b1","savedPayload":{"position":{"x":43433.904964020134,"y":31090.08122008158},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3540,\n \"maxValue\": 4069.8,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"44ca0c91-1f20-4629-8fad-a0c16b5712b0","savedPayload":{"position":{"x":43522.58881136428,"y":31164.598399546274},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"da0a15cb-d30e-4236-a6e8-4e559e2b4da1","savedPayload":{"position":{"x":43586.959939711174,"y":31259.03996760349},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"loading\",\n \"showPanels\": false\n}","id":"032d6ce0-754d-4120-a1b4-2a23a50b9ba4","savedPayload":{"position":{"x":44078.64999458624,"y":30934.89460131808},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"7231bf36-59d4-488a-92f6-b86cac06a4ee"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"34f47016-51e3-4fbe-9906-08b7d266392c","savedPayload":{"position":{"x":44163.85123076828,"y":30946.443093510883},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"8cd8fadf-5f8e-4bd9-b94f-60ecc6458b2f"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a3e965f1-7a6f-4832-9d5c-907b16120a9b","savedPayload":{"position":{"x":44241.83694393738,"y":30974.63232510084},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"6d6dbb96-9000-4823-a406-21e08b23d9b1"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"880d2d37-183d-4401-8d2c-b5638502f6a0","savedPayload":{"position":{"x":44311.67549610568,"y":31016.49344919726},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"2e918fbb-7a86-4a0a-a2d6-63f96aba723c"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"184edf22-8320-490e-98c9-582fe839cddc","savedPayload":{"position":{"x":44371.85960146544,"y":31070.221683842996},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"8bbbd6dd-2046-46aa-8371-b72b6a854dd3"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7520f5b2-c119-4eb2-9c2b-931dc6712614","savedPayload":{"position":{"x":44420.81779483182,"y":31133.88297441118},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"1862c44e-a987-400c-912a-700c71afca0f"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"be3cb4a7-d719-485e-8dd6-9bdba0b4b6c5","savedPayload":{"position":{"x":44457.117328935085,"y":31205.319635425785},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"b4723c12-5eee-4332-a2d8-5121621ec67c"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e0c320fc-7b4c-4d65-bddc-f38bc300c350","savedPayload":{"position":{"x":44479.64133141089,"y":31282.130540258924},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"dabf0634-d480-42fb-bb2e-412bd2f5a91a"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8d489395-9f67-4057-b655-50a3d7d0c61f","savedPayload":{"position":{"x":44487.61147096234,"y":31361.728456129385},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"bcd2f058-b482-470b-8b05-524070d15aed"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"895cfdce-7a45-4538-b2a5-1384cef61414","savedPayload":{"position":{"x":44480.78341149639,"y":31441.3959689604},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"1532eee5-30cc-402e-bccd-215e369ec6d5"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"d5fb429c-9cfb-4797-a2db-8d7320aeb3ed","savedPayload":{"position":{"x":44459.48592250235,"y":31518.457632189642},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"7406f236-8c84-4667-a664-a99f4e7f7e9a"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"2bae27d8-c13f-4c79-bfcf-bf679191878a","savedPayload":{"position":{"x":44424.41129890276,"y":31590.302021321455},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"544b0d58-b0a2-4d0a-b93e-6bcc8049bdfa"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"a3002ebd-7ff4-4085-bebc-4b1669f65697","savedPayload":{"position":{"x":44376.75954564685,"y":31654.50449366559},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"b9992ccb-be3f-4bde-bf0c-d4f57adbbe60"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"56f6c241-cc43-41c8-a7ee-010b0de7315e","savedPayload":{"position":{"x":44318.14175549443,"y":31708.891385093266},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"dfec915e-0506-45ec-a312-f479c82f053f"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"d4c623f6-eea5-4dbc-9d3d-f4b9f174bcf5","savedPayload":{"position":{"x":44250.60221948984,"y":31751.772743890055},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"e887f7a3-6b04-4350-b4af-2e93f83a3f5e"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"83154574-ba10-454d-a72d-1d0968b05a1a","savedPayload":{"position":{"x":44153.02320691994,"y":31784.13904467631},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"302cc843-8d79-40e0-91e5-55dd67ec72a1"}}}],"id":"e13efc5e-a424-48b4-8890-d2ee601cddc7","savedPayload":{"position":{"x":44141.821764465945,"y":31355.229987239374},"targetPosition":{"x":43626.31800703183,"y":31407.414884109556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"6976a5a9-d2c8-4e1d-9d1b-dbef3ce5f6cb","savedPayload":{"position":{"x":43623.85978187672,"y":31362.647150527082},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3496.3969296811883,\n \"maxValue\": 12400.41819345618,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"d83bab0c-a813-4d72-bed4-1c17e11cd4eb","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"946e07b2-fd46-49af-b631-2f099ede449b","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"89545d86-176a-4d6c-a3c6-f5aa91bc81f9"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"4876d986-45d7-4d09-9d26-9d239cab05d4","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"52c20de6-beb3-439f-97a8-e8b056249bed","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"1638342a-f663-42cc-b3b0-df53e8d5bbc8","savedPayload":{"position":{"x":43633.74577614054,"y":31475.276430635626},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"dc244739-5d3d-4070-88f2-923d0bd41985","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c127599f-3849-48b3-989a-acf85444886a","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"c8addbbe-1357-4b4b-be80-8d393382ecf1"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ad86f855-344b-4432-b2a7-72e7b9134d40","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"a4462e08-b9c2-4087-8a28-db60b1e73da0"}}}],"id":"1e0d12b8-1783-4f9c-8810-14057539e988","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"973a76f7-96fd-44a2-a057-ded3aa113631","savedPayload":{"position":{"x":43611.43180799584,"y":31591.37193734411},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"7da1794e-4eb1-4392-b741-874d9c81b8f5","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c3c3818b-d7d3-4454-b46f-1222ebe8212c","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"f58fb743-f2a8-4057-a8b1-94de5abfed2a"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"37f04b66-1faa-48db-931e-055135c94cf8","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"abf1cca1-7712-49f0-ba75-5da62c3a392a"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"d824f911-1955-48ff-9b16-1decd0bc1368","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"eb71fb91-c7e2-41ad-9076-8ff6b16f19e7"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"e6a5058e-b3dc-463a-8b0f-2e7a12e2ca37","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"9a1c3271-ec28-4b22-bcbd-d774fd697b2a"}}}],"id":"a4d937fb-fc95-4d0c-8be5-69384b2cbbf0","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"3d4ceb4e-797f-432e-b79f-94baee140c9d","savedPayload":{"position":{"x":43559.23277912925,"y":31694.525566454333},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"bc34dd3f-0fa3-4f82-a9d9-8cd921f09fd3","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"3a1ab404-43c6-4de4-9ee7-3c545a7969de","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"d73f67de-e135-4692-b4d8-f00a28560ffd"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"13eaf6b6-ac3e-465f-b2db-b3a0a0c5c9f3","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"8680d446-bcce-4286-a06c-50406f1d4f50"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"de6f98f1-b98e-437a-8de0-62b2b27e6367","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"abaeed4c-618f-48c7-8e25-fe9ceba6c905"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"096e64b2-4b93-40ed-bb2d-0406afc9f724","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"e806ba98-35cf-4e32-ac95-6acf1a4617e7"}}}],"id":"3cb44505-ceaf-406e-b3f3-37cf5bc5d880","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"14b37af4-1998-412f-b7dc-803be99e00d4","savedPayload":{"position":{"x":43484.72851305459,"y":31777.876573021833},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"82d49445-d845-46b7-ae51-85251d8b5da0","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"09a7ba3f-2328-49db-aef0-fdd70e99ca02","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"7b75ee15-4932-4d1d-82a3-ae281babd47f"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"47f181a2-6728-4c95-bc51-8722a2a39c94","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"057c9f67-a4f4-4976-8f6a-611e3dafce90"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"a596a599-14d4-46ec-935d-3752ac137050","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"d426fa48-5102-4908-a4ec-7c288bb8be61"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"c3b75292-42b0-4b9d-bd76-6cc40164c49c","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"a482b127-3391-4e03-a8c7-d4e589f7ba92"}}}],"id":"89469560-b127-42cc-8a58-e18b502b351b","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"9cd6057f-4820-42c6-9c2a-66c392ef50b8","savedPayload":{"position":{"x":43391.02991247641,"y":31839.99226140119},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"afb3f0b2-ee06-477a-bea4-63afe8a7c674","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"b7a2d83c-a272-4b8e-ab99-609fbb3ad4d2","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"3a1d3d5f-5655-49a9-890d-89f7ba153c24"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"c50064a7-5e78-4721-8931-1a9f2bce7ca7","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"846b361f-f5d2-431f-bfd4-137033d8b7f5"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"4a1fb609-31b1-43d4-bfcc-9a1c3d17f250","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"0905aa96-ac6c-4a0a-987c-d8833fbfd2ee"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"ba7df6ee-bd74-4a27-b809-f3da9f6d7522","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"4bf25656-ea71-44fc-92f9-52f33c327333"}}}],"id":"4db7e9ff-fe45-4ced-baf7-f4625dd1e3f0","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"7b785bfc-93c5-4bd0-89d4-8338d0b000c7","savedPayload":{"position":{"x":43284.22656791505,"y":31876.045500857595},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"82d37fc3-d86e-421b-a2f5-ad85b3808a98","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"30b3bc03-e9d8-4926-8115-7a8c82f6935f","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"91ab681f-50ea-4b07-a7b4-1e8387b91662"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"51b5dc9c-6a6c-4616-8210-def58ea2fc9b","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"c5a1bfa7-a778-41c0-9f83-05af2de17ce1"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"3b1c8662-f127-40a3-9d69-1e96654a4efe","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"4c25509e-56e7-49c0-a78a-61de55438179"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"87ef1faa-8e33-427c-bbb1-c3f56f47bc79","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"e447664b-aef8-4ad1-b097-aa9e44bed78d"}}}],"id":"70f65a16-4484-4ec6-a48e-76f2a04789eb","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"a67a340b-d093-43c3-a6ae-1fe0ae8426b0","savedPayload":{"position":{"x":43156.82064724961,"y":31879.74004634101},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b76768dc-645d-4b68-84d9-68843d7af4f5","savedPayload":{"position":{"x":13300.99102988033,"y":26864.736840044043},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":1005,"y":275},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"Bittrex BTC/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-03-13T00:00:00.000Z\",\n \"toDate\": \"2020-04-24T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"7a9dde9a-fefd-4a5f-b781-f354bf5e893c","savedPayload":{"position":{"x":13799.528957231796,"y":26944.130905258615},"targetPosition":{"x":13110.358854030566,"y":27034.726964050536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 4443.90412966,\n \"maxValue\": 7727.46999944,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"47872058-c6af-46cb-aa66-8b7f0082693a","savedPayload":{"position":{"x":13799.38237102837,"y":27125.673861787873},"targetPosition":{"x":13110.358854030566,"y":27034.726964050536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"a9f36b8e-37d2-4ede-927c-5dcdcd75eb93","savedPayload":{"position":{"x":13752.466996706977,"y":27301.172488449643},"targetPosition":{"x":13110.358854030566,"y":27034.726964050536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"ceea40ed-3f2f-4aa2-b717-68216cdd559c","savedPayload":{"position":{"x":44078.64999458624,"y":30934.89460131808},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"18386b37-31c2-4e85-8e17-e46e036de5b9"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"72c012e4-a71c-46d7-bcaf-3a93c8c198ea","savedPayload":{"position":{"x":44163.85123076828,"y":30946.443093510883},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"c944bfd2-3366-4ef8-8d86-17fb07b8236b"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"37e95050-6f77-4e17-ae98-e957e930f3f1","savedPayload":{"position":{"x":44241.83694393738,"y":30974.63232510084},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"f058cb8d-ac26-49b2-a71e-03b6da20cf2c"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e5524af3-272e-4d23-aba7-b4b30aa456ec","savedPayload":{"position":{"x":44311.67549610568,"y":31016.49344919726},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"712a8c20-3a29-4c01-8292-9f7dd49626d1"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a6c418fd-031a-4505-9a0f-974c4e0e8bf4","savedPayload":{"position":{"x":44371.85960146544,"y":31070.221683842996},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"c93aa11a-f985-47bd-b455-7e29e74ae110"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ca9f6507-0b56-481e-98d6-1176bdbbc743","savedPayload":{"position":{"x":44420.81779483182,"y":31133.88297441118},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"a1bdc52f-a93c-468a-9a57-3730eaf653b0"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2243194f-9a07-4eee-a314-d6f271eecd03","savedPayload":{"position":{"x":44457.117328935085,"y":31205.319635425785},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"ad145a69-4b17-4d3e-ac0d-8457100b79db"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"56e90ee6-2eb2-4e33-ab4c-c250c63b4054","savedPayload":{"position":{"x":44479.64133141089,"y":31282.130540258924},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"8cb86b9c-bd1c-40f2-932d-39c3463c281b"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c4e79ae1-e428-43de-86f5-bbc08774efc7","savedPayload":{"position":{"x":44487.61147096234,"y":31361.728456129385},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"ae18cd86-b31a-4205-84ee-1ae5fa13a80e"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ca3c5439-abd1-4edf-9e02-dabe111fe3e3","savedPayload":{"position":{"x":44480.78341149639,"y":31441.3959689604},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"3249ddb7-692a-4c09-a4c3-77b96b0a64c7"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"c45df9eb-777a-4007-b902-fa5265c44d2d","savedPayload":{"position":{"x":44459.48592250235,"y":31518.457632189642},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"cae7b3ba-fe2c-47de-8df9-d06e4c8f461d"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"a6be3fb6-5ebb-493c-86a2-7324fce40a44","savedPayload":{"position":{"x":44424.41129890276,"y":31590.302021321455},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"4d76dcf6-8f1e-46c9-a635-36f5c2afa299"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"9cade318-d532-4d28-b597-955dce5f205c","savedPayload":{"position":{"x":44376.75954564685,"y":31654.50449366559},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"f06e0f2d-3494-488a-9d61-fe8ceaa22294"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"5c80d050-3c20-4a7f-89e5-c0da94239d59","savedPayload":{"position":{"x":44318.14175549443,"y":31708.891385093266},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"a660ba6d-92e9-46d4-9a44-a3f753acc5c2"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"941ad68e-7555-4264-a541-c29fa76d6070","savedPayload":{"position":{"x":44250.60221948984,"y":31751.772743890055},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"ec9da642-733f-4906-9030-bec8f124af77"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"23e640f4-23ce-4cff-bc8b-5c63a8732049","savedPayload":{"position":{"x":44153.02320691994,"y":31784.13904467631},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"b7652a67-6fd3-458b-b1e1-c44781a2a277"}}}],"id":"261ff836-e743-49a1-990e-552935ccd40e","savedPayload":{"position":{"x":44141.821764465945,"y":31355.229987239374},"targetPosition":{"x":43626.31800703183,"y":31407.414884109556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"0844cce8-22c8-4079-ba31-1054cecb7ec4","savedPayload":{"position":{"x":13661.584326147236,"y":27457.95372947329},"targetPosition":{"x":13110.358854030566,"y":27034.726964050536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 18056.069782096463,\n \"maxValue\": 26960.091045871457,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"72e200ac-a50d-4e4e-8efb-f8cf7c17893f","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a93fd35b-ed72-4f49-b1f3-225a78c32ba6","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"bf4456fc-661b-4059-8cd8-9249de117055"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"f214a68c-7a77-48f4-b2cd-c8a1d4a1928d","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"98a9bba7-01d0-4b9e-bdda-8d278056f7bb","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"cbe3e2ef-3e97-4a21-ada9-e729ddb70d46","savedPayload":{"position":{"x":13533.39773116788,"y":27586.066224927305},"targetPosition":{"x":13110.358854030566,"y":27034.726964050536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 4.540717916588839,\n \"maxValue\": 8.54071791658884,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"528505ee-f551-4b86-900f-21b8d8eabfe1","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2dd8f051-c3e7-43cf-9651-341c83f1f0c9","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"c6b2aa08-7810-44e7-b41e-cf2c5ed6bdaa"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4fd3a016-61a6-48fe-8c5c-32bce914dee3","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"f40c85ab-ea9f-4218-b9fb-b772a80f6573"}}}],"id":"b56ec3a6-dc95-4429-934e-ba07b99971d7","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"9b6fbd70-9808-4bfe-97ab-cb7c595838e4","savedPayload":{"position":{"x":13376.230724062956,"y":27676.701075721976},"targetPosition":{"x":13110.358854030566,"y":27034.726964050536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 4.540717916588839,\n \"maxValue\": 8.54071791658884,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"d64fbb03-1282-4bc2-984d-804a623749b2","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"78df8697-360c-4e4a-b60f-d60d74b8555d","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"e66a9113-31a7-480d-93f5-4b3030fcb59a"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d1015840-d43e-4f2e-a02b-6cb01becef40","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"ed3a7c39-e271-465c-b851-28e732280269"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"374ff456-9050-4d74-a048-7714a1956ef9","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"36e8fd8c-1ee2-4eb5-aee4-1ebe41904d6b"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"ab25b1d5-be1c-43eb-86ce-f4207c757c9c","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"cf1ee8e6-1535-407a-96a8-9fa3ca0fe961"}}}],"id":"471ed0e2-254c-423c-b017-ef31743fd2cd","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"946a2625-c441-4209-9122-336a364f5150","savedPayload":{"position":{"x":13200.849227066034,"y":27723.740769884986},"targetPosition":{"x":13110.358854030566,"y":27034.726964050536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"dbd3b073-a032-4208-b2f6-e86ca683b2a2","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"b3533d54-a366-4903-a3ee-f15b5eb2e776","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"c01ce1ba-b2f0-4a86-be57-535fe43a7c05"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"e339a8eb-a6c6-4f96-8d8b-b790f8c3ee73","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"948a2ba6-1516-4264-978b-168e7965cbf7"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"ec811159-6b58-45d6-9652-4c3ba4c1f4f9","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"67ecb4ba-45f5-4e5d-92f6-601be95cb758"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"842b7e3e-7c4b-486d-9f12-f16fcf48d074","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"08db7e12-79bd-47f8-a9a5-b6c3e1b50bfb"}}}],"id":"b41b2156-4462-460f-a065-197d6af46548","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"a0d78e03-6971-4b91-b4dd-ba99f59b04d7","savedPayload":{"position":{"x":13019.964586741724,"y":27723.766829244254},"targetPosition":{"x":13110.358854030566,"y":27034.726964050536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"1db94c61-85fe-4522-acbd-dbd4e409cd7c","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"bdbaf919-2f91-4e5d-9dc1-fc854d1aaf7a","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"debb0d3e-c2a7-4f5c-b0ec-ffa94a8391f1"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"78d51fd3-74c4-4548-8107-eb671707488b","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"81533538-b4e3-4539-8f60-803feb37259f"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"466c742f-7b7b-477d-8a0e-cc6a74db6c5a","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"687911f9-1918-4183-9031-f4751babba02"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"58c312aa-01cc-4325-8847-643ab503ac96","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"e5fa3318-6d72-4929-be37-e47eefb1a486"}}}],"id":"1488b4aa-ae1e-43c1-b67c-d4e386c9fe9b","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"a6b283b0-993e-4ff9-9a3d-eea761858bf5","savedPayload":{"position":{"x":12844.769377901806,"y":27676.90398276493},"targetPosition":{"x":13110.358854030566,"y":27034.726964050536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"964890aa-262a-489b-a003-a7aac1b7f2cd","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"13c89c08-7195-419f-baa0-13215a5bd000","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e0c368f9-073c-4f14-9aa8-f353a61e5e84"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"c65f2548-324b-44d6-9f49-283d7c60e663","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"9c9a6ef1-bedb-4423-b68f-e6e10abd7a5f"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"e8aeb2ab-5d96-4434-8bbe-b46c29185fe7","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"30317944-35aa-4ea2-87ef-261b751f1ba9"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"55f45e2a-dc64-4ca0-a3aa-77aaa64dedce","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"dcf473fd-a7b8-46f8-be8d-29e41b66a9fb"}}}],"id":"319f3f1c-29fb-4bf0-9000-4eb5c4193eba","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"a0672cc4-bfb5-4366-bf97-61386f4cad41","savedPayload":{"position":{"x":12687.61654658419,"y":27586.2739193704},"targetPosition":{"x":13110.358854030566,"y":27034.726964050536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"6ed515cf-2b38-4d02-a53a-c50ea5a48fc7","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"9bd91403-d2c8-4e47-8051-3880dba698bd","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"d0c35ccf-7acf-4ad9-800a-89c7e8eadb4e"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"b23726bc-9ae8-41e2-8acf-72c49c850d17","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"be80587c-2b08-438a-a9b1-d356a3a4fd51"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"0b603544-9500-43e5-bbdf-8c6f262b21b0","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"14f2ac64-ae1c-483d-8c5a-5f2d45c72533"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"da9f5d26-5a27-4f1a-827f-d94ecd5ae39c","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"18084293-9656-4010-93e5-506e651a5ecc"}}}],"id":"57563031-98a0-47e3-a50a-95b4cf8c6600","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"71b64cb0-f622-43ae-87e7-9c0bae3e6777","savedPayload":{"position":{"x":12559.045450088792,"y":27457.900315951978},"targetPosition":{"x":13110.358854030566,"y":27034.726964050536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9b90be9d-956e-40ba-97f6-84077472b39d","savedPayload":{"position":{"x":13075.658721470933,"y":27015.29689224746},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":2115,"y":775},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"Bittrex ETH/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-03-05T00:00:00.000Z\",\n \"toDate\": \"2020-04-24T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"f1a6a30b-68bd-4b14-bb50-ed361e0a532b","savedPayload":{"position":{"x":13481.299930309679,"y":27247.82855122155},"targetPosition":{"x":12809.899964427399,"y":27068.03013321812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 88.603,\n \"maxValue\": 251.78899962,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"e6139bb1-7793-4270-b4a4-0db420da25fe","savedPayload":{"position":{"x":13411.663594637695,"y":27415.71211335478},"targetPosition":{"x":12809.899964427399,"y":27068.03013321812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"75ad2836-73c9-4c76-94b1-2e4e637cd8e0","savedPayload":{"position":{"x":13301.139890391209,"y":27559.58437472217},"targetPosition":{"x":12809.899964427399,"y":27068.03013321812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"cc2548e9-bbff-4f8e-bd65-b135bb83739a","savedPayload":{"position":{"x":44078.64999458624,"y":30934.89460131808},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"e24f042c-71b5-4647-ac90-c0068c30e202"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"1e4fc264-f9f8-4b67-ae98-a2c14213f3f5","savedPayload":{"position":{"x":44163.85123076828,"y":30946.443093510883},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"ae616763-d384-41cc-a61a-e8a2ae01752b"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f9d90b2e-1e28-443a-9f93-99d9f9ac2ae5","savedPayload":{"position":{"x":44241.83694393738,"y":30974.63232510084},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"8cb63f19-fd93-4aee-b69f-b89b15e908b2"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"bc8c0216-0f0f-4c80-b462-83657b616450","savedPayload":{"position":{"x":44311.67549610568,"y":31016.49344919726},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"9b2f804e-ff08-4f83-8608-ec6548cb8859"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b8f33159-6720-43d9-8900-57e3a227ac32","savedPayload":{"position":{"x":44371.85960146544,"y":31070.221683842996},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"843b0322-9811-4417-bc50-065fbe04b5d3"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2d1ba234-b4ca-4349-bfb0-8160b5b9e9f2","savedPayload":{"position":{"x":44420.81779483182,"y":31133.88297441118},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"0d1b6fe2-e5f4-4724-89fa-f5443084ccd0"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"de94bd3e-376b-40fe-8471-d00e6e9049ff","savedPayload":{"position":{"x":44457.117328935085,"y":31205.319635425785},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"fd558fef-2d8b-4744-aecf-754744b3cb90"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"031f14ed-67d5-4eb4-9087-4de5bcf9ceb2","savedPayload":{"position":{"x":44479.64133141089,"y":31282.130540258924},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"22799460-416a-4ea4-9e19-bea31f5ae5b4"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ad5fe45b-5ee8-4582-ac9b-88146d7c9d4d","savedPayload":{"position":{"x":44487.61147096234,"y":31361.728456129385},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"c8cab685-fea6-4224-afee-ffa7c45e3069"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"628334ea-854e-4261-868a-e5c7e198c767","savedPayload":{"position":{"x":44480.78341149639,"y":31441.3959689604},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"3d0fbf6d-c623-4b21-8381-8641952cf6f1"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"2e8cf0d4-9be2-4176-b386-cdfa2cba7353","savedPayload":{"position":{"x":44459.48592250235,"y":31518.457632189642},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"dd2a07fe-1572-471b-9f9b-48a7e0392555"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"30c3a34a-11b3-4fdd-9c33-9865da109016","savedPayload":{"position":{"x":44424.41129890276,"y":31590.302021321455},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"876b4c27-42db-430c-99eb-208d0562cc86"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"b5739851-655a-4dc6-bc31-273c9a0f100c","savedPayload":{"position":{"x":44376.75954564685,"y":31654.50449366559},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"f556f3d0-1c6e-4ee0-8128-280892ab378a"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"b3637570-e5e4-4279-8bfe-3a6b7b3c0ca2","savedPayload":{"position":{"x":44318.14175549443,"y":31708.891385093266},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"be67744f-7ee5-490e-ad75-b0ed1563df09"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"a66f7044-ebb1-4091-bc6d-3566defb3cc6","savedPayload":{"position":{"x":44250.60221948984,"y":31751.772743890055},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"60f28f50-15fd-4e1b-88eb-c2e1b24610fa"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"8e3eafa1-3f12-40ca-9638-77a3604faa39","savedPayload":{"position":{"x":44153.02320691994,"y":31784.13904467631},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"fca7ffa6-b650-46f3-8b0a-768fdfd54332"}}}],"id":"c380043b-5d94-4ec1-b354-5edce62c2fef","savedPayload":{"position":{"x":44141.821764465945,"y":31355.229987239374},"targetPosition":{"x":43626.31800703183,"y":31407.414884109556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"2a91a53b-36a0-4b67-9036-d03cd320608f","savedPayload":{"position":{"x":13157.194177033933,"y":27669.939929843815},"targetPosition":{"x":12809.899964427399,"y":27068.03013321812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3496.3969296811883,\n \"maxValue\": 12400.41819345618,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"52142b34-a4b5-4d3c-8ae6-1adb08810314","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"56239148-8b82-4af1-aa23-4b62108e38c7","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"05f3214d-b73d-4f1d-ac9f-df9c4f1d9872"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"aa559a9a-a0e8-4bbd-ac16-53b6b8fbf113","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"648b626f-ecc7-4f54-9886-904a2e45d43f","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"90a6a80d-3d28-4451-9b05-78def7fecb8a","savedPayload":{"position":{"x":12989.610979008392,"y":27739.31136464604},"targetPosition":{"x":12809.899964427399,"y":27068.03013321812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"3405c88b-4d0d-43e2-a462-851d89054259","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"24dac4f6-061e-4bf2-92eb-b5feeeede857","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"b0e5bf78-4bb7-478f-817a-5f5f85f7890d"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e2ec7695-00e2-4da5-b6fb-f9ea4341f90a","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"6da79673-bb47-4600-b4a5-fb8f88522b36"}}}],"id":"21725a71-88a5-4107-86bf-b5e45e3c2ab4","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"a0d6bfcc-0952-4182-aa04-0273a1831b52","savedPayload":{"position":{"x":12809.904100310589,"y":27762.977920613088},"targetPosition":{"x":12809.899964427399,"y":27068.03013321812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"9738b3c9-b047-459d-9349-38cabafec1ea","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f749e297-8938-41b6-aa2e-25496322edd1","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"92950803-603f-49c8-b4d6-b72f86162365"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9a6c3148-534a-4439-9da3-e356a0e25e3c","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"98d0042b-ba9a-497f-8b06-742a54c0b829"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"4ace5792-5344-426e-af8d-92a2a8669677","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"510d89e2-5395-49d1-bd51-6625e52cb270"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"10839d59-a496-4d4c-b113-fbc56d971814","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"a2a50fb8-37e0-4b15-9e37-ad6ed7d7d5e3"}}}],"id":"7b3700cd-2ea8-4b5e-884d-959dc026a6cf","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"f8e766e8-f0f3-4378-8c7b-7ad662d7b7e7","savedPayload":{"position":{"x":12630.258322088823,"y":27739.322206734938},"targetPosition":{"x":12809.899964427399,"y":27068.03013321812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"831caf2e-f401-4fda-9d6b-4fe8df94f072","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"d551ff99-94af-4f84-a33e-69957714f906","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"904acfe5-54bf-4edb-a80c-d47d7de1ebdb"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"82494895-2a72-4c18-905e-e0ec79582ccc","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"35b030b3-abdf-4e62-969e-40153b53df5f"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"341c6cf3-4d7b-4342-95b4-36e319ba4007","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"20150970-b6b6-406d-833e-08775fba713d"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"6cf31e29-697d-4c57-9fdd-0d923a9b82f0","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"560a9e2b-76c8-4020-bb59-3b8c0de5cd22"}}}],"id":"c8be9c13-a596-4248-8fc8-b2f439526b67","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"aa5be028-b3e7-43d4-943a-9f2c66db3a5b","savedPayload":{"position":{"x":12462.681008721216,"y":27669.96403034375},"targetPosition":{"x":12809.899964427399,"y":27068.03013321812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"54bf3ce2-c018-4ce2-ba24-8786f60e4ab7","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"ab28adf1-bcca-45c9-bb47-13a2b6f16547","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"36bae104-2d4b-4b48-8bf9-1f879baa4cac"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"4650f94e-3f0f-47a8-85be-61162c496b85","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"a1e48b88-2961-4acc-bd03-167485c3832c"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"b0e52c7b-306a-47ed-a57e-a0e39d55c279","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"5ba4a34c-7799-496e-8bef-aaf0045d8667"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"f254b1ca-66d3-4382-8a3d-7ab5624b69c2","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"421c21c3-bb0a-4d2c-9e7f-c9831ee5cf32"}}}],"id":"3fbb629e-736b-491d-a2f4-32153a3c576e","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"6d779b8e-98f4-4181-8c3b-a5b15c202722","savedPayload":{"position":{"x":12318.742667714885,"y":27559.619591348197},"targetPosition":{"x":12809.899964427399,"y":27068.03013321812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"fb953083-28f7-4e12-b1da-a27b42d447fc","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"f5003903-a330-4953-b3ee-44b702ac5617","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"3fa94d03-b662-453e-a1df-529e73fd2471"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"14d6d0eb-0cd1-4868-965c-7946149e61a3","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"e47b1dbd-c5d1-4be0-beb7-406606eb4c24"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"eca1e9af-58e0-44e3-9d5d-1e1ee7eab372","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"300cdc9d-2a01-4a44-a145-74079bfd6021"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"4c61282d-ff2b-45f1-a945-7f0e3b3e048e","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"7dbc0abf-358e-4f40-9c7a-86429e08c874"}}}],"id":"2923afa2-2335-4b22-bf52-f8f04c1d2994","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"5a18dbe3-40d7-4d92-80bd-33c9b1db46a5","savedPayload":{"position":{"x":12208.22583149181,"y":27415.773264370833},"targetPosition":{"x":12809.899964427399,"y":27068.03013321812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"111304e3-13c7-4d29-9d5c-67ad2b3ccee0","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"27e8e1fc-207a-4e03-9242-a123b87fdaf6","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"83033167-412c-4e0e-bd0c-d78d78b1f9b6"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"d16a79f9-4f73-40db-88cd-650e12e015f8","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"4daade86-0674-418f-8922-fc4ba0904290"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"9aca88c3-83e8-4171-ad00-3367ff87a8f4","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"a661cd59-814d-4e79-91d3-a8d807a21274"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"64b5b0e7-a16a-4552-b232-37ce1f98c34b","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"a575e082-b6eb-44a1-a543-b343fd19dacc"}}}],"id":"b96b4bdd-21fa-4657-8f3e-84e5578bc817","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"996ee7df-6faa-4c7a-94e0-21ee72d74b91","savedPayload":{"position":{"x":12138.60386877583,"y":27247.915287043175},"targetPosition":{"x":12809.899964427399,"y":27068.03013321812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d0bb4957-84e4-48ca-b00a-a5cb90594c10","savedPayload":{"position":{"x":12809.90082735444,"y":27068.176693761125},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":2115,"y":985},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"Bittrex ETC/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2018-12-30T23:22:24.048Z\",\n \"toDate\": \"2019-01-10T19:44:56.900Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"30e21436-3508-4f2e-9ece-dc1c5019aab7","savedPayload":{"position":{"x":43433.904964020134,"y":31090.08122008158},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3540,\n \"maxValue\": 4069.8,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"4ad2f9c3-d7a6-42fa-8507-7372498c8ca8","savedPayload":{"position":{"x":43522.58881136428,"y":31164.598399546274},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"412773a9-80cd-4a30-ace5-2c37f18819b9","savedPayload":{"position":{"x":43586.959939711174,"y":31259.03996760349},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"dcda0b74-ff42-4751-898e-4cd544ae5158","savedPayload":{"position":{"x":44078.64999458624,"y":30934.89460131808},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"ddd87ac2-ab9c-4ed9-9e0c-a3f3a8f343b3"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"bac6946b-c88b-4861-a772-f2e41eb25258","savedPayload":{"position":{"x":44163.85123076828,"y":30946.443093510883},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"fd5865d8-cdfd-4ed9-9f5d-32b2921a1405"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f584ecf4-9fc7-4cd0-8545-e8126cb49bed","savedPayload":{"position":{"x":44241.83694393738,"y":30974.63232510084},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"ed6af1ef-8cf9-44c6-aeeb-d2158e55de0c"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b0ee7fbd-fddb-4df3-af2e-41808f4cb478","savedPayload":{"position":{"x":44311.67549610568,"y":31016.49344919726},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"633b20d4-01c5-4690-9ce7-b88cdbd60a06"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4086c93a-b66e-4078-9457-4e4be2006d52","savedPayload":{"position":{"x":44371.85960146544,"y":31070.221683842996},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"8d4b6559-0a08-45c3-a366-6078f233c85d"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ce26bc01-22ba-4330-9fe9-c6f9449557c4","savedPayload":{"position":{"x":44420.81779483182,"y":31133.88297441118},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"ccb3113d-5688-43fd-8d56-50c0203e83c8"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"52ce6686-80b3-4635-a31e-ebf089283705","savedPayload":{"position":{"x":44457.117328935085,"y":31205.319635425785},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"0c9e1772-2c58-4c44-836f-4b26a48f9553"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"017ea6a8-eca6-46e6-9b7b-678e27e8cc6c","savedPayload":{"position":{"x":44479.64133141089,"y":31282.130540258924},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"d8abe022-57c9-4a5b-8659-cac54108db52"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5e022040-39c8-4636-8576-3eb314cd15ab","savedPayload":{"position":{"x":44487.61147096234,"y":31361.728456129385},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"04a7403b-5b37-40ff-b89f-9dfa89ba823d"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ecdc8594-b8a5-4727-9afb-ac9f99f1fa86","savedPayload":{"position":{"x":44480.78341149639,"y":31441.3959689604},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"6de43c70-eecf-461a-a8f9-545bc53ad361"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"4654331c-2e8f-4165-8277-fff93f8efdf5","savedPayload":{"position":{"x":44459.48592250235,"y":31518.457632189642},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"59ca793f-73b6-4da1-8ef8-e8d9e7f26dc2"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"2af067d0-b84f-434f-b122-9a8441c7c82f","savedPayload":{"position":{"x":44424.41129890276,"y":31590.302021321455},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"25ffeeb8-15ae-4100-9ba1-0fd871c6ab0e"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"fc005efd-0f38-4fe7-8ea1-9691f36aa197","savedPayload":{"position":{"x":44376.75954564685,"y":31654.50449366559},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"b38b6d6a-66cc-4b57-84ad-5e5b68e87b12"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"aa3914f3-743c-4877-b034-05214df9b755","savedPayload":{"position":{"x":44318.14175549443,"y":31708.891385093266},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"c90fef1e-d849-40e9-bf33-daa7fab0b5a8"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"93882172-20fd-4c13-bfaa-9a698dd14f86","savedPayload":{"position":{"x":44250.60221948984,"y":31751.772743890055},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"c1db1eb1-51fd-4c6e-9337-a8ed3990544a"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"57b6abea-5f53-46e1-a874-9107b1d2d7c1","savedPayload":{"position":{"x":44153.02320691994,"y":31784.13904467631},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"61c35ce6-f516-4a9d-b59f-02827725baae"}}}],"id":"73e7742e-bbf5-4fa0-89d6-05f7d7a3defe","savedPayload":{"position":{"x":44141.821764465945,"y":31355.229987239374},"targetPosition":{"x":43626.31800703183,"y":31407.414884109556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"db6c7134-f813-481a-9063-6ca3e0f5a39c","savedPayload":{"position":{"x":43623.85978187672,"y":31362.647150527082},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3496.3969296811883,\n \"maxValue\": 12400.41819345618,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"b7e910ba-588d-450d-9ad6-b52797d038cb","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"00c8a26c-f185-40f2-b0fe-a74840c5f940","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"1c1f88b7-277c-4f55-a84c-1ae3d65880ee"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"6250dbbd-6e23-4210-a983-f8bc88a7d184","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"f6eb3ec6-445c-4f6e-bad7-c91566f5ec32","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"2b6241e5-29fe-4ed4-ab41-032d1ad235e2","savedPayload":{"position":{"x":43633.74577614054,"y":31475.276430635626},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"b0616fcc-fe30-4f16-a6d7-7e1c82ef7ac3","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"89dcb582-40e8-4a1f-85bd-45d969c4b95b","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"02cf98d8-a0c7-4660-a2a6-3e036fa164f1"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2ff6f027-4aaf-40f7-9466-62370009038e","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"35bbd8e0-d1e3-4958-b0ec-bd75398c5de1"}}}],"id":"6997c407-9f0e-4366-a6fa-e1f5a59dc0e9","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"88f40e95-fc31-4344-bfff-025abb455cbf","savedPayload":{"position":{"x":43611.43180799584,"y":31591.37193734411},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"94a24a57-3f5f-4a32-9095-c4dca86157e1","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"838f2ae6-2f30-4d84-95af-43efb426c298","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"b8927c70-a6cf-4efe-b0e1-2aa65c04f014"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"cf4bce85-8fc6-460e-8f84-5d516b9879d3","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"6ea466b2-82c1-4df1-a019-76fa01c31e24"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"b9408c81-1188-44d9-a0df-a514be411983","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"4bd4551d-122d-448e-b057-7d0fea80861f"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"f86166ee-37a2-4cc2-8ea5-8adc0a510706","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"6618a228-456d-4750-bfc1-1d67c30dd342"}}}],"id":"86730149-dd76-42ea-ad66-6c527a5ff714","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"052015e7-1fdb-41ef-9f94-7470685815a1","savedPayload":{"position":{"x":43559.23277912925,"y":31694.525566454333},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"2ecf1237-0f5e-414d-9f7f-6f74995f3b13","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"769c38ec-5035-4cbf-b757-f2dfd140ee21","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"696a2d92-2b36-43d7-bf0d-7640ad080a0e"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"d03dc67f-f25e-406c-83c0-c88f64944c0d","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"f0a654ef-9473-4a92-a2c5-ef49e0f60831"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"b5d21b84-9e64-4867-9a39-34e9f90990fe","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"84108df0-3be0-4d04-94e8-a5051cdca43b"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"e468c227-eaaa-4ea7-b392-a543fff3f4ad","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"8dc2e370-f6c1-46ad-a0dd-f49da7bf271f"}}}],"id":"19c90691-cd36-4a6f-8301-d22cb1204584","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"cd3eb486-77ff-43b5-9135-c560cdadcc30","savedPayload":{"position":{"x":43484.72851305459,"y":31777.876573021833},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"ab5261dc-781b-40b7-a2c6-ce022b9277c4","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"06889429-2332-4fe9-9a66-ee56b4fd8108","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"c3cb246f-d37c-4bcf-bccd-fe073af7e2e9"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"75e9344f-9444-4c46-b604-da763273d9ae","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"3fbd9b54-ecbf-46df-a3e7-77a174320424"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"8738933f-a9e3-4468-9495-8d9c7809624e","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"35771632-bb96-48a6-a878-a55168acc383"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"7a72bc84-cdff-4cf3-bc72-e44960446c54","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"e7ada237-9068-41af-b545-269c6d6b3f34"}}}],"id":"1982a4ca-dcd6-483f-acd8-dade0e2e465e","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"3c2406a3-b35a-4655-8ba5-498e8dd70a8b","savedPayload":{"position":{"x":43391.02991247641,"y":31839.99226140119},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"efa7e49c-b6e0-401c-9ed6-02eaf60f878e","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"57ec90a5-59b1-463e-bf63-621109bab540","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"a2027347-bbd6-4f61-8b9b-917d3e3d95d5"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"6e8265d8-fd0e-4614-ac39-0de37c97f179","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"7185ba1a-f851-4204-819a-bf9a36c37fe8"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"5000a2bf-7fcc-4831-9c8e-a54489a5f93f","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"b91199a2-56e6-466e-8725-53ef4738d70e"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"fb3746fb-6d12-4a26-b749-ffc3d060a289","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"4751d135-6f4e-4efb-8cb5-067a604c59cf"}}}],"id":"f69cd215-eaa6-425d-a9b8-476bab55eaea","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"8c55acfd-1b1e-44a1-b1bd-8fbec4fb89c8","savedPayload":{"position":{"x":43284.22656791505,"y":31876.045500857595},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"2b8a3d9a-41c1-4698-9947-6485378ef3ed","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"0a875a01-8dc6-4631-b315-0d448f0e82fb","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"349536a6-9b35-480c-b88f-6d5d038183dd"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"a7f0cc57-f3ae-4cd4-b6d9-558405a13351","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"414ffc7d-e039-4004-85a0-8182f3eb9105"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"b992d582-7457-46c6-b357-3d3bde14f5a6","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"3bc6bc61-006c-460c-a017-aa0a9dd00b58"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"9122166c-5f83-48db-b22d-e09b4814a925","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"3c62f085-9220-445e-b5a4-f85e59e28717"}}}],"id":"eb355b93-26b5-4ec2-92af-3c87a6b02201","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"ff400505-4eab-400f-b84b-f41e32bd901f","savedPayload":{"position":{"x":43156.82064724961,"y":31879.74004634101},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1bec3323-bacb-41b2-9c7c-295eb3188c83","savedPayload":{"position":{"x":12544.21955112153,"y":27015.316250530504},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":2115,"y":1195},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"Bittrex XMR/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-04-10T00:00:00.000Z\",\n \"toDate\": \"2020-04-20T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"adbedb67-55da-40eb-8e29-c4c951c2a130","savedPayload":{"position":{"x":43433.904964020134,"y":31090.08122008158},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 51.5531631,\n \"maxValue\": 58.78651331,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"cc550b07-e9db-4a19-9143-d361bff4aa6f","savedPayload":{"position":{"x":43522.58881136428,"y":31164.598399546274},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"9e4aa428-a8e3-4b95-93ac-74e208ffad3a","savedPayload":{"position":{"x":43586.959939711174,"y":31259.03996760349},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"64aa956f-f76a-4096-b4aa-08b01909e985","savedPayload":{"position":{"x":44078.64999458624,"y":30934.89460131808},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"38cff471-d74c-4fe0-b53b-9d64290df615"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5a005171-4569-4c9d-a35e-17388d14d86f","savedPayload":{"position":{"x":44163.85123076828,"y":30946.443093510883},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"ac5dd233-6cf9-4820-9ab9-a7adbd9b2429"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"06939aba-5c3c-4672-87bd-e9182d29c0fe","savedPayload":{"position":{"x":44241.83694393738,"y":30974.63232510084},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"c8b61164-d8fc-445b-b8ab-81b35e19abb4"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b1a95e12-04d7-4b91-821f-03895a140df6","savedPayload":{"position":{"x":44311.67549610568,"y":31016.49344919726},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"379870d9-4fb7-42c0-aef1-0c054b89dafb"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"78a746d4-acfd-44f9-a02a-2d1d3464b1f7","savedPayload":{"position":{"x":44371.85960146544,"y":31070.221683842996},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"504af5a8-686f-47ca-a2c7-a9d1faf9b4c4"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9e39b5b3-164e-4fc7-ab8b-c08877748181","savedPayload":{"position":{"x":44420.81779483182,"y":31133.88297441118},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"64bb097f-4821-4e8c-bfa6-b3af05f8443d"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9c8d5d25-aeba-4343-a2eb-250ff80f8339","savedPayload":{"position":{"x":44457.117328935085,"y":31205.319635425785},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"cb385521-0845-4ed1-8775-1cf4d3a7f277"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c3e76e0e-83d3-4467-a9bf-ae7f9c7267e4","savedPayload":{"position":{"x":44479.64133141089,"y":31282.130540258924},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"4b05b9c6-8794-45d6-b782-5e071ae635b5"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d458a289-e156-4db7-90ab-a1e4c2e38d26","savedPayload":{"position":{"x":44487.61147096234,"y":31361.728456129385},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"0417fe10-ec0d-48a5-b8e9-e0cc16a47159"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"98ca5a64-0093-43b8-9a6b-51a1edb41d53","savedPayload":{"position":{"x":44480.78341149639,"y":31441.3959689604},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"70651c9f-8d7f-40aa-8c9d-e5b6968025e6"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"1adf704f-6cd0-4e59-9ccd-fa75e20fc913","savedPayload":{"position":{"x":44459.48592250235,"y":31518.457632189642},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"1fdae58b-ae24-40a7-b6af-2422c8fc6305"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"cb67d668-4e4f-4b44-8f88-c185835aaace","savedPayload":{"position":{"x":44424.41129890276,"y":31590.302021321455},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"a28b9b3c-1b09-48fb-98f2-0adc73ba9e45"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"96169d41-b1be-4bbd-b037-819bf213406d","savedPayload":{"position":{"x":44376.75954564685,"y":31654.50449366559},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"8ebcc43b-051e-436d-99c9-84b16a5575f9"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"33e5e5c9-b109-42cc-97e6-a52fbd6728af","savedPayload":{"position":{"x":44318.14175549443,"y":31708.891385093266},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"e2054a67-d691-415b-a17c-a6dfbc026ba7"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"fa3285e8-9d30-46f3-b797-62408acaf132","savedPayload":{"position":{"x":44250.60221948984,"y":31751.772743890055},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"04b7414a-04eb-4913-8d27-e91c4d5207bf"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"b70719eb-4123-4e46-9aec-837556feb837","savedPayload":{"position":{"x":44153.02320691994,"y":31784.13904467631},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"e46be264-9b3c-4672-b057-477fd5b4ff17"}}}],"id":"c7be09f1-cf91-4759-911d-11db2fc3eec7","savedPayload":{"position":{"x":44141.821764465945,"y":31355.229987239374},"targetPosition":{"x":43626.31800703183,"y":31407.414884109556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"ed1396f2-8ca7-4a24-9e6f-3e3279de4192","savedPayload":{"position":{"x":43623.85978187672,"y":31362.647150527082},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3496.3969296811883,\n \"maxValue\": 12400.41819345618,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"5956ebf6-1e75-4f87-b84e-cecdb8f684fd","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"26281db2-446c-4f81-96cd-464aa48a9b2b","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"b6e14358-eb68-4e7f-baf5-cd05ebbd9faf"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"53487967-869c-420f-9526-bc1d3b86c5b0","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"83d45192-7100-4867-9515-19d63fb67ea5","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"70c137fe-9d17-41ae-83ff-d817b7b5ae77","savedPayload":{"position":{"x":43633.74577614054,"y":31475.276430635626},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"000cbcce-9bcf-409a-8377-ca2d824fa6ab","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f3ab76d5-a9b3-4355-b906-ecdece671810","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"d10b824a-b980-4b29-a982-a8e1666d53ec"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b5530552-99be-4331-bd7f-e0e09b57b687","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"4e592467-d045-4d8f-85d8-051966d5f7c6"}}}],"id":"5a617db6-bfca-47df-811b-22d28641619f","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"eadc4823-d791-4eed-8ac0-3d99e4239d1b","savedPayload":{"position":{"x":43611.43180799584,"y":31591.37193734411},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"1337fe62-74e6-4f71-9233-5244666d2029","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e56713ce-d62e-4746-aafc-b24ea603182f","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"24fc564c-b387-47a7-b884-e7ef8c5fb43c"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3a7cc1b0-1da4-4ed2-9a57-ff6c2b368eb6","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"5df032a9-2fd9-4c4c-8a22-0ef6fcebea43"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"02bc7c25-9923-42e8-ab97-3a9ac0421a54","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"b74c6e0d-997a-4b05-ab6d-59b2d9f95082"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"8b722b8d-7f1d-419e-89c8-4cc9776c287e","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"32e3d829-1991-440e-b2fb-b738fc0bb0dd"}}}],"id":"06b2728f-8221-4d36-93ec-7c9ac87ab955","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"17f19070-7a85-43eb-a805-c9214c0fd659","savedPayload":{"position":{"x":43559.23277912925,"y":31694.525566454333},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"78dffa3c-bc3a-44c2-a035-3a93272d5f21","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"a4077ac0-4d28-4c9d-8e44-0fee38d039fd","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e7bcd216-5c66-4f8b-bc37-1fc28e41d142"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"82e0d60b-7807-4af6-91f1-e6e4b0583ad0","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"6abfab4e-1760-4843-82b0-08f8ab2691b3"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"d1c7339f-77a7-44da-bede-e6d518a0b405","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"2da84b3d-342c-49a6-8ea9-448adfc5ee57"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"c3533481-d81f-4e1d-807b-2c1e6b0399b4","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"ec46f9a9-2257-4c5a-aa02-ccc84541a0d9"}}}],"id":"8687850c-10d7-452f-b065-cf5c90adf751","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"3ae22abe-117f-4222-a400-763c3c5ae348","savedPayload":{"position":{"x":43484.72851305459,"y":31777.876573021833},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"3c31cb5b-50b9-49a8-8041-6742bfd154de","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"8dc7ef1e-bb77-453c-9421-632123907604","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"02641c24-80a7-41bf-b5ed-cfa97641229b"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"6664bb3b-dcfd-41a6-b6f2-23923f30335d","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"a70bb951-28f6-43cc-86ab-3ff97a7e4f65"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"15a7c233-4433-4f62-b773-368c8448b002","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"5e9de97f-7a82-4874-be5a-794fa8e25b11"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"a11d4836-9713-4abf-9d59-1be12e5217e0","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"9f03005b-ca07-4530-ae63-9e72afb122da"}}}],"id":"b6088bda-bb5b-4d76-9dd8-51086c6fb8f9","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"c7e143be-0a11-4a85-957b-cdf150dbd542","savedPayload":{"position":{"x":43391.02991247641,"y":31839.99226140119},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"c20a3e2a-740e-4421-8172-2c87a724e5fc","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"f4485f0d-8bb1-4275-8afc-4d3d62f56f0b","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"b44a8c25-2c08-4a56-b5ef-2a8828c673ab"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"1b87540e-5247-4c09-9364-a22c32705c63","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"41687f0e-4054-4088-a211-71ff0f64879d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"e8bd955e-0dff-4b06-9337-f0c38fe3e018","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"1a81f79c-7446-4ae7-b774-6c4dc4e742b8"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"20852a57-4e15-4779-9d4f-d7b8059e48aa","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"3cea5ca6-8ec7-4485-a538-d635d5adf60e"}}}],"id":"5ec3bcdd-f51e-4deb-9763-9cef53a4cfe4","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"dea653bd-dfd4-4c90-b58f-325f6a6b8125","savedPayload":{"position":{"x":43284.22656791505,"y":31876.045500857595},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"5372ce5f-b1f4-4eb9-bc22-4cb489692daf","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"472f219e-e06f-49bc-b3c7-8c9520273bae","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"6a6cd9c6-1d81-498b-a880-d4dd3e22a051"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"648e0abb-5355-4b87-8d7a-d5e7a73569f9","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"b76e86e5-dfd1-4e43-ba9c-0a02d08c3acc"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"d961c3c6-4910-44ad-950f-0d1999e64b93","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"2d6cff08-e13f-4b8c-be6a-92208cfd9bcc"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"a21ba5e2-a7d3-4c2e-9d8a-b25824830267","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"c16b83f5-1162-4af5-8324-bab54c588a90"}}}],"id":"c005c24d-7451-4759-b4a0-323573c7c025","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"b0c824ad-9b34-4903-bdd4-6c4fef818552","savedPayload":{"position":{"x":43156.82064724961,"y":31879.74004634101},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e88f9ffc-4ca2-4b00-9265-e869f6e321ca","savedPayload":{"position":{"x":12318.896869539598,"y":26864.781445322646},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":2465,"y":775},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"Bittrex DASH/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-09-24T00:00:00.000Z\",\n \"toDate\": \"2020-04-24T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"6388a41b-a7ad-475a-a55a-5c3fcfa96274","savedPayload":{"position":{"x":12259.251438279056,"y":27328.690566941128},"targetPosition":{"x":12168.535708114034,"y":26639.42048323078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 32.6,\n \"maxValue\": 142.34836938,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"f1f0818c-5785-418e-8021-e5364a7d5a94","savedPayload":{"position":{"x":12077.68871517836,"y":27328.610636491372},"targetPosition":{"x":12168.535708114034,"y":26639.42048323078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"2752e81b-4b26-4e6f-86c1-574e0765ab03","savedPayload":{"position":{"x":11902.373726484304,"y":27281.6645476544},"targetPosition":{"x":12168.535708114034,"y":26639.42048323078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"e5cb4213-9d96-4257-86f6-db82771988e0","savedPayload":{"position":{"x":44078.64999458624,"y":30934.89460131808},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"a7b8e4ed-e341-478f-ade9-608a15ca978a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ce6c3b76-7bc8-4b33-8256-1c9b9f85f535","savedPayload":{"position":{"x":44163.85123076828,"y":30946.443093510883},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"47ed9747-aa4b-444d-a1ae-ee5bcd22b41b"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4bb956a8-dd37-4d06-b2b8-f20a659dff97","savedPayload":{"position":{"x":44241.83694393738,"y":30974.63232510084},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"cf406371-01ec-4213-aadf-a73ca6dd7c2a"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"151fd844-57f7-4402-b4df-945e82367fb8","savedPayload":{"position":{"x":44311.67549610568,"y":31016.49344919726},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"60c11137-e5e8-4b1e-8440-0fe54d8eaad1"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2f36d8b8-d36b-4e8b-9722-6298ae7e4821","savedPayload":{"position":{"x":44371.85960146544,"y":31070.221683842996},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"65e1feda-46c5-474f-980a-bbc152c36176"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9d7ec507-68a2-45a3-a7ab-ed169eb41f83","savedPayload":{"position":{"x":44420.81779483182,"y":31133.88297441118},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"2a0b2849-8f3c-42ed-bf53-4b5b3a95152a"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2af4a99c-0695-4658-abc0-6437e8b0ef20","savedPayload":{"position":{"x":44457.117328935085,"y":31205.319635425785},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"2a89e458-4e2f-4272-89e5-acf366a7579b"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"cbf17c6d-657d-4c15-abf8-1e5edc5f035e","savedPayload":{"position":{"x":44479.64133141089,"y":31282.130540258924},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"c62b975f-ec36-4c4e-bf9c-ad88c6f6b145"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a97622d2-88f9-44d2-accd-5ec8a69c7778","savedPayload":{"position":{"x":44487.61147096234,"y":31361.728456129385},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"530cf439-80c9-42e8-8d68-b22d36a3f7d5"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3514cc95-802d-4529-9093-4ed711e04ffe","savedPayload":{"position":{"x":44480.78341149639,"y":31441.3959689604},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"bb037972-8e14-4029-9f39-3a53274ef2fb"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"303249e0-cab1-4248-99c0-9d3fc8aa3eb3","savedPayload":{"position":{"x":44459.48592250235,"y":31518.457632189642},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"fc7ec38a-c62f-4c0d-9883-1d7a000fc2ae"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"9f456122-d067-4197-968c-1b3674e341e5","savedPayload":{"position":{"x":44424.41129890276,"y":31590.302021321455},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"540e982f-042a-41b8-b13b-48dad95ae02d"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"39138fd8-d956-46e6-a03a-8ad10508bb8b","savedPayload":{"position":{"x":44376.75954564685,"y":31654.50449366559},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"56fdc71f-06a1-4d8f-b68a-eadf7d51d504"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"117b4a78-71fa-491d-9b3e-483d8cda4632","savedPayload":{"position":{"x":44318.14175549443,"y":31708.891385093266},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"a4bb4d63-e1f8-4de8-84b4-00cb8c33d0d3"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"1e7da6f1-6436-4c9b-a17f-a832daaff9f0","savedPayload":{"position":{"x":44250.60221948984,"y":31751.772743890055},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"a2a18651-52ab-446e-b332-737416c50833"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"2034b3be-1321-4f55-a1a5-63ac3a16b0d9","savedPayload":{"position":{"x":44153.02320691994,"y":31784.13904467631},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"fc8ea3a8-8dbe-4c4d-a5ec-bbbeec11bca4"}}}],"id":"6b57631a-a6bf-4bc4-b3bc-583ef3ed681b","savedPayload":{"position":{"x":44141.821764465945,"y":31355.229987239374},"targetPosition":{"x":43626.31800703183,"y":31407.414884109556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"cdd3b230-886b-4d10-bf59-7ff4def897dd","savedPayload":{"position":{"x":11745.413053678061,"y":27190.85471777272},"targetPosition":{"x":12168.535708114034,"y":26639.42048323078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3496.3969296811883,\n \"maxValue\": 12400.41819345618,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"c9b3748d-f60f-4679-a89a-c86eae18cadb","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5444c02d-105d-4810-859e-563f53bfe8aa","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"6735e760-6024-47c2-9005-61041c63dad1"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"97a2ca24-178d-481f-8561-f9ee14fe0a86","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"44c7fe2b-d9be-4782-a518-4409b7618cb1","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"bffe1f05-0a25-4151-a450-f80f0d6a32e2","savedPayload":{"position":{"x":11617.243013216676,"y":27062.643665298507},"targetPosition":{"x":12168.535708114034,"y":26639.42048323078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"7346e3a9-0a9c-4a69-9876-5c1da0e80fe7","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c3d37a99-930b-4f6d-b4f7-83ddb3ca4d62","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"75aa5ebb-8a85-4edc-a49c-50aee8469e13"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d857a733-2e65-42c0-a894-3b8b64ebdcf2","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"d16eac0e-b7aa-46e8-b72d-d7053a6043c7"}}}],"id":"e21318df-5b9e-4af0-ab6c-286bb998101b","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"ad43b5a2-ea1c-457f-8390-a4783736b3cd","savedPayload":{"position":{"x":11526.574570814579,"y":26905.54944896014},"targetPosition":{"x":12168.535708114034,"y":26639.42048323078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"e868bc5e-11e8-4f5c-8952-6a040999a92c","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f39650c5-dc26-43fd-a02e-47ae909a7942","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"11ea11bd-a2cf-4be5-9a49-2ba89525146b"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"24be2d07-10d3-4c0e-892c-3d8e3f41e075","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"9537855d-7860-46ae-bdda-41ceaf907454"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"ea94cd19-f4c5-4f5e-af55-80c9fa35181f","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"375aef7f-62da-45b3-8dbd-5280a3ef1603"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"59bbe0df-58cc-4f6f-92ee-e7876bda0194","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"7f8edb46-c490-468f-b8c1-9af512b9a493"}}}],"id":"7ac1e7ef-f600-4fa3-b702-c180f24a19bb","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"d9e80ae4-edc5-456c-857f-4d364db989b3","savedPayload":{"position":{"x":11479.6079265534,"y":26730.318077780288},"targetPosition":{"x":12168.535708114034,"y":26639.42048323078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"cda59989-9a32-42fa-9ee4-428cb8abf365","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"d20e7e58-e63d-47f4-9589-268d7aef909e","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"36cd7a02-1a06-4600-8a48-0edd62cc2b3f"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"718883f9-13ee-4ce3-b6e2-8921d1445216","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"dacd497d-0b91-4814-aa08-e204e17b7601"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"f58a8e2a-c7fb-4fed-8127-9da731198805","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"94f968ef-e67b-487f-9532-565189af9bd7"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"57ca17bf-204b-4aea-8828-d9b51fa8dbb0","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"e336c54b-0909-4193-8a2e-7ec585b2b25e"}}}],"id":"35de50b9-e367-47df-b5d0-01dabd1632eb","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"93ea45a6-cb00-487e-aa15-3d5ca847d359","savedPayload":{"position":{"x":11479.58200051076,"y":26549.428254165286},"targetPosition":{"x":12168.535708114034,"y":26639.42048323078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"6ff34228-bfd8-4739-9ede-f8d7d61965ee","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"f1ac996f-cacc-4443-b2c6-dc196b4e5c60","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"3ff39047-b219-438e-a5e0-14383f53cde5"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"a9137d18-a500-4fbb-b8ab-6c9c5e62aeda","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"c3dc681d-f71f-41f4-9030-baf787cf806d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"b44922dd-f20b-4b9e-a57a-d6b7de5a3a0a","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"2d502e44-dd6b-4512-a243-a095d85a964d"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"db5f23b7-ea26-4991-9cbd-8b7ef66d92ac","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"51e9dd20-bbc0-467f-b4d7-2b6260244780"}}}],"id":"ad6f37ba-79ce-421c-8130-184861f65705","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"11d5624a-e366-476f-96ec-da6ae80b7824","savedPayload":{"position":{"x":11526.482964786655,"y":26374.346230977066},"targetPosition":{"x":12168.535708114034,"y":26639.42048323078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"95786514-852c-4b36-adcd-0e8b6f5fe169","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"29bcaa9c-15e8-41f7-a46f-7fb40f4a704e","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"56c574c3-8fa3-4eb4-aa8c-4682e7288312"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"41844ae4-643e-46c7-b5d5-4c78865ebe61","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"ce06c22c-fbbc-41cd-96f8-65bf3c941eaa"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"4fc887b9-a41a-4c23-8998-316998e176d3","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"5b9878df-5806-4c10-b8b9-94f5afe84674"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"8c585d00-7a08-4167-bc73-ae4a098849ce","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"ac00370f-ea29-4bbe-b2e0-de68d091f30e"}}}],"id":"654640b2-2b17-4827-8216-d98b0cb5e730","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"ef7799d9-1759-4414-8844-6231af7558ab","savedPayload":{"position":{"x":11617.183720303785,"y":26217.327692933755},"targetPosition":{"x":12168.535708114034,"y":26639.42048323078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"02610cfd-6b11-4ab9-8d3a-b0cb4222b612","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"c121244c-abb2-4dbe-a3c0-9211f06035b6","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"b030955a-98e6-49a1-8a83-3447ea863c26"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"eb894bf5-91d5-4c3a-a850-1644e64cd2d6","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"b5ebe9ae-e69f-48a7-9364-0401f9a0b3a1"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"db4546e4-325e-4f8e-bbab-fd6bf673cf03","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"31159f15-ed3c-4e58-8b93-72b05cf19adc"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"295deac1-fd8f-4b8b-8852-fc9bf010dd1b","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"6eb5bec6-89f9-46e3-a867-cc1be6b3b523"}}}],"id":"d1c823f0-02ce-458d-a697-8dee0957facb","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"6f73b88b-6a80-4d67-89b5-d4d461567e73","savedPayload":{"position":{"x":11745.773911521357,"y":26088.853702351767},"targetPosition":{"x":12168.535708114034,"y":26639.42048323078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"afb4befa-2abc-4708-9bdb-c52e3019aa7c","savedPayload":{"position":{"x":12168.34882270071,"y":26639.488824862194},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":2465,"y":985},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"Bittrex ADA/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2018-12-30T23:22:24.048Z\",\n \"toDate\": \"2019-01-10T19:44:56.900Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"0f5f7e8a-6134-4956-94f3-94d7751b4f9b","savedPayload":{"position":{"x":43433.904964020134,"y":31090.08122008158},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3540,\n \"maxValue\": 4069.8,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"f3403cc8-60d8-4785-a748-581b0e038fb5","savedPayload":{"position":{"x":43522.58881136428,"y":31164.598399546274},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"806fa399-27e9-4770-8354-2cb83cc46d75","savedPayload":{"position":{"x":43586.959939711174,"y":31259.03996760349},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"70cac84d-8c46-4743-80d9-4807bd193151","savedPayload":{"position":{"x":44078.64999458624,"y":30934.89460131808},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"e8f78daf-66e6-4af7-9efc-51d543d341ad"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"76f4e9dd-f386-4250-887b-cc4297e27a8e","savedPayload":{"position":{"x":44163.85123076828,"y":30946.443093510883},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"56fc841c-2d61-4cc0-b009-b967270bfaab"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8438ae41-0aee-410b-abb9-423a576d5682","savedPayload":{"position":{"x":44241.83694393738,"y":30974.63232510084},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"a2e6d9b6-bd60-481f-ac56-9594f808b78c"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"46d4b1b2-82c8-43aa-be50-79fd3844c3ed","savedPayload":{"position":{"x":44311.67549610568,"y":31016.49344919726},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"dcec564f-b166-4808-a7bc-02cc0d172eb1"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c27b28b8-59d1-4528-b031-00d217f9a124","savedPayload":{"position":{"x":44371.85960146544,"y":31070.221683842996},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"caf7b9e1-0576-4d9f-a414-3ba9b46e75eb"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"46343a52-e632-4bd8-a85c-f0351f2fd3fb","savedPayload":{"position":{"x":44420.81779483182,"y":31133.88297441118},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"d54420f0-dfbe-4fd5-b96f-230c78e8bbc9"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d2fcfa8e-736f-4067-8a80-c1b162f810a4","savedPayload":{"position":{"x":44457.117328935085,"y":31205.319635425785},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"d8b32f0e-220e-4a5a-87ed-3588d790f4e2"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"130255eb-a0e7-4c8a-877b-2769bfb2fcf4","savedPayload":{"position":{"x":44479.64133141089,"y":31282.130540258924},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"796cbd91-12b4-48bd-880f-4a83a6e97aea"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"51f5a915-f251-4034-81aa-89263a1ab155","savedPayload":{"position":{"x":44487.61147096234,"y":31361.728456129385},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"691337d4-1a6c-4531-9dbf-9acf9549c531"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"099a4f85-ceca-4e51-bbcb-bfb3b19381e1","savedPayload":{"position":{"x":44480.78341149639,"y":31441.3959689604},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"0b595a2a-2748-4ae4-b502-2d2cdfef5d24"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"a5b89193-3eda-4caa-8581-dca1cbd39386","savedPayload":{"position":{"x":44459.48592250235,"y":31518.457632189642},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"c4c49042-542d-4f50-b14d-e9860cda4150"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"30d7db6b-0666-4721-874e-33a084704856","savedPayload":{"position":{"x":44424.41129890276,"y":31590.302021321455},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"a705d1dc-5ad7-482e-99be-64b1ad09748f"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"dfad96c2-cb15-41c6-921c-a01b2bbbd872","savedPayload":{"position":{"x":44376.75954564685,"y":31654.50449366559},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"3064ee6c-602a-4303-bbcb-43a66af7021b"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"c5a410e9-bebd-4dcb-8f68-8f578ca9d72a","savedPayload":{"position":{"x":44318.14175549443,"y":31708.891385093266},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"64476647-d34d-402b-82a5-521a8b647264"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"3b615824-fe80-4d76-826e-06e7c8a9bdff","savedPayload":{"position":{"x":44250.60221948984,"y":31751.772743890055},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"8560c11f-af83-47b7-afe2-37c16e18ea4f"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"f5683bcb-c0d2-40c9-9eaf-a2cb4cfab702","savedPayload":{"position":{"x":44153.02320691994,"y":31784.13904467631},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"c144d391-12df-47a7-b483-b0f02f731f66"}}}],"id":"fdfc7c78-552f-49d5-ba86-0a1b166ce078","savedPayload":{"position":{"x":44141.821764465945,"y":31355.229987239374},"targetPosition":{"x":43626.31800703183,"y":31407.414884109556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"4f3f3156-7f4c-4966-b70b-fbc305c706d4","savedPayload":{"position":{"x":43623.85978187672,"y":31362.647150527082},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3496.3969296811883,\n \"maxValue\": 12400.41819345618,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"2d28ee8a-33b8-439e-bdaf-17e9de8bcaa1","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a5aa96d8-2638-4705-b7bc-c1573ce62d8b","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"5ed2aff0-7419-4c86-89ba-5c55dccc5945"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"e160e190-eebc-4a97-8a78-fa63f9d226e6","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"7113b38d-c7a0-4485-b06b-5e664e26cf09","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"a6f8fc60-7728-41e2-9013-ef8d98c59883","savedPayload":{"position":{"x":43633.74577614054,"y":31475.276430635626},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"cabe4983-ae55-4bfc-802d-46debed71800","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"33c63900-9d5f-4e63-90bc-b08bc3799f45","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"10ececf3-e4b7-4d0e-af1d-5efa2d86a911"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"71e42fcb-d537-4f14-b3d8-9b8c7f3e0e00","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"f2a5e267-e248-465c-9ebf-e5ab244a7b5f"}}}],"id":"8a6895dd-c5f4-4211-b602-fa2f596f4306","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"c38cc61c-85f8-4c25-9225-68415e09733e","savedPayload":{"position":{"x":43611.43180799584,"y":31591.37193734411},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"e724add5-ce39-4304-9668-ca7298a61440","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a21b2429-940a-4c5b-82c0-86f1310fde3b","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"45d13953-e76a-4a87-9c7f-6908936d3a0e"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"70fc509a-6106-4a00-8ed3-50a7f129af4d","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"e15720e5-644b-41cd-b18c-a98166d84d62"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"ed46b21b-cb1b-409b-b0e0-92116f5db79e","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"4c7e1297-9fa7-47fe-825f-14ffb4e902f4"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"43cf4dec-69e7-4cb4-b8f9-fce76d09fefd","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"bbc32836-a05d-4b66-a284-74b7174e50f1"}}}],"id":"4a3bc5ba-3ba0-4f9f-ac84-27087ecde7cc","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"cfaf2e4e-d2dd-4427-8099-9f99fd05c291","savedPayload":{"position":{"x":43559.23277912925,"y":31694.525566454333},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"31a4f9d8-a577-4c74-9f43-449fbccc5fed","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"b7d3c492-3633-42b0-9cc4-2fa215f5013d","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"a3bd56cd-062c-47bc-a411-1a0c4401ad7d"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"3075e90f-88fe-4257-93ef-612bee202772","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"7a9b54e7-7240-461e-91c7-3533e9264b61"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"a9cbdd58-2167-4913-95af-f6eaedb13f0a","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"674012e2-82cf-46c7-a501-1195a3ed4f53"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"ec9e0f27-4da6-4726-87b6-c389dd29300d","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"eb7f2ebb-56e3-4243-81f7-9a305d494a43"}}}],"id":"484a99e6-f41f-4581-815d-12e5d5adf46a","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"6ad75d01-a60c-4b76-a538-add03a11800f","savedPayload":{"position":{"x":43484.72851305459,"y":31777.876573021833},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"20ca88b2-2437-426b-ae31-4bb133056f06","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"c191cef5-992a-4852-ad1e-c08bfce607c4","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"8b2dc921-7371-4396-8285-d50a869523be"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"c87b2186-1c2d-4f9c-aef5-81e70e85f543","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"034a133e-949c-4f0a-81aa-18928f5b14ff"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"b381ef85-4a79-4e71-b17c-6dbac5adb474","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"0969d9f5-ccae-438c-bf9f-b007751c8bed"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"04d720d0-ea7c-47d5-a0da-e106788021bb","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"e7cad0ae-40c4-42a9-a68d-30db5a9df2b0"}}}],"id":"110120d0-3228-4837-90ee-ef53cde51e86","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"9afe0b1b-15b3-4a0b-9348-c12d1132b4f4","savedPayload":{"position":{"x":43391.02991247641,"y":31839.99226140119},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"ad98b138-1580-4a83-8e2c-45ad2b9048a3","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"9eabd986-375f-42e0-9328-ef73d2d97431","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"6f5a0453-bf4c-4b6c-953b-b1be6bd9162b"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"8875ef41-c98b-430f-8130-f28e205bf407","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"a4a1f553-2414-4a54-86b0-bc8bc93d3463"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"f5a3ecd3-8d10-4e9b-a8f7-bbaf911753a9","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"e0a80f5d-f6f9-45fd-854c-9a7139be0720"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"0288169d-1423-47ae-9681-ae1825b2f2f4","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"514bdf02-9b7a-4072-9fc6-b865193818d7"}}}],"id":"3c4ad59a-a640-452c-9f9c-4ddee652c75a","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"083a2247-3925-444a-bcf5-fd7eabb93872","savedPayload":{"position":{"x":43284.22656791505,"y":31876.045500857595},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"b3d45f50-a702-4fe4-857f-14746d716a5c","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"61713fbc-2a41-4273-b65e-1383a74ceca8","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"a3b45e28-4362-45f2-9fc9-b03ec307d8d4"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"929243eb-86b9-4c69-9d5a-2542e8769163","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"7df24dd9-4983-49ab-a558-8036394bb6c9"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"c1221310-46c7-48ce-b5d0-7da6e5d7665d","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"e0bec28c-92c3-4cb9-ae86-cf23cebf768a"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"904b7e2e-0646-48c3-a4a4-167c2c9606b3","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"c6ee9688-881e-4af4-9aab-cdf6b3f6c5d5"}}}],"id":"2e90b8f5-d82f-4cf6-9691-a98631fdcf9e","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"92c7080f-ebb1-4c01-8d88-0b6ca169c65e","savedPayload":{"position":{"x":43156.82064724961,"y":31879.74004634101},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fdff16ce-9b5a-4a05-a9ee-8a233a2bd713","savedPayload":{"position":{"x":12115.510416924759,"y":26373.74763669547},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":2465,"y":1195},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"Bittrex TRX/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2018-12-28T10:20:51.973Z\",\n \"toDate\": \"2019-01-08T06:43:24.825Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"678becae-c62f-4f46-8bf7-7bf5ee84a98a","savedPayload":{"position":{"x":43433.904964020134,"y":31090.08122008158},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3569.4333333333334,\n \"maxValue\": 4099.233333333334,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"404d9d09-7308-4c5b-9fcd-02bf352f25ab","savedPayload":{"position":{"x":43522.58881136428,"y":31164.598399546274},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"bd940e93-d0bb-425d-abb3-c9696d1f6f07","savedPayload":{"position":{"x":43586.959939711174,"y":31259.03996760349},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"f35ffb03-4eb6-49b1-8eb6-c9e53a9d05b9","savedPayload":{"position":{"x":44078.64999458624,"y":30934.89460131808},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"969b13bf-452e-48bf-9000-4eed11ff644d"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"351fbe5c-6d1e-41a7-8a30-581228d0f36c","savedPayload":{"position":{"x":44163.85123076828,"y":30946.443093510883},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"a8649655-58ba-4613-ad5d-73e0cb09a968"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d984f2ae-2be7-41bc-9824-059e497f4ea4","savedPayload":{"position":{"x":44241.83694393738,"y":30974.63232510084},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"11bfda30-024f-4bbe-9650-df3b30565d4f"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"cf54a7b4-873d-48a7-a0e5-617ccbd5f00e","savedPayload":{"position":{"x":44311.67549610568,"y":31016.49344919726},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"85112a16-298d-49d0-a0d4-40fa28514991"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e891119d-b5d8-4922-ba86-876909bf5190","savedPayload":{"position":{"x":44371.85960146544,"y":31070.221683842996},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"b084ff36-9793-4af8-a9b5-d7d106e59add"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"06c241b6-1692-4273-8270-34e33be5c1a7","savedPayload":{"position":{"x":44420.81779483182,"y":31133.88297441118},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"f56b72d8-679d-4088-a9c6-f06261b20b12"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3ce915c9-5a8c-44f8-bc9d-a5958a8ec29a","savedPayload":{"position":{"x":44457.117328935085,"y":31205.319635425785},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"fe56310c-617c-4f69-b133-a38e6fcd1695"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0d599288-712e-4ae2-ac81-05d67a215a95","savedPayload":{"position":{"x":44479.64133141089,"y":31282.130540258924},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"bf5c0cfe-e275-4f55-b7c1-3a239c26bc73"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"1a0350e9-2f56-47eb-99cd-f1f3489a0578","savedPayload":{"position":{"x":44487.61147096234,"y":31361.728456129385},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"0584f969-d053-4fad-bf9c-5e7ca5c91d80"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0f62db1d-9ba5-442b-8968-8b6ee0baf4fb","savedPayload":{"position":{"x":44480.78341149639,"y":31441.3959689604},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"559256e3-0cea-4280-af2b-174a971fbb74"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"be0172e1-f0d5-47e5-ae33-6ce8e8da3761","savedPayload":{"position":{"x":44459.48592250235,"y":31518.457632189642},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"4f3e6f14-1e5f-4fdd-80ce-fbe78967aaa4"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"1f570292-8f87-45ac-b584-d4481fd7e663","savedPayload":{"position":{"x":44424.41129890276,"y":31590.302021321455},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"d73d610d-f649-424c-b01a-d86ebb2f2408"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"98ca3166-722b-4826-abd7-8374d466267d","savedPayload":{"position":{"x":44376.75954564685,"y":31654.50449366559},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"36b804ed-9849-4ee7-bae8-8fd0e3cb4591"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"0454c78f-8111-4a84-8ef3-59c784ddc828","savedPayload":{"position":{"x":44318.14175549443,"y":31708.891385093266},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"ceeed58a-0740-4dd8-87b5-eeeafaf435a7"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"641cd74b-8654-4f4e-b495-3d55f998ae61","savedPayload":{"position":{"x":44250.60221948984,"y":31751.772743890055},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"2d40c3fd-6ffc-4e4b-af68-cf982c651c48"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"e9c30c98-f302-4717-80d0-e48934c07fc2","savedPayload":{"position":{"x":44153.02320691994,"y":31784.13904467631},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"2ffc6f95-5ebc-4899-b47f-66c5acf3935f"}}}],"id":"c79e3a5a-1f82-4de2-a8ba-c6179573f68d","savedPayload":{"position":{"x":44141.821764465945,"y":31355.229987239374},"targetPosition":{"x":43626.31800703183,"y":31407.414884109556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"eeaa93e1-7869-4bc6-93ca-52333b686b14","savedPayload":{"position":{"x":43623.85978187672,"y":31362.647150527082},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3496.3969296811883,\n \"maxValue\": 12400.41819345618,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"6b79cf69-bf97-4157-8986-37004fc5bdfd","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"913355ba-e589-48c3-b3d0-8721f627cae4","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"7a0fc8bc-dd6e-4f25-aa78-27b301b57fb2"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"fce14765-1855-48df-ac6f-5724ed4ed0c8","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"dff758ba-da07-45b6-ba8e-be3015abbddf","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"3bc7fa0b-3ad8-4589-8a62-6ff9805831b7","savedPayload":{"position":{"x":43633.74577614054,"y":31475.276430635626},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"7ea22e0f-6bfa-4a4a-ab4f-92e20887b332","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3e38db5a-a558-41ce-b015-5dea0199edd2","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"402ced77-4d3e-4e7e-a4ec-48515db4aa75"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"83167a17-5bbb-4cfc-aa78-95f42bb82aab","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"c9520ba2-bf76-4dc7-a72b-5fd16f1a9d63"}}}],"id":"fb5c19c3-c65e-4c5a-8fd8-ca6f536df5ed","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"5cffcef2-548d-4a6f-924d-75b09aae2d22","savedPayload":{"position":{"x":43611.43180799584,"y":31591.37193734411},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"b1b3892f-5554-49f6-a9a9-fc2fafe5bbb7","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"773b8207-4d91-43d5-affe-cb3ff1e4a031","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"b407ebab-eb7f-4e61-bc62-767279c5a5b7"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"65b7c887-20da-46c8-a5b6-69ac80217b6f","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"cd3da659-6d9d-4624-bb89-c637c89c2dda"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"f95f9e38-d309-488f-903f-797f1dd7ce97","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"6b210cd5-0961-41aa-bb1f-49f06bd7a8c4"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"0259b52e-ce38-4125-9cc4-21fd8fcaa076","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"37cad52c-3e13-43b4-a939-cfe22ff35dc3"}}}],"id":"a513254f-bc2e-4190-aa12-4f22315fde5e","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"f7dc665f-70fd-4f44-8d2c-9dc356132634","savedPayload":{"position":{"x":43559.23277912925,"y":31694.525566454333},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"6db82b1d-60aa-49f5-a795-ef219a1733f6","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"ecc4fac0-e211-4cbf-92b5-c198f22b6573","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"a038b702-d3c4-46a8-bd3f-d89661170604"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"86698d98-2685-4d19-9e51-f918dd37afb8","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"09fa4edc-9155-4efd-b5de-8e03dd0545d5"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"72dfcccb-5a37-4454-92ea-83e8339d4577","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"1465b7f8-4825-46c4-9947-a4662fe4122e"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"f919f8d6-4933-42a0-89b7-babf7807372d","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"19043763-7298-408d-85dd-6b351badbad9"}}}],"id":"9d8229f0-1d41-43b8-a315-e285ada0a565","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"449336ca-3b4e-4d3f-afd7-befbe285d20b","savedPayload":{"position":{"x":43484.72851305459,"y":31777.876573021833},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"76566856-0725-4d1c-a48d-6a8c8c9384ec","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"4ff9a001-9823-4c52-ba58-ce8b23c59289","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"647c1300-67d0-4ed9-a73d-16e65a6948d7"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"62837242-2932-4fc5-9b73-555b38a7bdc4","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"1dda23db-6b9d-45fa-84d2-5dbf0bf5187f"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"79edec28-5694-4c45-82ee-1837eab79e53","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"ae693c7e-643a-41b2-a16a-47e127d4529c"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"679dbcb1-fadb-4ad9-98ae-d878e5456985","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"cb025cb5-471e-410d-af5e-cfb73cc360b1"}}}],"id":"88bc23b1-b515-4f1b-a178-30c0126c189e","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"27968cc7-6794-49b6-bc19-e76de420a461","savedPayload":{"position":{"x":43391.02991247641,"y":31839.99226140119},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"1b976295-8180-4eae-a7c9-ca016719250f","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"7a3aa395-61f7-498b-b35c-702a846b6d17","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"627305eb-79f2-442e-b74d-9d9a280969e0"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"d48ce050-c365-4d99-b85c-de10c0737348","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"bd02430e-8059-437e-bdff-30a619270b96"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"f21a8b6d-8766-4651-bfc2-6b8675fe4498","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"a293c4e6-2e87-408c-b4a2-a1bd7e218cad"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"90b2e72a-05c6-4e4b-9041-00875d34336b","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"826c69b1-f0e6-4e5f-82e9-9dca3bf74308"}}}],"id":"9e4002a0-8b70-4f3d-ad84-007a90b0847e","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"4d779705-1486-46d8-bf4b-d62749df80b1","savedPayload":{"position":{"x":43284.22656791505,"y":31876.045500857595},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"f7d67b5b-f031-46bd-b3a7-ddf25a8cdf38","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"92c08710-030b-4fb8-8c5e-330ca33d7ee6","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"a6e1479c-8fc3-4ea7-a9a5-27a5bcf36a89"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"7d48bb2f-d722-451e-a59a-8a324814cde3","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"2edf2551-36f4-482f-aed7-9ed23463ba0f"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"eba7800c-60cb-42f1-9099-e61456cd294a","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"b22593fc-0b99-4998-80ea-4e5673d0c5b8"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"731d0e16-00be-4d30-9a40-e60e0b73b8c5","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"8f351217-50ca-4058-a6ea-e552434bc872"}}}],"id":"347eeea8-0f11-4276-9aab-6d484a1b6be4","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"edccaeae-cb89-42e8-9ad1-2fb57b543a48","savedPayload":{"position":{"x":43156.82064724961,"y":31879.74004634101},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d422879e-9209-4b5b-843e-6da48dfb1e18","savedPayload":{"position":{"x":12168.444280660195,"y":26108.174337587763},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":2815,"y":775},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"Bittrex XLM/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2018-12-30T23:22:24.048Z\",\n \"toDate\": \"2019-01-10T19:44:56.900Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"f18d4fc7-c132-4bbf-88a2-20e955bfbbe9","savedPayload":{"position":{"x":43433.904964020134,"y":31090.08122008158},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3540,\n \"maxValue\": 4069.8,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"08a90438-2566-4218-b607-42e8c2cca124","savedPayload":{"position":{"x":43522.58881136428,"y":31164.598399546274},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"f7d529d6-f5d6-40a4-aa16-7dcfdb4fc33a","savedPayload":{"position":{"x":43586.959939711174,"y":31259.03996760349},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"d0f60278-5e24-4446-aaf3-7aef1be2ced1","savedPayload":{"position":{"x":44078.64999458624,"y":30934.89460131808},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"5bbb8d3b-f4a0-443d-b8f7-446057118471"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5a41b87b-2eaa-444f-8e94-fa1f43a2c2fb","savedPayload":{"position":{"x":44163.85123076828,"y":30946.443093510883},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"e14abcc3-2fa6-481a-8a81-a92029da9366"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"08158f61-db06-4870-884b-d9fe713a0370","savedPayload":{"position":{"x":44241.83694393738,"y":30974.63232510084},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"cca878dd-2f01-45e0-9802-7483b42b4215"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"03feea63-1436-4c0e-a323-78ff1b8f0c1b","savedPayload":{"position":{"x":44311.67549610568,"y":31016.49344919726},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"ab510dbb-bf7d-4ead-8bef-95b9879c36c1"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"cec5b198-f17c-429b-bddf-499aa2461fa1","savedPayload":{"position":{"x":44371.85960146544,"y":31070.221683842996},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"d1b38bb9-1c33-4a6c-8bac-f596a8ba35fa"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7f677133-c722-48ea-9b8d-1e0ff7356699","savedPayload":{"position":{"x":44420.81779483182,"y":31133.88297441118},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"4efedf7e-dab7-433a-9618-f99e4fe49a0b"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"aa80a019-ac78-4350-9b50-e346d8e18688","savedPayload":{"position":{"x":44457.117328935085,"y":31205.319635425785},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"5f2a5acb-6dee-4190-b4f2-a86dd0a04ea3"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"46bf3cdb-7f6c-41bc-9abb-b5d75346b518","savedPayload":{"position":{"x":44479.64133141089,"y":31282.130540258924},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"72979cdb-b3d5-4f6f-919f-9c686645d5eb"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"02a846fd-f23c-40af-aecd-03ade57dc65a","savedPayload":{"position":{"x":44487.61147096234,"y":31361.728456129385},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"291decd2-466c-41a9-8151-804479477adb"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5a66d54e-7aa9-4dc4-beae-4b6ecbc8d1d1","savedPayload":{"position":{"x":44480.78341149639,"y":31441.3959689604},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"5a36f514-879f-4443-b37a-d40ff2a03970"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"e91086c0-7672-4258-902b-dc6110098194","savedPayload":{"position":{"x":44459.48592250235,"y":31518.457632189642},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"a8a96c84-a857-4e37-b01d-26fdb08d7307"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"35c751be-50e4-40c7-b486-cd1b4a619561","savedPayload":{"position":{"x":44424.41129890276,"y":31590.302021321455},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"a27654cd-6702-4493-a88a-10b20544821e"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"f1a8f700-e142-4d82-888c-345fb1cc54e7","savedPayload":{"position":{"x":44376.75954564685,"y":31654.50449366559},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"25c69e81-14db-4730-b7b7-20af2191dc82"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"1325337b-57d9-473b-856f-16c41a7d62b8","savedPayload":{"position":{"x":44318.14175549443,"y":31708.891385093266},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"bb17d643-2b04-4ada-8541-dc2ef8695f9d"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"c58cc2fb-d1e9-4366-80ad-e5a051f92452","savedPayload":{"position":{"x":44250.60221948984,"y":31751.772743890055},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"b5124327-5cbd-48a7-b503-88bdbef311f4"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"0ad845c3-6e0a-4665-8181-9fb7b73274ea","savedPayload":{"position":{"x":44153.02320691994,"y":31784.13904467631},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"e7e994e4-fd5e-4e1a-824b-4b22abc0529e"}}}],"id":"add14920-d63a-40ff-95c7-743606b6e5e0","savedPayload":{"position":{"x":44141.821764465945,"y":31355.229987239374},"targetPosition":{"x":43626.31800703183,"y":31407.414884109556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"6b2a1a89-aaf8-4aa1-adbc-caf3081c71d4","savedPayload":{"position":{"x":43623.85978187672,"y":31362.647150527082},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3496.3969296811883,\n \"maxValue\": 12400.41819345618,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"4137f1a8-749b-4314-9d1d-7669e1abb636","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f828f219-2be7-4d1e-9793-b6c024ff171a","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"5655d994-fab9-4648-8294-ac801040be2b"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"7c75ea9c-3fea-46d6-bf12-bfc13f34eb21","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"4e25a0a1-f3c6-490c-86af-b6e65d7666e0","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"fa348818-c32c-4c97-9ee7-5b1304274c59","savedPayload":{"position":{"x":43633.74577614054,"y":31475.276430635626},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"b4cc67ef-adea-4c9b-9b31-a0bf45429030","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2edf0ca4-8b11-4573-a362-6db6af902d19","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"df680775-c023-4053-afe8-c19f4d115335"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6fe2de97-4465-4879-bc6b-c55d2e96ecd8","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"e16bb3c7-c4d0-4657-8847-3da74df42eb5"}}}],"id":"81c90a1c-c6e2-4133-8af5-4f5c65fa951a","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"3dfcf837-fe65-4341-a4b2-65027fc30ae0","savedPayload":{"position":{"x":43611.43180799584,"y":31591.37193734411},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"023f20bc-058d-4d86-a122-df02dc3bbd46","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4413a6cc-e38e-4bff-b4db-e5e4fca77a1b","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"11022614-5256-4cfc-b173-bc14399ff681"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d92810e7-c766-4acf-bae1-b9c1541ec1e4","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"7dd49ba4-7acf-4d69-b5d0-12baec0062e6"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"452f9c5e-b372-4f5a-ac30-7d75d499f6d0","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"7c5a650e-292b-4a1f-a3a2-9c70f8640392"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"59fd7248-e9b6-4568-86b2-06b234c2429c","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"69373311-1e44-4c8c-8db4-88c32c7275aa"}}}],"id":"821654e7-ca02-4621-8f07-197a370c03ef","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"20126a73-0cc7-4f68-a7be-7bd5e4f4a299","savedPayload":{"position":{"x":43559.23277912925,"y":31694.525566454333},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"373e0a7d-dd05-4f0c-9d92-dec22f7f1749","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"d5b9e4bd-622e-472c-acc8-390651e729e1","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"64887ac8-1437-40d9-883d-8da0930cadcc"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"39e86a78-31b6-4437-971a-9022c1e02638","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"23ecf3d0-04c6-4f4f-8603-0d18375047c2"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"cf6da00f-3b09-45f4-bbea-54ea13af52bc","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"f6da9b11-6e2d-4b27-b684-cf6098de9be0"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"9317bb4a-46c5-425c-8145-8d9e6a7b5c85","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"548017f0-8505-4289-a0fe-a323a2069de0"}}}],"id":"f70640ba-49d7-444c-9fea-28477fe90689","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"23cb0424-8541-4390-b906-22886e7c4916","savedPayload":{"position":{"x":43484.72851305459,"y":31777.876573021833},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"19a2b81d-7fa7-4415-9df7-1fb85d3f9205","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"3640278c-97cc-42d5-be77-4115dc14aa36","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"954d99cc-080f-405a-9d07-62d88e517c91"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"139b3d3d-f485-4ece-b9d3-6dfaa2de2ad1","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"a9f369f7-a19c-45dd-a6cc-4c3782a720f6"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"688af7db-3fc2-41c3-ba0e-7ce4a67140f5","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"e2686a01-7488-4f78-ad0a-bdf0348c0e48"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"b723e850-7236-4d66-b32d-8931d06e5490","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"fb6a2ef0-7865-4525-a473-b191ef0a6412"}}}],"id":"ee74b6f4-ff37-476b-8ca2-b88b6de50724","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"844fbb20-b225-4f2d-846f-0874fa5ff953","savedPayload":{"position":{"x":43391.02991247641,"y":31839.99226140119},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"bf8784b0-db2f-4771-a480-64b0ffd25ac4","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"4e044fc9-cf16-4883-8f0a-beb5a6c2dc52","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"52b20175-168d-4749-9aa0-ae59675ee226"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"20033a7d-4298-459b-b7c6-f46c0b57216f","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"f50b7a84-541a-4bc7-a0fa-6c11ae94715a"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"ff7a88c3-5e17-49b9-baab-3831ab0c1c46","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"e215a14f-4bec-4535-87ed-2894619f5868"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"043fec5e-54e3-4d5c-943f-e82660df5fdf","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"a07d179a-c12b-4cbc-82eb-ef410d319ce4"}}}],"id":"e7a939d8-377e-4b00-bfcc-6554cf0a5856","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"077aa625-29a3-4605-8fbc-e5edbdacad1f","savedPayload":{"position":{"x":43284.22656791505,"y":31876.045500857595},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"4d72882f-1a90-4d4f-b978-5642ea54414e","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"bdc8e91c-9d0b-4c3e-ae4f-2bfae0747ed3","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"bb6f914c-ae3d-4116-a946-5058bfcbb1f8"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"93e4bd73-1283-49af-b536-9a248ce908cd","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"cb8186b0-c616-4f6d-84fa-d64145f70b0d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"835cf374-05ec-4203-84a0-3705aad55372","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"17252c98-8fa7-4600-87a5-60e66c021519"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"b9e48e66-3771-4769-a496-485e4e91fbe7","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"6320b41e-3a07-4900-9359-8d023d73b301"}}}],"id":"5f1fe748-393b-4963-ae5e-a96953033571","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"212f0a50-8319-45cd-aaa8-493fd5ac9ed2","savedPayload":{"position":{"x":43156.82064724961,"y":31879.74004634101},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e48c2b63-e094-439d-aef5-31f0fab06154","savedPayload":{"position":{"x":12319.088187419122,"y":25882.85036358558},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":2815,"y":985},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"Bittrex EOS/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2018-12-27T15:21:43.327Z\",\n \"toDate\": \"2019-01-07T11:44:16.179Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"908891af-5ca0-485d-8640-157197ab824a","savedPayload":{"position":{"x":43433.904964020134,"y":31090.08122008158},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3564.2525485881924,\n \"maxValue\": 4094.0525485881926,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"76bcbf56-08bc-4abb-9f41-d810b699adaf","savedPayload":{"position":{"x":43522.58881136428,"y":31164.598399546274},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"d642be4b-1f47-4f91-848f-eeaee9567e43","savedPayload":{"position":{"x":43586.959939711174,"y":31259.03996760349},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"5d0cfa2c-ef7a-4758-b0ca-d476f30258cd","savedPayload":{"position":{"x":44078.64999458624,"y":30934.89460131808},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"1a7ba5e5-ea1d-4d08-a6da-a124be2cf405"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"33b9a760-ef1f-4214-9fda-c12e368f3c65","savedPayload":{"position":{"x":44163.85123076828,"y":30946.443093510883},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"18b9684f-69ea-4768-a7e1-c48a90c70fee"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"25094fbb-7c92-4287-a969-2dff1490a68c","savedPayload":{"position":{"x":44241.83694393738,"y":30974.63232510084},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"7b5d970c-a09f-4fd9-a1bd-243d558d851b"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"976abac1-dd1d-4d98-9c4d-643c88724caa","savedPayload":{"position":{"x":44311.67549610568,"y":31016.49344919726},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"f4b99732-9571-467b-ace0-a52ac23231f2"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7024d870-0b53-47e7-82a2-fb6733ce1639","savedPayload":{"position":{"x":44371.85960146544,"y":31070.221683842996},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"7e67d8a3-5ef5-4367-84dc-e9fa04a24237"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3cd2455b-aed4-49b7-9b7a-2fa797c909f3","savedPayload":{"position":{"x":44420.81779483182,"y":31133.88297441118},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"08b3fb60-b2f3-4a24-8b6d-f686f860a8a9"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2e226de4-422e-4c91-8e8a-79b590b1ca34","savedPayload":{"position":{"x":44457.117328935085,"y":31205.319635425785},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"5cb33464-e8b8-4fa7-80f5-9706644af076"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6b715bcf-c19a-4224-a689-bcbf7b77280d","savedPayload":{"position":{"x":44479.64133141089,"y":31282.130540258924},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"a8d309f1-437b-4f03-abf2-d226535443d5"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8858e677-a6cf-454c-983d-b37e2c818217","savedPayload":{"position":{"x":44487.61147096234,"y":31361.728456129385},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"8d30954e-e8cb-4422-9936-b3db8eeb2230"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"28d7ab9e-000d-4169-9694-8e20cb3045b8","savedPayload":{"position":{"x":44480.78341149639,"y":31441.3959689604},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"0b7ef0ae-a553-4fb2-b48a-4c8f420ad664"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"7acefd12-8ca1-4a6d-9526-db4e190c6cd6","savedPayload":{"position":{"x":44459.48592250235,"y":31518.457632189642},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"402b3d3f-7860-4dd8-8d35-d514c1e1dd04"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"15296cf5-6296-44b2-aaa8-67501ef388fa","savedPayload":{"position":{"x":44424.41129890276,"y":31590.302021321455},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"93116bf3-566d-473c-8778-ab6b2f273b14"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"67d6a2de-8947-42ee-8679-d1b9af12e98c","savedPayload":{"position":{"x":44376.75954564685,"y":31654.50449366559},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"cacef726-dff8-4943-a17f-7d8bdb4b9597"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"079012a2-d0f0-4ea3-bfbb-2adefda1dc8d","savedPayload":{"position":{"x":44318.14175549443,"y":31708.891385093266},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"8f495edb-4a00-4bad-a2cf-7bd33dcc3d74"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"a36b02be-1d54-4e66-9b2f-c03d9ac484b4","savedPayload":{"position":{"x":44250.60221948984,"y":31751.772743890055},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"1843ab42-2d74-4473-8059-cb27a5945383"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"3103f44e-55e4-4684-8027-2531ac56007a","savedPayload":{"position":{"x":44153.02320691994,"y":31784.13904467631},"targetPosition":{"x":44141.821764465945,"y":31355.229987239374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"4355b685-22c8-4117-bde8-a24bde773d43"}}}],"id":"86d68c1e-98a6-4268-9e92-1fe9ecbafb1c","savedPayload":{"position":{"x":44141.821764465945,"y":31355.229987239374},"targetPosition":{"x":43626.31800703183,"y":31407.414884109556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"d18c01b8-e235-476b-ab3c-f7f3d4928379","savedPayload":{"position":{"x":43623.85978187672,"y":31362.647150527082},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 5882.665921348062,\n \"maxValue\": 14786.687185123053,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"f7be0c10-0aaf-419c-985d-95e8b377493d","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"807e1fe8-d7d1-4bde-aa0a-f08650eced60","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"ba417f39-c1ca-4735-8652-aa1759d0952b"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"c0974562-4741-42c1-924a-016667cca160","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"116deec7-9455-4e1a-a310-b4b9249e0abd","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"cbca24a3-81d0-4057-b560-87de2d1f6c23","savedPayload":{"position":{"x":43633.74577614054,"y":31475.276430635626},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -0.9280039115022607,\n \"maxValue\": 3.0719960884977393,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"b15249f7-01bd-43f3-9517-9e8d13f19b8e","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8b651242-773c-4690-a133-83ee981615e3","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"8dd768bd-c47c-4bca-9a0a-744ce3c5cbaf"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"872f6e7f-fdc2-402c-b815-61c7f3bde335","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"bfc6057a-19d3-498c-bcf4-80c07ade8d94"}}}],"id":"06eeff0f-5805-47bd-9db4-f411adb8b5a6","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"33f88961-5b0b-46ac-a6ea-ca07d40d3830","savedPayload":{"position":{"x":43611.43180799584,"y":31591.37193734411},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -0.9280039115022607,\n \"maxValue\": 3.0719960884977393,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"025ea63c-deec-4a03-bd3b-97bfb88b4489","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"758fcd4c-a3ac-4083-807f-ecba6df06923","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"6a4acfa9-3272-4d9c-acda-db0965821b1b"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e2b5eaff-7c47-4e28-9055-fbe300a655e7","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"56953a9e-d54f-4d93-99df-3aee612b4e87"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"263200b6-46f7-4996-99c7-abb39ca01dc3","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"50f3059d-175c-429f-ba3f-92e375789894"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"065576a1-8faf-4b44-b6ab-6f133c4023d4","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43767.25622614087,"y":31932.288004103884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"0022476c-d823-4277-9baa-0528a23eadd1"}}}],"id":"7bb2b492-a02b-4403-ab1e-f1e52ba41953","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"9f6704ab-2ebb-45de-8fc5-9300e24b967b","savedPayload":{"position":{"x":43559.23277912925,"y":31694.525566454333},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"a7f74791-35df-49f1-879b-eac9e59bb599","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"b0826a2d-e587-408c-96e4-62856fc14b0c","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"7152bc29-ba4a-4310-ab9b-1e2112110e6a"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"1ab3c833-6948-4d43-a77a-55df079c626a","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"d165a983-d5db-48b1-8486-ab2c001b436a"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"c62fae3b-4278-4fad-b631-6d349322701c","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"8451dc0b-260a-48d1-b500-2932a330ea1c"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"038fd433-ab00-4350-bb1c-541d223044bb","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"7795d7ee-a935-4d5f-bb9b-01d9c9400d0d"}}}],"id":"fec6163f-b357-4e90-a86f-dcedacc5ee56","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"24f776fa-4314-47e1-b6fb-174e7797d673","savedPayload":{"position":{"x":43484.72851305459,"y":31777.876573021833},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"4a3e2c9a-d57b-44eb-8416-b4ec741ca473","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"6f2e326e-6540-4338-841f-76c2c8bf0ca7","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"62080b2d-34fe-4a3e-913a-6ea9a4540295"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"cc17a688-90f6-4915-a082-0067d8a7203a","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"0bdd56c7-d6d5-4ef6-a23c-4eb47da0b75e"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"97d7ce88-18ea-4230-a16e-d95a2409f451","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"73a267bb-5acf-4d45-8de6-da8ad2db1c44"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"06f46033-fb61-49d2-bf65-2cde56893ad1","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"b9e87995-fa8d-4e19-9a47-4840ab24abb8"}}}],"id":"cf5c961e-04cb-4b6f-a4c1-f6b0e155cea2","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"ea6fde1b-336d-440a-8cfe-b66757087027","savedPayload":{"position":{"x":43391.02991247641,"y":31839.99226140119},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"4ce420fb-adb9-4cea-8680-7ba103263943","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"14c6f281-e2f8-4c19-abce-295b747ece22","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"075270ef-6ad7-4e1f-94d5-4f4d5c6fe4bc"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"f52ad1cc-d2a3-42da-867d-4fd880afe93f","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"db45c52f-53be-4dd7-84c4-ce06ef0b43c4"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"67ccfdc3-f5d6-4390-8198-62fa931c2828","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"61c18219-e40b-4622-906f-847bde6657b4"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"bb527bfb-e37a-4f7b-a778-8ca37e138aab","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"2f82d9d9-59fc-42db-8de5-878108982e60"}}}],"id":"1880e8fa-3ca9-4b5d-aa96-2a9034945d5d","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"0945fcbf-a640-4274-a259-1b4906fe3d52","savedPayload":{"position":{"x":43284.22656791505,"y":31876.045500857595},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"ef9082bb-0919-4da5-9b39-dbe7b3dfb0df","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"02c97550-dd98-4cc8-ac05-d3069f1b8401","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"fbedd030-2354-498e-81f6-03dc718d5cbc"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"fa9aec98-59ce-4e7f-afe9-5579aae6b116","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"6003c37a-60fd-4693-9614-077ef44b22b3"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"c2a2af8d-9cee-43ea-b79d-c2baee718c7e","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"47f72108-a7cf-454c-83df-3d42f59552d4"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"b76be29b-1776-436c-a5ae-f0c7efee801a","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"3b3ac1dc-3bd6-4724-8056-0a9988ee1b1f"}}}],"id":"740d71e2-60b2-43c4-8e52-df729448ab4d","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"165ef98d-e09c-4b91-a846-8f13f18ad04a","savedPayload":{"position":{"x":43156.82064724961,"y":31879.74004634101},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7c1f5957-039d-4fac-8328-f338204fa614","savedPayload":{"position":{"x":12544.617754214514,"y":25732.225980454044},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":2815,"y":1195},"width":240,"height":113.625,"radius":0}}}],"id":"64fa2a31-21ea-4b56-a625-dc4082876a89","savedPayload":{"position":{"x":12809.903295371514,"y":26373.610784042445},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":0,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"t"}}},{"type":"Dashboard","name":"WHB Strategy","timeMachines":[{"type":"Time Machine","name":"WHB Trade # 1","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-06-01T15:49:10.144Z\",\n \"toDate\": \"2019-06-15T06:52:48.924Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"60b9655b-80e9-460b-9897-c726e90cb985","savedPayload":{"position":{"x":10359.356252981272,"y":25674.42431963708},"targetPosition":{"x":10609.914851565229,"y":24985.38184564623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 6646.022766089068,\n \"maxValue\": 8969.062905587863,\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"0a6cb22b-71b9-4ab4-8719-cde52179b1d2","savedPayload":{"position":{"x":10138.576414811512,"y":25547.060726658532},"targetPosition":{"x":10609.914851565229,"y":24985.38184564623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"06e3d06c-b7fc-4789-ab1a-a32f917c48af","savedPayload":{"position":{"x":9974.822467690223,"y":25351.933153677193},"targetPosition":{"x":10609.914851565229,"y":24985.38184564623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"c5ec7558-ea20-4010-82dc-d49b68f86e76","savedPayload":{"position":{"x":41619.253081990486,"y":30247.26841376352},"targetPosition":{"x":41682.42485187019,"y":30667.603799684814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"431ea989-085b-40ae-aa2a-d371d7cb68c6"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"576555fc-56cd-44cc-bfa0-90363f10573a","savedPayload":{"position":{"x":41704.45431817253,"y":30258.816905956322},"targetPosition":{"x":41682.42485187019,"y":30667.603799684814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"ddd34b26-4fa8-4d7c-b76d-f671c92a6181"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"de711144-98f3-4061-b24f-99bf63819e41","savedPayload":{"position":{"x":41782.440031341626,"y":30287.00613754628},"targetPosition":{"x":41682.42485187019,"y":30667.603799684814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"683e24f7-010a-412e-ba21-f280e63a0f1d"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"858d20c6-55b2-45d8-bed8-251003bb6e3e","savedPayload":{"position":{"x":41852.27858350993,"y":30328.8672616427},"targetPosition":{"x":41682.42485187019,"y":30667.603799684814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"210b7e14-a6f0-4c56-b5e4-108f57ebb4c6"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4a401759-63e9-4904-bcde-8ea82c7d4378","savedPayload":{"position":{"x":41912.46268886969,"y":30382.595496288435},"targetPosition":{"x":41682.42485187019,"y":30667.603799684814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"303572ad-cc90-46c9-8620-8454d557897b"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6f94380d-4624-4e29-80be-4590d4882405","savedPayload":{"position":{"x":41961.42088223607,"y":30446.25678685662},"targetPosition":{"x":41682.42485187019,"y":30667.603799684814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"10142313-9ac8-4f4c-8105-88aec7bb7ce9"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"469bdc73-b895-48e0-858d-e845f3d8fab7","savedPayload":{"position":{"x":41997.72041633933,"y":30517.693447871225},"targetPosition":{"x":41682.42485187019,"y":30667.603799684814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"afbf02cf-97a6-4dc0-a3d5-95f29ba7781f"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"88dfc29c-5f28-4b4e-a5a2-7730256fe399","savedPayload":{"position":{"x":42020.244418815135,"y":30594.504352704364},"targetPosition":{"x":41682.42485187019,"y":30667.603799684814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"80ed873e-8017-45ec-b211-fc4604f5aaf6"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e78ce0fc-9b37-45be-8274-a9a57966b1c0","savedPayload":{"position":{"x":42028.21455836659,"y":30674.102268574825},"targetPosition":{"x":41682.42485187019,"y":30667.603799684814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"6635502b-5366-430e-8dc1-4edaa21c2a7f"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8c5f9a1d-05bb-4e86-a453-0376318542ce","savedPayload":{"position":{"x":42021.38649890064,"y":30753.76978140584},"targetPosition":{"x":41682.42485187019,"y":30667.603799684814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"3ebce074-9080-426a-baf9-61c1a04fc05b"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"05673bba-9579-46cc-95ec-66fd1e20c900","savedPayload":{"position":{"x":42000.089009906595,"y":30830.83144463508},"targetPosition":{"x":41682.42485187019,"y":30667.603799684814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"c424ba00-bbe0-4ae9-830a-3d2aa6fcaf4d"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"a6f789c5-80f2-4715-bee3-1c5a6132cd98","savedPayload":{"position":{"x":41965.01438630701,"y":30902.675833766894},"targetPosition":{"x":41682.42485187019,"y":30667.603799684814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"3d048c1f-d45a-442a-9d44-362ad7770bb6"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"c443dc3e-4bf2-4cbd-88c4-379e234e950e","savedPayload":{"position":{"x":41917.362633051096,"y":30966.87830611103},"targetPosition":{"x":41682.42485187019,"y":30667.603799684814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c92d9454-d5fb-4954-a188-367dcd697af6"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"8a6602e3-2825-4a15-9932-1416e4b8637f","savedPayload":{"position":{"x":41858.744842898675,"y":31021.265197538705},"targetPosition":{"x":41682.42485187019,"y":30667.603799684814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"4810638a-c137-4df6-8016-c8a2540dc9e7"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"9acdc2f9-b273-409b-b9ab-e337de60afc5","savedPayload":{"position":{"x":41791.20530689409,"y":31064.146556335494},"targetPosition":{"x":41682.42485187019,"y":30667.603799684814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"9c1f6b84-409e-4257-92ea-a9481d3509cd"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"2ae5373d-2a04-485f-a1fe-1521c217f5fa","savedPayload":{"position":{"x":41693.62629432419,"y":31096.51285712175},"targetPosition":{"x":41682.42485187019,"y":30667.603799684814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"dcd46168-1662-42c5-be91-f489d9a55833"}}}],"id":"383e37d4-a4d5-4244-82e3-404c5291edb4","savedPayload":{"position":{"x":41682.42485187019,"y":30667.603799684814},"targetPosition":{"x":41166.921094436075,"y":30719.788696554995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"a5fb32a2-bd01-422f-88ae-810438c5f30b","savedPayload":{"position":{"x":9887.70413905119,"y":25112.573772181844},"targetPosition":{"x":10609.914851565229,"y":24985.38184564623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 34756.792815043074,\n \"maxValue\": 43660.81407881806,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"f069e936-8b9d-4b5f-8b50-67abf486ec5a","savedPayload":{"position":{"x":41496.18563238872,"y":30817.373681469133},"targetPosition":{"x":41171.04996999161,"y":30843.001956974873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a73f34db-2639-44c3-93d2-291c851aa6db","savedPayload":{"position":{"x":41703.52919652283,"y":31035.8134266153},"targetPosition":{"x":41491.92030105298,"y":30997.55198833813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"cc76acbb-9fd2-43f0-95de-dc78e1aaa2b5"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"4cdc82a2-f3e7-48cb-9415-1cdcac2dc729","savedPayload":{"position":{"x":41654.99646899411,"y":31137.57578463762},"targetPosition":{"x":41491.92030105298,"y":30997.55198833813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"1bf116d8-b258-42e3-a427-3c6df8992c14","savedPayload":{"position":{"x":41491.92030105298,"y":30997.55198833813},"targetPosition":{"x":41171.04996999161,"y":30843.001956974873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"11425cdd-2549-4f72-a8d5-1c64d53ede8d","savedPayload":{"position":{"x":9887.712576533077,"y":24858.10950522817},"targetPosition":{"x":10609.914851565229,"y":24985.38184564623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 12.043270993766054,\n \"maxValue\": 16.043270993766054,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"17361b5f-ab75-4d73-9c88-e756e3abfe27","savedPayload":{"position":{"x":41451.85193768972,"y":30922.595130047695},"targetPosition":{"x":41151.07767654196,"y":30903.184468926454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"bc3f16df-e1a7-4490-8caf-b7b7f24bcd95","savedPayload":{"position":{"x":41619.83001222623,"y":31148.483405211697},"targetPosition":{"x":41415.62593098888,"y":31079.594590702578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"302bfaf2-6466-4aa0-9924-33999366b774"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"96a50598-222e-4cbf-b0f2-e4d2a92db57d","savedPayload":{"position":{"x":41557.70461727784,"y":31241.711701466687},"targetPosition":{"x":41415.62593098888,"y":31079.594590702578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"f6868e09-2559-4fac-9631-54cf1a867c8a"}}}],"id":"2104de94-b759-4902-a87d-1892ccf29a9f","savedPayload":{"position":{"x":41415.62593098888,"y":31079.594590702578},"targetPosition":{"x":41151.07767654196,"y":30903.184468926454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"4d9b57a7-e96e-4aa0-bf68-5d8b76340bf2","savedPayload":{"position":{"x":9974.848435218955,"y":24618.747834670983},"targetPosition":{"x":10609.914851565229,"y":24985.38184564623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 12.043270993766054,\n \"maxValue\": 16.043270993766054,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"7f2d54bb-2ac9-4464-ab5e-7e6da99895f9","savedPayload":{"position":{"x":41381.223377720744,"y":31102.19618274202},"targetPosition":{"x":41099.31315945049,"y":31006.49068714022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e154e929-40a7-471f-af63-0246b01044b1","savedPayload":{"position":{"x":41504.4959872866,"y":31261.134325668747},"targetPosition":{"x":41307.859313545116,"y":31244.661816549324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"be7e47ef-a530-4dc1-bf59-b731f1e49fa1"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3327049c-878e-4d89-ab16-510e6a74a033","savedPayload":{"position":{"x":41461.324755257854,"y":31342.298493951468},"targetPosition":{"x":41307.859313545116,"y":31244.661816549324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"0333bb7c-5101-441b-be9a-d9ff1a84f116"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"0b54c245-1f5a-4a6a-b37d-3ec8a701b3eb","savedPayload":{"position":{"x":41394.57720028937,"y":31402.800631429927},"targetPosition":{"x":41307.859313545116,"y":31244.661816549324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"913f8079-b038-444a-ad43-465fa0443c04"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"ccd9654e-9adb-494f-a45f-bc87fdd00ea0","savedPayload":{"position":{"x":41297.808090727754,"y":31439.437086597824},"targetPosition":{"x":41307.859313545116,"y":31244.661816549324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"bba7e1ab-5bca-44c0-a8aa-cd9570b338f3"}}}],"id":"47e8a8cd-c18f-41af-9cab-cb0b8eced0fd","savedPayload":{"position":{"x":41307.859313545116,"y":31244.661816549324},"targetPosition":{"x":41099.31315945049,"y":31006.49068714022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"a173030c-43e9-4a84-a446-e64d36d0a698","savedPayload":{"position":{"x":10138.62438149418,"y":24423.611706440726},"targetPosition":{"x":10609.914851565229,"y":24985.38184564623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"efbf41a3-6c30-4e8e-9a26-f883cd17e56e","savedPayload":{"position":{"x":10145.349578309117,"y":23991.883017111642},"targetPosition":{"x":10359.55578019266,"y":24296.24471427881},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"d510f25d-f928-4368-9218-0a01e0d5aece","savedPayload":{"position":{"x":10133.942985817092,"y":23619.66219861841},"targetPosition":{"x":10328.253782267264,"y":23931.283225084644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"c53d8a77-b1d4-446c-9bef-8458b832c5e5"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"1fe01a4b-8f15-439f-b5e9-d99d1a782506","savedPayload":{"position":{"x":10238.72736905072,"y":23575.09359986404},"targetPosition":{"x":10328.253782267264,"y":23931.283225084644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"0f1e10be-0da8-4d10-93d7-35e407579cb0"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"bab6d877-cdce-4c62-a65b-bebab4e4fbaa","savedPayload":{"position":{"x":10353.620223716207,"y":23565.385509277778},"targetPosition":{"x":10328.253782267264,"y":23931.283225084644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"a85fc58e-5b58-449b-b733-c3a623e1d5d4"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"28e1a23b-7f8c-45ac-8c24-7613b3bcf7ad","savedPayload":{"position":{"x":10466.816304630642,"y":23592.117250888674},"targetPosition":{"x":10328.253782267264,"y":23931.283225084644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"302de277-a428-4cc0-8757-b2ef7de6040b"}}}],"id":"3ae21f28-1805-4a8a-b652-c1d43ac3cd9a","savedPayload":{"position":{"x":10328.253782267264,"y":23931.283225084644},"targetPosition":{"x":10359.55578019266,"y":24296.24471427881},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1770,"y":80},"width":150,"height":330,"radius":0}}},"id":"22096948-735a-4343-93b7-b2a4438a7ce4","savedPayload":{"position":{"x":10359.426618969681,"y":24296.234235873242},"targetPosition":{"x":10609.914851565229,"y":24985.38184564623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"55e42b32-1612-4a94-a50b-0761b6b61ba6","savedPayload":{"position":{"x":11978.228715388022,"y":25352.03491076316},"targetPosition":{"x":11343.062891749762,"y":24985.40702724926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":2115,"y":-155},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"WHB Trade # 2","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-06-29T00:23:29.487Z\",\n \"toDate\": \"2019-07-04T14:21:20.219Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"556fe84a-f9e5-4ed9-b97b-93f5836b64b3","savedPayload":{"position":{"x":10442.32597310643,"y":25366.372805921732},"targetPosition":{"x":10692.884571690387,"y":24677.33033193088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 9339.556714708064,\n \"maxValue\": 12684.734515586331,\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"d184f268-52a6-4b85-95e2-2cf22adf9bbd","savedPayload":{"position":{"x":10221.54613493667,"y":25239.009212943183},"targetPosition":{"x":10692.884571690387,"y":24677.33033193088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"2adb6613-bd4a-4f50-9d83-fc1b71c2a527","savedPayload":{"position":{"x":10057.792187815381,"y":25043.881639961844},"targetPosition":{"x":10692.884571690387,"y":24677.33033193088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"a432548b-0f0c-4cb4-89c4-cddb8d950f0c","savedPayload":{"position":{"x":41702.22280211565,"y":29939.21690004817},"targetPosition":{"x":41765.39457199535,"y":30359.552285969465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"431ea989-085b-40ae-aa2a-d371d7cb68c6"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"3aad2fd8-ae91-4a32-97d5-3663aef25191","savedPayload":{"position":{"x":41787.424038297686,"y":29950.765392240974},"targetPosition":{"x":41765.39457199535,"y":30359.552285969465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"ddd34b26-4fa8-4d7c-b76d-f671c92a6181"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5930d0d3-c482-4c23-b695-33c43a397ad1","savedPayload":{"position":{"x":41865.40975146678,"y":29978.95462383093},"targetPosition":{"x":41765.39457199535,"y":30359.552285969465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"683e24f7-010a-412e-ba21-f280e63a0f1d"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"66d4ec51-20eb-4265-b291-b5bb8041804e","savedPayload":{"position":{"x":41935.24830363509,"y":30020.81574792735},"targetPosition":{"x":41765.39457199535,"y":30359.552285969465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"210b7e14-a6f0-4c56-b5e4-108f57ebb4c6"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3b685f95-c247-4fcd-9166-9f388da8c1e9","savedPayload":{"position":{"x":41995.43240899485,"y":30074.543982573086},"targetPosition":{"x":41765.39457199535,"y":30359.552285969465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"303572ad-cc90-46c9-8620-8454d557897b"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"184fbb52-01e8-40e9-9e88-4fd3bf67de4e","savedPayload":{"position":{"x":42044.39060236122,"y":30138.20527314127},"targetPosition":{"x":41765.39457199535,"y":30359.552285969465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"10142313-9ac8-4f4c-8105-88aec7bb7ce9"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"af3708a7-a254-426e-b696-b28d8c65a24b","savedPayload":{"position":{"x":42080.69013646449,"y":30209.641934155876},"targetPosition":{"x":41765.39457199535,"y":30359.552285969465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"afbf02cf-97a6-4dc0-a3d5-95f29ba7781f"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2ec1a119-4bb7-4707-946f-1f438451cbb4","savedPayload":{"position":{"x":42103.2141389403,"y":30286.452838989015},"targetPosition":{"x":41765.39457199535,"y":30359.552285969465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"80ed873e-8017-45ec-b211-fc4604f5aaf6"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c7a6d6af-7e9b-457a-b1eb-01bc90f5c1ed","savedPayload":{"position":{"x":42111.18427849175,"y":30366.050754859476},"targetPosition":{"x":41765.39457199535,"y":30359.552285969465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"6635502b-5366-430e-8dc1-4edaa21c2a7f"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"40741092-d7ab-4a44-a467-219a93bec5a2","savedPayload":{"position":{"x":42104.356219025794,"y":30445.718267690492},"targetPosition":{"x":41765.39457199535,"y":30359.552285969465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"3ebce074-9080-426a-baf9-61c1a04fc05b"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"a2f1c6b8-1af9-4d83-856e-e4236944752d","savedPayload":{"position":{"x":42083.05873003176,"y":30522.779930919733},"targetPosition":{"x":41765.39457199535,"y":30359.552285969465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"c424ba00-bbe0-4ae9-830a-3d2aa6fcaf4d"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"bd3b8d83-7b94-4597-91b7-f88e940e1300","savedPayload":{"position":{"x":42047.984106432166,"y":30594.624320051546},"targetPosition":{"x":41765.39457199535,"y":30359.552285969465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"3d048c1f-d45a-442a-9d44-362ad7770bb6"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"c7fc0ad1-e2f4-417d-8224-737570d55abb","savedPayload":{"position":{"x":42000.33235317626,"y":30658.82679239568},"targetPosition":{"x":41765.39457199535,"y":30359.552285969465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c92d9454-d5fb-4954-a188-367dcd697af6"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"88223fd9-7ea1-45b9-aabc-e1e5baa65b57","savedPayload":{"position":{"x":41941.71456302384,"y":30713.213683823356},"targetPosition":{"x":41765.39457199535,"y":30359.552285969465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"4810638a-c137-4df6-8016-c8a2540dc9e7"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"efcc1bfb-53f3-4f79-90d0-b04790f2dbd2","savedPayload":{"position":{"x":41874.17502701924,"y":30756.095042620145},"targetPosition":{"x":41765.39457199535,"y":30359.552285969465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"9c1f6b84-409e-4257-92ea-a9481d3509cd"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"4118b2f0-8a7e-482c-880b-99d9ea395177","savedPayload":{"position":{"x":41776.596014449344,"y":30788.4613434064},"targetPosition":{"x":41765.39457199535,"y":30359.552285969465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"dcd46168-1662-42c5-be91-f489d9a55833"}}}],"id":"40429e23-5cab-4fc5-92b2-b1ad52fba04c","savedPayload":{"position":{"x":41765.39457199535,"y":30359.552285969465},"targetPosition":{"x":41249.89081456124,"y":30411.737182839646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"87ad7dfd-4553-4da0-8e5d-9bee86955a5d","savedPayload":{"position":{"x":9970.673859176348,"y":24804.522258466495},"targetPosition":{"x":10692.884571690387,"y":24677.33033193088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 54861.31314073082,\n \"maxValue\": 63765.334404505804,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"77886c1e-7e8e-41a5-8167-f8c7ca5a5434","savedPayload":{"position":{"x":41579.15535251387,"y":30509.322167753784},"targetPosition":{"x":41254.019690116766,"y":30534.950443259524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"357f571d-e369-4b18-86b8-5ce1da882aac","savedPayload":{"position":{"x":41786.49891664799,"y":30727.76191289995},"targetPosition":{"x":41574.890021178144,"y":30689.500474622782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"cc76acbb-9fd2-43f0-95de-dc78e1aaa2b5"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"6e0e560c-e7b6-40b8-bb09-743640b2dd51","savedPayload":{"position":{"x":41737.966189119266,"y":30829.52427092227},"targetPosition":{"x":41574.890021178144,"y":30689.500474622782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"eab0079b-6264-4d3b-b51c-dfdd1bab88de","savedPayload":{"position":{"x":41574.890021178144,"y":30689.500474622782},"targetPosition":{"x":41254.019690116766,"y":30534.950443259524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"d1a1034b-b0ed-4a58-8622-e929dd94e570","savedPayload":{"position":{"x":9970.682296658235,"y":24550.057991512822},"targetPosition":{"x":10692.884571690387,"y":24677.33033193088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 21.074929715193743,\n \"maxValue\": 25.074929715193743,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"10103a61-b710-4508-b41f-8346b0b00988","savedPayload":{"position":{"x":41534.82165781487,"y":30614.543616332347},"targetPosition":{"x":41234.04739666711,"y":30595.132955211106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"31c54e68-7ea3-4077-90a4-338b1936b721","savedPayload":{"position":{"x":41702.799732351385,"y":30840.431891496348},"targetPosition":{"x":41498.59565111404,"y":30771.54307698723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"302bfaf2-6466-4aa0-9924-33999366b774"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4aede7f2-d39e-4535-a3bc-609d62e22c7f","savedPayload":{"position":{"x":41640.674337403005,"y":30933.66018775134},"targetPosition":{"x":41498.59565111404,"y":30771.54307698723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"f6868e09-2559-4fac-9631-54cf1a867c8a"}}}],"id":"15537f7c-ad87-4616-9d35-e8352966985b","savedPayload":{"position":{"x":41498.59565111404,"y":30771.54307698723},"targetPosition":{"x":41234.04739666711,"y":30595.132955211106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"ad6450e3-c118-4927-b64d-c82873e166dc","savedPayload":{"position":{"x":10057.818155344114,"y":24310.696320955634},"targetPosition":{"x":10692.884571690387,"y":24677.33033193088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 21.074929715193743,\n \"maxValue\": 25.074929715193743,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"8c633358-6c16-4342-b1da-88bcefbb4f5e","savedPayload":{"position":{"x":41464.1930978459,"y":30794.14466902667},"targetPosition":{"x":41182.28287957565,"y":30698.43917342487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9426c9e4-2463-40d4-8681-f62bfc7a9a02","savedPayload":{"position":{"x":41587.46570741176,"y":30953.082811953398},"targetPosition":{"x":41390.82903367028,"y":30936.610302833975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"be7e47ef-a530-4dc1-bf59-b731f1e49fa1"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"36929842-6171-4660-81f6-87155a53e33a","savedPayload":{"position":{"x":41544.29447538301,"y":31034.24698023612},"targetPosition":{"x":41390.82903367028,"y":30936.610302833975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"0333bb7c-5101-441b-be9a-d9ff1a84f116"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"5f28e341-c4ac-451d-b167-614eec7a7146","savedPayload":{"position":{"x":41477.546920414534,"y":31094.74911771458},"targetPosition":{"x":41390.82903367028,"y":30936.610302833975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"913f8079-b038-444a-ad43-465fa0443c04"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"168be5c6-da5d-4c17-8fdf-7503acece7f2","savedPayload":{"position":{"x":41380.77781085292,"y":31131.385572882475},"targetPosition":{"x":41390.82903367028,"y":30936.610302833975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"bba7e1ab-5bca-44c0-a8aa-cd9570b338f3"}}}],"id":"40a320a3-94b8-4d4c-9d23-0a4b1390aaa0","savedPayload":{"position":{"x":41390.82903367028,"y":30936.610302833975},"targetPosition":{"x":41182.28287957565,"y":30698.43917342487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"78f7c9d9-f9f4-469a-a650-2a87a2241da2","savedPayload":{"position":{"x":10221.59410161934,"y":24115.560192725377},"targetPosition":{"x":10692.884571690387,"y":24677.33033193088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"5fbe8305-9a0c-4a69-9e26-0ed3d4a3a4ad","savedPayload":{"position":{"x":10228.319298434275,"y":23683.831503396294},"targetPosition":{"x":10442.525500317819,"y":23988.193200563463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"ed389237-50d9-4956-9189-785959e9e896","savedPayload":{"position":{"x":10216.91270594225,"y":23311.610684903062},"targetPosition":{"x":10411.223502392422,"y":23623.231711369295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"c53d8a77-b1d4-446c-9bef-8458b832c5e5"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"31c69760-fcd6-42eb-ad03-a6f02b06c7c1","savedPayload":{"position":{"x":10321.69708917588,"y":23267.042086148693},"targetPosition":{"x":10411.223502392422,"y":23623.231711369295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"0f1e10be-0da8-4d10-93d7-35e407579cb0"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"5724386e-9794-4554-8bd9-4de5ec196505","savedPayload":{"position":{"x":10436.589943841365,"y":23257.33399556243},"targetPosition":{"x":10411.223502392422,"y":23623.231711369295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"a85fc58e-5b58-449b-b733-c3a623e1d5d4"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"ce30f467-b72d-4817-b9a4-6e4f6f7d9180","savedPayload":{"position":{"x":10549.7860247558,"y":23284.065737173325},"targetPosition":{"x":10411.223502392422,"y":23623.231711369295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"302de277-a428-4cc0-8757-b2ef7de6040b"}}}],"id":"7650fe12-06fb-43d0-9ab0-e3ee123e3f3f","savedPayload":{"position":{"x":10411.223502392422,"y":23623.231711369295},"targetPosition":{"x":10442.525500317819,"y":23988.193200563463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1770,"y":80},"width":150,"height":330,"radius":0}}},"id":"d50758f6-a343-4cb1-80b7-c63f1ffa05d8","savedPayload":{"position":{"x":10442.39633909484,"y":23988.182722157893},"targetPosition":{"x":10692.884571690387,"y":24677.33033193088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"889e5548-1694-4573-b8c1-26e3805c458b","savedPayload":{"position":{"x":11709.726918265866,"y":25620.649482971407},"targetPosition":{"x":11343.062891749762,"y":24985.40702724926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":2465,"y":-155},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"WHB Trade # 3","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-07-10T02:47:04.920Z\",\n \"toDate\": \"2019-07-16T19:32:29.798Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"bd61b641-7889-49aa-b2be-11e055d216db","savedPayload":{"position":{"x":10807.680184095218,"y":25468.29018011946},"targetPosition":{"x":11058.238782679175,"y":24779.247706128608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 9482.670298659585,\n \"maxValue\": 13496.883659713507,\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"a4f66448-45cf-465f-87e1-bc365864a96c","savedPayload":{"position":{"x":10586.900345925458,"y":25340.92658714091},"targetPosition":{"x":11058.238782679175,"y":24779.247706128608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"275f89d6-7d03-48f9-86f8-371df843ec87","savedPayload":{"position":{"x":10423.146398804169,"y":25145.799014159573},"targetPosition":{"x":11058.238782679175,"y":24779.247706128608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"59a33362-d19c-46fe-8d77-23bd76b1c247","savedPayload":{"position":{"x":42067.577013104434,"y":30041.1342742459},"targetPosition":{"x":42130.748782984134,"y":30461.469660167193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"431ea989-085b-40ae-aa2a-d371d7cb68c6"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"48ede532-704e-4238-bef4-935ba298be53","savedPayload":{"position":{"x":42152.77824928647,"y":30052.682766438702},"targetPosition":{"x":42130.748782984134,"y":30461.469660167193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"ddd34b26-4fa8-4d7c-b76d-f671c92a6181"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"1ab0495e-2ace-4608-9280-835900a1ac78","savedPayload":{"position":{"x":42230.76396245557,"y":30080.87199802866},"targetPosition":{"x":42130.748782984134,"y":30461.469660167193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"683e24f7-010a-412e-ba21-f280e63a0f1d"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3a8037cd-ffff-4495-91a0-7a6e26ebea6d","savedPayload":{"position":{"x":42300.602514623875,"y":30122.73312212508},"targetPosition":{"x":42130.748782984134,"y":30461.469660167193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"210b7e14-a6f0-4c56-b5e4-108f57ebb4c6"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"000b9839-61b2-4d80-8399-e4923458294b","savedPayload":{"position":{"x":42360.786619983635,"y":30176.461356770815},"targetPosition":{"x":42130.748782984134,"y":30461.469660167193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"303572ad-cc90-46c9-8620-8454d557897b"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b5c3d181-ff31-4944-ada3-01a3c9e25786","savedPayload":{"position":{"x":42409.74481335001,"y":30240.122647338998},"targetPosition":{"x":42130.748782984134,"y":30461.469660167193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"10142313-9ac8-4f4c-8105-88aec7bb7ce9"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6e5e92d6-ad1f-4668-b340-3e56db016fca","savedPayload":{"position":{"x":42446.04434745327,"y":30311.559308353604},"targetPosition":{"x":42130.748782984134,"y":30461.469660167193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"afbf02cf-97a6-4dc0-a3d5-95f29ba7781f"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"20c29117-b651-4f80-987f-858fb8203277","savedPayload":{"position":{"x":42468.56834992908,"y":30388.370213186743},"targetPosition":{"x":42130.748782984134,"y":30461.469660167193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"80ed873e-8017-45ec-b211-fc4604f5aaf6"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e0c53273-6610-46dc-84fe-4ff15b64b263","savedPayload":{"position":{"x":42476.53848948054,"y":30467.968129057204},"targetPosition":{"x":42130.748782984134,"y":30461.469660167193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"6635502b-5366-430e-8dc1-4edaa21c2a7f"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"de8df8ff-0fb7-43a4-b0a0-c7b2dd919beb","savedPayload":{"position":{"x":42469.71043001458,"y":30547.63564188822},"targetPosition":{"x":42130.748782984134,"y":30461.469660167193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"3ebce074-9080-426a-baf9-61c1a04fc05b"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"28ec5c51-1252-4b3f-9688-38cc59743fab","savedPayload":{"position":{"x":42448.41294102054,"y":30624.69730511746},"targetPosition":{"x":42130.748782984134,"y":30461.469660167193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"c424ba00-bbe0-4ae9-830a-3d2aa6fcaf4d"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"1b196fb6-f053-4043-996c-dedfefc6cc2d","savedPayload":{"position":{"x":42413.33831742095,"y":30696.541694249274},"targetPosition":{"x":42130.748782984134,"y":30461.469660167193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"3d048c1f-d45a-442a-9d44-362ad7770bb6"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"17d4bb47-5fd7-4a01-95c5-d075b46e972f","savedPayload":{"position":{"x":42365.686564165044,"y":30760.74416659341},"targetPosition":{"x":42130.748782984134,"y":30461.469660167193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c92d9454-d5fb-4954-a188-367dcd697af6"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"020dfc80-ba7e-494a-9904-926834d8d48d","savedPayload":{"position":{"x":42307.06877401262,"y":30815.131058021085},"targetPosition":{"x":42130.748782984134,"y":30461.469660167193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"4810638a-c137-4df6-8016-c8a2540dc9e7"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"d1f7676a-a452-43da-99fb-135aaa36a334","savedPayload":{"position":{"x":42239.52923800803,"y":30858.012416817874},"targetPosition":{"x":42130.748782984134,"y":30461.469660167193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"9c1f6b84-409e-4257-92ea-a9481d3509cd"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"9428eeed-7461-48c0-8a97-63e6f3958ce7","savedPayload":{"position":{"x":42141.95022543813,"y":30890.37871760413},"targetPosition":{"x":42130.748782984134,"y":30461.469660167193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"dcd46168-1662-42c5-be91-f489d9a55833"}}}],"id":"ab7cbc62-d4c5-43f1-9b68-816a9ac51b32","savedPayload":{"position":{"x":42130.748782984134,"y":30461.469660167193},"targetPosition":{"x":41615.24502555002,"y":30513.654557037375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"65bb4086-e0a7-4100-ad56-45207fa3e9e3","savedPayload":{"position":{"x":10336.028070165135,"y":24906.439632664224},"targetPosition":{"x":11058.238782679175,"y":24779.247706128608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 60184.02625532456,\n \"maxValue\": 69088.04751909955,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"31533fd8-7d08-42ec-a529-1d898223d35d","savedPayload":{"position":{"x":41944.50956350266,"y":30611.239541951512},"targetPosition":{"x":41619.37390110555,"y":30636.867817457252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"aaf44091-6c7c-418a-9515-046fb54f8c14","savedPayload":{"position":{"x":42151.85312763678,"y":30829.67928709768},"targetPosition":{"x":41940.24423216693,"y":30791.41784882051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"cc76acbb-9fd2-43f0-95de-dc78e1aaa2b5"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"913ba9d4-1e2f-466e-a1a8-2427cfa1ac85","savedPayload":{"position":{"x":42103.32040010805,"y":30931.441645119998},"targetPosition":{"x":41940.24423216693,"y":30791.41784882051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"a89dcbc5-831c-4aee-8edf-eb65165f22b4","savedPayload":{"position":{"x":41940.24423216693,"y":30791.41784882051},"targetPosition":{"x":41619.37390110555,"y":30636.867817457252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"3ca30063-9a32-4ffc-9d5c-e115f1c947dd","savedPayload":{"position":{"x":10336.036507647023,"y":24651.97536571055},"targetPosition":{"x":11058.238782679175,"y":24779.247706128608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 23.46607994132746,\n \"maxValue\": 27.46607994132746,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"8b3727a5-d114-4eda-9a31-e88748310801","savedPayload":{"position":{"x":41900.17586880366,"y":30716.460990530075},"targetPosition":{"x":41599.4016076559,"y":30697.050329408834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b405d9c1-22fb-4992-b602-5743b985d1b6","savedPayload":{"position":{"x":42068.15394334017,"y":30942.349265694076},"targetPosition":{"x":41863.949862102825,"y":30873.460451184957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"302bfaf2-6466-4aa0-9924-33999366b774"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6022bd50-f72a-4ba5-8675-a368cf7840ff","savedPayload":{"position":{"x":42006.02854839179,"y":31035.577561949067},"targetPosition":{"x":41863.949862102825,"y":30873.460451184957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"f6868e09-2559-4fac-9631-54cf1a867c8a"}}}],"id":"7e1b09b1-5985-4590-82c6-126644103054","savedPayload":{"position":{"x":41863.949862102825,"y":30873.460451184957},"targetPosition":{"x":41599.4016076559,"y":30697.050329408834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"2cf065fd-f44f-4113-bc77-cdb379b643c7","savedPayload":{"position":{"x":10423.172366332901,"y":24412.613695153363},"targetPosition":{"x":11058.238782679175,"y":24779.247706128608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 23.46607994132746,\n \"maxValue\": 27.46607994132746,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"9ba05b15-4740-4781-a08e-9eb89541d6d6","savedPayload":{"position":{"x":41829.547308834684,"y":30896.0620432244},"targetPosition":{"x":41547.637090564436,"y":30800.3565476226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d1475799-7285-4ac0-8fae-0c1a286945d5","savedPayload":{"position":{"x":41952.81991840054,"y":31055.000186151126},"targetPosition":{"x":41756.18324465906,"y":31038.527677031703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"be7e47ef-a530-4dc1-bf59-b731f1e49fa1"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"fc459025-6b9a-4541-a8b3-8cd19b4d6673","savedPayload":{"position":{"x":41909.648686371795,"y":31136.164354433848},"targetPosition":{"x":41756.18324465906,"y":31038.527677031703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"0333bb7c-5101-441b-be9a-d9ff1a84f116"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"4eb4de0d-da1e-43d2-8d13-f03db48bb584","savedPayload":{"position":{"x":41842.90113140332,"y":31196.666491912307},"targetPosition":{"x":41756.18324465906,"y":31038.527677031703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"913f8079-b038-444a-ad43-465fa0443c04"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"acf945ba-d394-4363-9761-2dde92c7feac","savedPayload":{"position":{"x":41746.1320218417,"y":31233.302947080203},"targetPosition":{"x":41756.18324465906,"y":31038.527677031703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"bba7e1ab-5bca-44c0-a8aa-cd9570b338f3"}}}],"id":"487f7a7f-653f-481e-8043-385bb823752c","savedPayload":{"position":{"x":41756.18324465906,"y":31038.527677031703},"targetPosition":{"x":41547.637090564436,"y":30800.3565476226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"cf40d6fb-366e-44a3-a854-4e61224a2589","savedPayload":{"position":{"x":10586.948312608127,"y":24217.477566923106},"targetPosition":{"x":11058.238782679175,"y":24779.247706128608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"3a615804-6f94-4d7b-8fe2-d3d78158ef99","savedPayload":{"position":{"x":10593.673509423063,"y":23785.748877594022},"targetPosition":{"x":10807.879711306607,"y":24090.11057476119},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"9243bb9f-0729-45cf-942d-05aad9aa87e0","savedPayload":{"position":{"x":10582.266916931037,"y":23413.52805910079},"targetPosition":{"x":10776.57771338121,"y":23725.149085567024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"c53d8a77-b1d4-446c-9bef-8458b832c5e5"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"3b3c7fb7-caa5-4f80-b96a-c39a1dda4169","savedPayload":{"position":{"x":10687.051300164667,"y":23368.95946034642},"targetPosition":{"x":10776.57771338121,"y":23725.149085567024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"0f1e10be-0da8-4d10-93d7-35e407579cb0"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"64e8f0b3-532e-4c92-a07f-d9eaa0fe39d1","savedPayload":{"position":{"x":10801.944154830153,"y":23359.251369760157},"targetPosition":{"x":10776.57771338121,"y":23725.149085567024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"a85fc58e-5b58-449b-b733-c3a623e1d5d4"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"33eb6034-8a74-46cb-8fdd-7e1538d7dfd9","savedPayload":{"position":{"x":10915.140235744588,"y":23385.983111371053},"targetPosition":{"x":10776.57771338121,"y":23725.149085567024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"302de277-a428-4cc0-8757-b2ef7de6040b"}}}],"id":"9623ca9b-73ac-403d-8499-48cd214ed4c6","savedPayload":{"position":{"x":10776.57771338121,"y":23725.149085567024},"targetPosition":{"x":10807.879711306607,"y":24090.11057476119},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1770,"y":80},"width":150,"height":330,"radius":0}}},"id":"46c964fd-042d-43d3-982b-d801a7dc9984","savedPayload":{"position":{"x":10807.750550083627,"y":24090.10009635562},"targetPosition":{"x":11058.238782679175,"y":24779.247706128608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"561bc2ac-a82e-454f-a1b9-b71de98cc6fc","savedPayload":{"position":{"x":11343.064016650165,"y":25718.93959549572},"targetPosition":{"x":11343.062891749762,"y":24985.40702724926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":2815,"y":-155},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"WHB Trade # 4","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-07-14T22:46:08.021Z\",\n \"toDate\": \"2019-07-20T07:22:27.923Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"68d2e8c2-3493-4e3c-97d8-3d51f9a39a2a","savedPayload":{"position":{"x":10956.79557343819,"y":25686.17184555717},"targetPosition":{"x":11207.354172022147,"y":24997.12937156632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 7912.509834734323,\n \"maxValue\": 11926.723195788245,\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"2dc190a5-14cc-499a-9e40-a6d93872b7b4","savedPayload":{"position":{"x":10736.015735268431,"y":25558.808252578623},"targetPosition":{"x":11207.354172022147,"y":24997.12937156632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"62f58309-5257-4709-b9f2-0d2db40cb5a2","savedPayload":{"position":{"x":10572.261788147141,"y":25363.680679597284},"targetPosition":{"x":11207.354172022147,"y":24997.12937156632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"3b25b300-4eaf-447c-80d4-4ff695aac7a3","savedPayload":{"position":{"x":42216.69240244741,"y":30259.01593968361},"targetPosition":{"x":42279.86417232711,"y":30679.351325604905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"431ea989-085b-40ae-aa2a-d371d7cb68c6"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"bef839f3-34df-4e28-922d-d26f7ea5a400","savedPayload":{"position":{"x":42301.893638629444,"y":30270.564431876413},"targetPosition":{"x":42279.86417232711,"y":30679.351325604905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"ddd34b26-4fa8-4d7c-b76d-f671c92a6181"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a99ade83-1586-46d9-8ee6-f672ade66fb9","savedPayload":{"position":{"x":42379.87935179854,"y":30298.75366346637},"targetPosition":{"x":42279.86417232711,"y":30679.351325604905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"683e24f7-010a-412e-ba21-f280e63a0f1d"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"511532c4-286d-4337-9bdc-681b3b4c5bcc","savedPayload":{"position":{"x":42449.71790396685,"y":30340.61478756279},"targetPosition":{"x":42279.86417232711,"y":30679.351325604905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"210b7e14-a6f0-4c56-b5e4-108f57ebb4c6"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f8a5171a-72c4-45ae-a50c-7410b003ec02","savedPayload":{"position":{"x":42509.90200932661,"y":30394.343022208526},"targetPosition":{"x":42279.86417232711,"y":30679.351325604905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"303572ad-cc90-46c9-8620-8454d557897b"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"cea3378f-e971-4242-87fa-7f449fd88cfc","savedPayload":{"position":{"x":42558.86020269298,"y":30458.00431277671},"targetPosition":{"x":42279.86417232711,"y":30679.351325604905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"10142313-9ac8-4f4c-8105-88aec7bb7ce9"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"12f0e6f1-55a0-4347-aed7-95ef49ee3c30","savedPayload":{"position":{"x":42595.159736796246,"y":30529.440973791316},"targetPosition":{"x":42279.86417232711,"y":30679.351325604905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"afbf02cf-97a6-4dc0-a3d5-95f29ba7781f"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c12563ed-23da-446d-a528-effa04a3a4a9","savedPayload":{"position":{"x":42617.683739272055,"y":30606.251878624455},"targetPosition":{"x":42279.86417232711,"y":30679.351325604905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"80ed873e-8017-45ec-b211-fc4604f5aaf6"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b529ed4c-93c5-49aa-a7fe-45260cfaaab3","savedPayload":{"position":{"x":42625.65387882351,"y":30685.849794494916},"targetPosition":{"x":42279.86417232711,"y":30679.351325604905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"6635502b-5366-430e-8dc1-4edaa21c2a7f"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"1ab00426-2192-481c-9ae2-3be69afef4e4","savedPayload":{"position":{"x":42618.82581935755,"y":30765.517307325932},"targetPosition":{"x":42279.86417232711,"y":30679.351325604905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"3ebce074-9080-426a-baf9-61c1a04fc05b"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"40a9d958-d618-4c3b-ae2e-c30dd503f9e5","savedPayload":{"position":{"x":42597.528330363515,"y":30842.578970555172},"targetPosition":{"x":42279.86417232711,"y":30679.351325604905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"c424ba00-bbe0-4ae9-830a-3d2aa6fcaf4d"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"dd2b5dda-c0ff-49d8-94f7-3f701ab3080d","savedPayload":{"position":{"x":42562.453706763925,"y":30914.423359686985},"targetPosition":{"x":42279.86417232711,"y":30679.351325604905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"3d048c1f-d45a-442a-9d44-362ad7770bb6"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"d09892b6-2ffe-4951-be36-a6c4596c3eda","savedPayload":{"position":{"x":42514.80195350802,"y":30978.62583203112},"targetPosition":{"x":42279.86417232711,"y":30679.351325604905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c92d9454-d5fb-4954-a188-367dcd697af6"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"0bd97bc3-f1c7-4af5-b62b-74dcc0768410","savedPayload":{"position":{"x":42456.184163355596,"y":31033.012723458796},"targetPosition":{"x":42279.86417232711,"y":30679.351325604905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"4810638a-c137-4df6-8016-c8a2540dc9e7"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"30a52921-218e-4937-814f-84c66ec5f0a5","savedPayload":{"position":{"x":42388.644627351,"y":31075.894082255585},"targetPosition":{"x":42279.86417232711,"y":30679.351325604905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"9c1f6b84-409e-4257-92ea-a9481d3509cd"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"39ed667a-0496-4fd0-bf8a-e53de40b0862","savedPayload":{"position":{"x":42291.0656147811,"y":31108.26038304184},"targetPosition":{"x":42279.86417232711,"y":30679.351325604905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"dcd46168-1662-42c5-be91-f489d9a55833"}}}],"id":"78ec9ec3-8318-485e-9680-8fb9b74d0973","savedPayload":{"position":{"x":42279.86417232711,"y":30679.351325604905},"targetPosition":{"x":41764.360414892995,"y":30731.536222475086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"94b48c14-c7a4-4a63-aef3-a7f9cdb70427","savedPayload":{"position":{"x":10485.143459508108,"y":25124.321298101935},"targetPosition":{"x":11207.354172022147,"y":24997.12937156632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 58679.88771644947,\n \"maxValue\": 67583.90898022446,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"9bbc810a-61bb-4ec6-abbb-c7932e8f3b7c","savedPayload":{"position":{"x":42093.62495284563,"y":30829.121207389224},"targetPosition":{"x":41768.489290448524,"y":30854.749482894964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"570c5a13-57b7-420b-bee7-370c54cca978","savedPayload":{"position":{"x":42300.96851697975,"y":31047.56095253539},"targetPosition":{"x":42089.3596215099,"y":31009.299514258222},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"cc76acbb-9fd2-43f0-95de-dc78e1aaa2b5"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"8bdce5fd-ba9f-41b8-94e4-2f5fa937ff17","savedPayload":{"position":{"x":42252.435789451025,"y":31149.32331055771},"targetPosition":{"x":42089.3596215099,"y":31009.299514258222},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"fc8fac79-2166-458e-8576-be726b553afd","savedPayload":{"position":{"x":42089.3596215099,"y":31009.299514258222},"targetPosition":{"x":41768.489290448524,"y":30854.749482894964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"16440560-9994-4a14-ad15-c978f907e81a","savedPayload":{"position":{"x":10485.151896989995,"y":24869.85703114826},"targetPosition":{"x":11207.354172022147,"y":24997.12937156632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 22.790367925681448,\n \"maxValue\": 26.790367925681448,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"f6576bdf-2f8c-4e0a-a58f-eab7310d186b","savedPayload":{"position":{"x":42049.29125814663,"y":30934.342655967786},"targetPosition":{"x":41748.51699699887,"y":30914.931994846545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"efcd28ed-7742-452c-af87-f66ce11fbbfe","savedPayload":{"position":{"x":42217.26933268314,"y":31160.230931131788},"targetPosition":{"x":42013.0652514458,"y":31091.34211662267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"302bfaf2-6466-4aa0-9924-33999366b774"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"18b26582-09bf-40c8-883d-8a937ed611a9","savedPayload":{"position":{"x":42155.14393773476,"y":31253.45922738678},"targetPosition":{"x":42013.0652514458,"y":31091.34211662267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"f6868e09-2559-4fac-9631-54cf1a867c8a"}}}],"id":"20c34f4b-3a6b-463b-9c31-0b2690676722","savedPayload":{"position":{"x":42013.0652514458,"y":31091.34211662267},"targetPosition":{"x":41748.51699699887,"y":30914.931994846545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"b87524b0-b74f-42f1-bec4-9fbf2189934e","savedPayload":{"position":{"x":10572.287755675874,"y":24630.495360591074},"targetPosition":{"x":11207.354172022147,"y":24997.12937156632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 22.790367925681448,\n \"maxValue\": 26.790367925681448,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"4422554c-a844-42ef-863a-ded55841196a","savedPayload":{"position":{"x":41978.66269817766,"y":31113.94370866211},"targetPosition":{"x":41696.75247990741,"y":31018.23821306031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7237747e-961f-4465-b0ed-fb88ae9a6f66","savedPayload":{"position":{"x":42101.935307743515,"y":31272.881851588838},"targetPosition":{"x":41905.298634002036,"y":31256.409342469415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"be7e47ef-a530-4dc1-bf59-b731f1e49fa1"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0892588e-c5e7-4894-a1d9-d33fd62871d2","savedPayload":{"position":{"x":42058.76407571477,"y":31354.04601987156},"targetPosition":{"x":41905.298634002036,"y":31256.409342469415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"0333bb7c-5101-441b-be9a-d9ff1a84f116"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"762e3305-d28c-4aaa-95f4-fb6778de88e0","savedPayload":{"position":{"x":41992.01652074629,"y":31414.54815735002},"targetPosition":{"x":41905.298634002036,"y":31256.409342469415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"913f8079-b038-444a-ad43-465fa0443c04"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"f5cabaf8-cc76-400b-b249-6d6629267e2c","savedPayload":{"position":{"x":41895.247411184675,"y":31451.184612517915},"targetPosition":{"x":41905.298634002036,"y":31256.409342469415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"bba7e1ab-5bca-44c0-a8aa-cd9570b338f3"}}}],"id":"505b6409-43dd-4785-9786-0a975c15ae94","savedPayload":{"position":{"x":41905.298634002036,"y":31256.409342469415},"targetPosition":{"x":41696.75247990741,"y":31018.23821306031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"79eca48f-9ad3-4cbc-969d-1796a7808f2b","savedPayload":{"position":{"x":10736.0637019511,"y":24435.359232360817},"targetPosition":{"x":11207.354172022147,"y":24997.12937156632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"916d4e59-f2d6-43cf-964a-502c0144e1d2","savedPayload":{"position":{"x":10742.788898766035,"y":24003.630543031733},"targetPosition":{"x":10956.99510064958,"y":24307.992240198902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"327f54aa-9a96-4a14-84b4-0121f7bcd1a6","savedPayload":{"position":{"x":10731.38230627401,"y":23631.409724538502},"targetPosition":{"x":10925.693102724183,"y":23943.030751004735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"c53d8a77-b1d4-446c-9bef-8458b832c5e5"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"eb018823-9e4e-4474-9e28-602db7c25976","savedPayload":{"position":{"x":10836.16668950764,"y":23586.841125784133},"targetPosition":{"x":10925.693102724183,"y":23943.030751004735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"0f1e10be-0da8-4d10-93d7-35e407579cb0"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"67e7ef34-5411-4c31-a07e-8a334fbb0d36","savedPayload":{"position":{"x":10951.059544173126,"y":23577.13303519787},"targetPosition":{"x":10925.693102724183,"y":23943.030751004735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"a85fc58e-5b58-449b-b733-c3a623e1d5d4"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"246f1a05-01d1-4e53-b262-78ce2839053c","savedPayload":{"position":{"x":11064.25562508756,"y":23603.864776808765},"targetPosition":{"x":10925.693102724183,"y":23943.030751004735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"302de277-a428-4cc0-8757-b2ef7de6040b"}}}],"id":"1da3e8bb-5452-4fd1-8d11-848ac82cded1","savedPayload":{"position":{"x":10925.693102724183,"y":23943.030751004735},"targetPosition":{"x":10956.99510064958,"y":24307.992240198902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1770,"y":80},"width":150,"height":330,"radius":0}}},"id":"3f8bf51c-f5c3-4815-9d73-952ae0907f0f","savedPayload":{"position":{"x":10956.8659394266,"y":24307.981761793333},"targetPosition":{"x":11207.354172022147,"y":24997.12937156632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3446fa91-a753-43f1-b68f-58b19eef234a","savedPayload":{"position":{"x":10976.312117626252,"y":25620.652854069354},"targetPosition":{"x":11343.062891749762,"y":24985.40702724926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":3165,"y":-155},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"WHB Trade # 5","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-07-21T10:32:36.652Z\",\n \"toDate\": \"2019-08-03T18:33:18.798Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"5022d292-abf4-4134-8e6d-293e83227049","savedPayload":{"position":{"x":11091.826152332265,"y":26182.514504289786},"targetPosition":{"x":11342.384750916222,"y":25493.472030298934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 8855.707188114806,\n \"maxValue\": 10910.984428974414,\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"4df475b6-c0eb-425b-9dc1-b3705f2ac0ed","savedPayload":{"position":{"x":10871.046314162506,"y":26055.150911311237},"targetPosition":{"x":11342.384750916222,"y":25493.472030298934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"b4a39464-d4f0-48eb-b5ac-226a3de0f876","savedPayload":{"position":{"x":10707.292367041216,"y":25860.0233383299},"targetPosition":{"x":11342.384750916222,"y":25493.472030298934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"9110c08d-43a5-4e41-844c-801e282f32e3","savedPayload":{"position":{"x":42351.72298134148,"y":30755.358598416224},"targetPosition":{"x":42414.89475122118,"y":31175.69398433752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"431ea989-085b-40ae-aa2a-d371d7cb68c6"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"a45d9e36-f88e-472d-bf03-eda4a7addcdf","savedPayload":{"position":{"x":42436.92421752352,"y":30766.907090609027},"targetPosition":{"x":42414.89475122118,"y":31175.69398433752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"ddd34b26-4fa8-4d7c-b76d-f671c92a6181"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"eca29fe1-bab5-43e3-93fe-e11416aa558e","savedPayload":{"position":{"x":42514.909930692615,"y":30795.096322198984},"targetPosition":{"x":42414.89475122118,"y":31175.69398433752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"683e24f7-010a-412e-ba21-f280e63a0f1d"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7c666f4b-4a3e-4a97-b14f-c183c62f3cab","savedPayload":{"position":{"x":42584.74848286092,"y":30836.957446295404},"targetPosition":{"x":42414.89475122118,"y":31175.69398433752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"210b7e14-a6f0-4c56-b5e4-108f57ebb4c6"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5d2aa17e-5d1a-4cb0-afcc-6079fdeb8373","savedPayload":{"position":{"x":42644.93258822068,"y":30890.68568094114},"targetPosition":{"x":42414.89475122118,"y":31175.69398433752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"303572ad-cc90-46c9-8620-8454d557897b"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2e185a72-b160-4027-b44a-c88cafc0cd25","savedPayload":{"position":{"x":42693.890781587055,"y":30954.346971509323},"targetPosition":{"x":42414.89475122118,"y":31175.69398433752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"10142313-9ac8-4f4c-8105-88aec7bb7ce9"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e477c0ff-a15b-41f9-a60d-5857f3e80529","savedPayload":{"position":{"x":42730.19031569032,"y":31025.78363252393},"targetPosition":{"x":42414.89475122118,"y":31175.69398433752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"afbf02cf-97a6-4dc0-a3d5-95f29ba7781f"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8c749842-0015-4ed9-b08c-c44e49d4c4f6","savedPayload":{"position":{"x":42752.71431816613,"y":31102.59453735707},"targetPosition":{"x":42414.89475122118,"y":31175.69398433752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"80ed873e-8017-45ec-b211-fc4604f5aaf6"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"825e5213-69fa-414e-854a-f6567f2b041a","savedPayload":{"position":{"x":42760.68445771759,"y":31182.19245322753},"targetPosition":{"x":42414.89475122118,"y":31175.69398433752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"6635502b-5366-430e-8dc1-4edaa21c2a7f"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ef1c6e89-e8cf-45d1-a61f-52764370bbe0","savedPayload":{"position":{"x":42753.85639825163,"y":31261.859966058546},"targetPosition":{"x":42414.89475122118,"y":31175.69398433752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"3ebce074-9080-426a-baf9-61c1a04fc05b"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"ac90e3c8-c053-4f44-a2a1-5c9231fb55e1","savedPayload":{"position":{"x":42732.55890925759,"y":31338.921629287786},"targetPosition":{"x":42414.89475122118,"y":31175.69398433752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"c424ba00-bbe0-4ae9-830a-3d2aa6fcaf4d"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"e37d4dbe-5044-4b87-a831-a3d16dce73ad","savedPayload":{"position":{"x":42697.484285658,"y":31410.7660184196},"targetPosition":{"x":42414.89475122118,"y":31175.69398433752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"3d048c1f-d45a-442a-9d44-362ad7770bb6"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"648c4349-5ae5-4c3e-bf16-af1c9875a953","savedPayload":{"position":{"x":42649.83253240209,"y":31474.968490763735},"targetPosition":{"x":42414.89475122118,"y":31175.69398433752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c92d9454-d5fb-4954-a188-367dcd697af6"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"2f70ad6a-adf9-4bf8-b7e5-c6599cd54ac7","savedPayload":{"position":{"x":42591.21474224967,"y":31529.35538219141},"targetPosition":{"x":42414.89475122118,"y":31175.69398433752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"4810638a-c137-4df6-8016-c8a2540dc9e7"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"b0fd047e-2f1b-4b29-bcc0-7bbcc721611d","savedPayload":{"position":{"x":42523.675206245076,"y":31572.2367409882},"targetPosition":{"x":42414.89475122118,"y":31175.69398433752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"9c1f6b84-409e-4257-92ea-a9481d3509cd"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"ece28915-9a06-45a8-af30-ef7f09cbe49c","savedPayload":{"position":{"x":42426.09619367518,"y":31604.603041774455},"targetPosition":{"x":42414.89475122118,"y":31175.69398433752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"dcd46168-1662-42c5-be91-f489d9a55833"}}}],"id":"b3b6b597-7df8-46ca-8c5c-eb28dc48044f","savedPayload":{"position":{"x":42414.89475122118,"y":31175.69398433752},"targetPosition":{"x":41899.39099378707,"y":31227.8788812077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"942d0c7a-ec3b-439a-a63e-fb262f52b987","savedPayload":{"position":{"x":10620.174038402183,"y":25620.66395683455},"targetPosition":{"x":11342.384750916222,"y":25493.472030298934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 65051.25313365259,\n \"maxValue\": 73955.27439742758,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"3e602017-9fff-46dc-80e6-708a4ade66c5","savedPayload":{"position":{"x":42228.65553173971,"y":31325.463866121838},"targetPosition":{"x":41903.5198693426,"y":31351.092141627578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7dbaf753-7625-4a98-875f-214d831dca40","savedPayload":{"position":{"x":42435.99909587383,"y":31543.903611268004},"targetPosition":{"x":42224.39020040398,"y":31505.642172990836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"cc76acbb-9fd2-43f0-95de-dc78e1aaa2b5"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"0980f381-cb0e-4dda-9dc8-37b591c0dba0","savedPayload":{"position":{"x":42387.4663683451,"y":31645.665969290323},"targetPosition":{"x":42224.39020040398,"y":31505.642172990836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"b63630e9-811e-4023-b6b1-cb480934928a","savedPayload":{"position":{"x":42224.39020040398,"y":31505.642172990836},"targetPosition":{"x":41903.5198693426,"y":31351.092141627578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"0a35f6e5-445a-403e-888f-acce4a5dd360","savedPayload":{"position":{"x":10620.18247588407,"y":25366.199689880876},"targetPosition":{"x":11342.384750916222,"y":25493.472030298934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 25.652609705414967,\n \"maxValue\": 29.652609705414967,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"dc916c41-0fd8-4cba-88b2-66dcaae6384f","savedPayload":{"position":{"x":42184.321837040705,"y":31430.6853147004},"targetPosition":{"x":41883.547575892946,"y":31411.27465357916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9dd8f1ce-8b0a-4842-8f65-f299a4d5261b","savedPayload":{"position":{"x":42352.29991157722,"y":31656.5735898644},"targetPosition":{"x":42148.09583033987,"y":31587.684775355283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"302bfaf2-6466-4aa0-9924-33999366b774"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ce74bcee-ee01-45cd-8dda-22559d39c0bc","savedPayload":{"position":{"x":42290.17451662884,"y":31749.801886119392},"targetPosition":{"x":42148.09583033987,"y":31587.684775355283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"f6868e09-2559-4fac-9631-54cf1a867c8a"}}}],"id":"f5a1bd5c-42be-4f90-8a33-da823d0e100e","savedPayload":{"position":{"x":42148.09583033987,"y":31587.684775355283},"targetPosition":{"x":41883.547575892946,"y":31411.27465357916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"31c7ef3b-591b-41e7-a466-d689f20818d0","savedPayload":{"position":{"x":10707.318334569949,"y":25126.838019323688},"targetPosition":{"x":11342.384750916222,"y":25493.472030298934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 25.652609705414967,\n \"maxValue\": 29.652609705414967,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"0ddf384c-8aa0-44a0-999c-8fc1a8930eb1","savedPayload":{"position":{"x":42113.69327707173,"y":31610.286367394725},"targetPosition":{"x":41831.783058801484,"y":31514.580871792925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"30cfadd9-9a0c-48d6-9f5d-d4e28743e297","savedPayload":{"position":{"x":42236.96588663759,"y":31769.22451032145},"targetPosition":{"x":42040.32921289611,"y":31752.75200120203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"be7e47ef-a530-4dc1-bf59-b731f1e49fa1"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d2075e68-baac-42e7-a86d-d9a28603eaef","savedPayload":{"position":{"x":42193.79465460884,"y":31850.388678604173},"targetPosition":{"x":42040.32921289611,"y":31752.75200120203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"0333bb7c-5101-441b-be9a-d9ff1a84f116"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"1cdc136a-0a5d-450e-ad8d-fcc63dad5877","savedPayload":{"position":{"x":42127.04709964037,"y":31910.890816082632},"targetPosition":{"x":42040.32921289611,"y":31752.75200120203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"913f8079-b038-444a-ad43-465fa0443c04"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"973c19c9-0844-4987-adb7-c53abd7b9a62","savedPayload":{"position":{"x":42030.27799007875,"y":31947.52727125053},"targetPosition":{"x":42040.32921289611,"y":31752.75200120203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"bba7e1ab-5bca-44c0-a8aa-cd9570b338f3"}}}],"id":"b0e08907-be90-4a3d-852f-f8e144d10d39","savedPayload":{"position":{"x":42040.32921289611,"y":31752.75200120203},"targetPosition":{"x":41831.783058801484,"y":31514.580871792925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"51ff7b08-92cc-47ad-b244-0d866ef1b516","savedPayload":{"position":{"x":10871.094280845175,"y":24931.70189109343},"targetPosition":{"x":11342.384750916222,"y":25493.472030298934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"c5c28bf6-52b9-43b7-a8b9-4920d7c057a0","savedPayload":{"position":{"x":10877.81947766011,"y":24499.973201764347},"targetPosition":{"x":11092.025679543654,"y":24804.334898931516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"5543cb78-1aa8-4761-9299-f588182730b4","savedPayload":{"position":{"x":10866.412885168085,"y":24127.752383271116},"targetPosition":{"x":11060.723681618258,"y":24439.37340973735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"c53d8a77-b1d4-446c-9bef-8458b832c5e5"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"587704a5-29c6-4708-bdf8-4b1fca2cc631","savedPayload":{"position":{"x":10971.197268401715,"y":24083.183784516747},"targetPosition":{"x":11060.723681618258,"y":24439.37340973735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"0f1e10be-0da8-4d10-93d7-35e407579cb0"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"d13db45b-7bc8-4d73-80df-6c0db1174b4d","savedPayload":{"position":{"x":11086.0901230672,"y":24073.475693930483},"targetPosition":{"x":11060.723681618258,"y":24439.37340973735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"a85fc58e-5b58-449b-b733-c3a623e1d5d4"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"42b3cb5d-292b-4733-a5ed-e3d45e0abb8b","savedPayload":{"position":{"x":11199.286203981635,"y":24100.20743554138},"targetPosition":{"x":11060.723681618258,"y":24439.37340973735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"302de277-a428-4cc0-8757-b2ef7de6040b"}}}],"id":"e8282d58-c59a-4983-8cb2-a1013e4edcc1","savedPayload":{"position":{"x":11060.723681618258,"y":24439.37340973735},"targetPosition":{"x":11092.025679543654,"y":24804.334898931516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1770,"y":80},"width":150,"height":330,"radius":0}}},"id":"0395360e-9534-4fb1-8d06-21db2adda25f","savedPayload":{"position":{"x":11091.896518320675,"y":24804.324420525947},"targetPosition":{"x":11342.384750916222,"y":25493.472030298934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"245b2e83-1303-494c-942c-d0fd043110ed","savedPayload":{"position":{"x":10707.795974890585,"y":25352.130755182578},"targetPosition":{"x":11343.062891749762,"y":24985.40702724926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":3515,"y":-155},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"WHB Trade # 6","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-08-06T00:50:44.863Z\",\n \"toDate\": \"2019-08-08T06:32:05.462Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"a6f978ba-1e1a-46d1-9d6d-26d09d6c7466","savedPayload":{"position":{"x":11090.75392055981,"y":26571.825335925285},"targetPosition":{"x":11341.312519143767,"y":25882.782861934433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 10463.551503174274,\n \"maxValue\": 12518.828744033883,\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"b3eb39a9-5aca-49f3-b356-de4011030dde","savedPayload":{"position":{"x":10869.97408239005,"y":26444.461742946736},"targetPosition":{"x":11341.312519143767,"y":25882.782861934433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"754e930e-ebe6-4760-bacf-3ee07f12583b","savedPayload":{"position":{"x":10706.22013526876,"y":26249.334169965397},"targetPosition":{"x":11341.312519143767,"y":25882.782861934433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"e89df967-87d3-46e0-9215-2f0267e52a6d","savedPayload":{"position":{"x":42350.650749569024,"y":31144.669430051723},"targetPosition":{"x":42413.822519448724,"y":31565.004815973018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"431ea989-085b-40ae-aa2a-d371d7cb68c6"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"f41ab207-4812-4d47-80b3-f2488b575d47","savedPayload":{"position":{"x":42435.85198575106,"y":31156.217922244527},"targetPosition":{"x":42413.822519448724,"y":31565.004815973018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"ddd34b26-4fa8-4d7c-b76d-f671c92a6181"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"25659843-9a9e-4684-b9f5-40adaf363c0c","savedPayload":{"position":{"x":42513.83769892016,"y":31184.407153834483},"targetPosition":{"x":42413.822519448724,"y":31565.004815973018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"683e24f7-010a-412e-ba21-f280e63a0f1d"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9aab4893-8728-4bc8-a55f-9d4ab89cb50c","savedPayload":{"position":{"x":42583.676251088466,"y":31226.268277930903},"targetPosition":{"x":42413.822519448724,"y":31565.004815973018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"210b7e14-a6f0-4c56-b5e4-108f57ebb4c6"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e1720195-a86c-47ae-9fbd-e06c50a3fee9","savedPayload":{"position":{"x":42643.860356448226,"y":31279.99651257664},"targetPosition":{"x":42413.822519448724,"y":31565.004815973018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"303572ad-cc90-46c9-8620-8454d557897b"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"829b9301-366f-48a4-a203-3d55b9df5970","savedPayload":{"position":{"x":42692.8185498146,"y":31343.657803144823},"targetPosition":{"x":42413.822519448724,"y":31565.004815973018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"10142313-9ac8-4f4c-8105-88aec7bb7ce9"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"427d0e25-d00c-415f-bc0a-a31861c6d05a","savedPayload":{"position":{"x":42729.11808391786,"y":31415.09446415943},"targetPosition":{"x":42413.822519448724,"y":31565.004815973018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"afbf02cf-97a6-4dc0-a3d5-95f29ba7781f"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"abc9caed-3233-42ee-bfa4-2b821b3515fd","savedPayload":{"position":{"x":42751.64208639367,"y":31491.905368992568},"targetPosition":{"x":42413.822519448724,"y":31565.004815973018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"80ed873e-8017-45ec-b211-fc4604f5aaf6"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"70f6a08a-7bf1-464b-ba36-7334a7c9a11e","savedPayload":{"position":{"x":42759.61222594513,"y":31571.50328486303},"targetPosition":{"x":42413.822519448724,"y":31565.004815973018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"6635502b-5366-430e-8dc1-4edaa21c2a7f"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e34a1602-7388-4f87-9ae8-e1e539bb854a","savedPayload":{"position":{"x":42752.78416647917,"y":31651.170797694045},"targetPosition":{"x":42413.822519448724,"y":31565.004815973018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"3ebce074-9080-426a-baf9-61c1a04fc05b"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"8eb4294b-32dc-481b-8362-672e63e13f71","savedPayload":{"position":{"x":42731.48667748513,"y":31728.232460923286},"targetPosition":{"x":42413.822519448724,"y":31565.004815973018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"c424ba00-bbe0-4ae9-830a-3d2aa6fcaf4d"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"b9faa1ec-4b21-4af4-bc14-34c2c7c0515e","savedPayload":{"position":{"x":42696.41205388554,"y":31800.0768500551},"targetPosition":{"x":42413.822519448724,"y":31565.004815973018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"3d048c1f-d45a-442a-9d44-362ad7770bb6"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"9e59fa2a-448d-4938-a96d-01695fe89dca","savedPayload":{"position":{"x":42648.760300629634,"y":31864.279322399234},"targetPosition":{"x":42413.822519448724,"y":31565.004815973018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c92d9454-d5fb-4954-a188-367dcd697af6"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"297e39a4-468f-47e8-a490-9e36f4cf2365","savedPayload":{"position":{"x":42590.14251047721,"y":31918.66621382691},"targetPosition":{"x":42413.822519448724,"y":31565.004815973018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"4810638a-c137-4df6-8016-c8a2540dc9e7"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"da2a577c-c342-4711-a639-f0b3de61fa91","savedPayload":{"position":{"x":42522.60297447262,"y":31961.5475726237},"targetPosition":{"x":42413.822519448724,"y":31565.004815973018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"9c1f6b84-409e-4257-92ea-a9481d3509cd"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"87184b3c-a510-4d51-b241-f2f58ab3672a","savedPayload":{"position":{"x":42425.02396190272,"y":31993.913873409954},"targetPosition":{"x":42413.822519448724,"y":31565.004815973018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"dcd46168-1662-42c5-be91-f489d9a55833"}}}],"id":"a1deab84-cb4c-4404-8656-bd8d5db63aae","savedPayload":{"position":{"x":42413.822519448724,"y":31565.004815973018},"targetPosition":{"x":41898.31876201461,"y":31617.1897128432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"ce399e02-7e9b-4026-97af-4fe6c3c9800c","savedPayload":{"position":{"x":10619.101806629727,"y":26009.97478847005},"targetPosition":{"x":11341.312519143767,"y":25882.782861934433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 76963.55147517774,\n \"maxValue\": 85867.57273895272,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"956302dd-5e76-467a-8e8b-20d5541e2799","savedPayload":{"position":{"x":42227.58329996725,"y":31714.774697757337},"targetPosition":{"x":41902.44763757014,"y":31740.402973263077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"40bb34ab-f4e9-4f43-ace1-99d2d6fbca35","savedPayload":{"position":{"x":42434.92686410137,"y":31933.214442903503},"targetPosition":{"x":42223.31796863152,"y":31894.953004626335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"cc76acbb-9fd2-43f0-95de-dc78e1aaa2b5"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"4d4284e7-5654-4ad6-a402-b83bfe6c3fc6","savedPayload":{"position":{"x":42386.39413657264,"y":32034.976800925822},"targetPosition":{"x":42223.31796863152,"y":31894.953004626335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"16d6b9f0-390f-4377-8e12-bfe253c31c8b","savedPayload":{"position":{"x":42223.31796863152,"y":31894.953004626335},"targetPosition":{"x":41902.44763757014,"y":31740.402973263077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"e97deccd-0a4a-48eb-a39a-b8d67fc75c1e","savedPayload":{"position":{"x":10619.110244111615,"y":25755.510521516375},"targetPosition":{"x":11341.312519143767,"y":25882.782861934433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 31.00403373670698,\n \"maxValue\": 35.00403373670698,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"b40a7040-70d9-4d9b-b3a3-26b8de8aedfc","savedPayload":{"position":{"x":42183.24960526825,"y":31819.9961463359},"targetPosition":{"x":41882.47534412049,"y":31800.58548521466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a7f42e0e-7688-4f38-b59c-be83066077c0","savedPayload":{"position":{"x":42351.22767980476,"y":32045.8844214999},"targetPosition":{"x":42147.023598567415,"y":31976.995606990782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"302bfaf2-6466-4aa0-9924-33999366b774"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"962f716c-d7d1-44fb-97db-00b05cc3b805","savedPayload":{"position":{"x":42289.10228485638,"y":32139.11271775489},"targetPosition":{"x":42147.023598567415,"y":31976.995606990782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"f6868e09-2559-4fac-9631-54cf1a867c8a"}}}],"id":"2c3c2202-bd6e-4570-8752-f04a67240ed9","savedPayload":{"position":{"x":42147.023598567415,"y":31976.995606990782},"targetPosition":{"x":41882.47534412049,"y":31800.58548521466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"01ea23e3-6bc8-488c-bb7c-da475080bc9b","savedPayload":{"position":{"x":10706.246102797493,"y":25516.148850959187},"targetPosition":{"x":11341.312519143767,"y":25882.782861934433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 31.00403373670698,\n \"maxValue\": 35.00403373670698,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"49021071-231a-48a5-b3f8-11b509a0af1d","savedPayload":{"position":{"x":42112.621045299275,"y":31999.597199030224},"targetPosition":{"x":41830.71082702903,"y":31903.891703428424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"805098b6-531c-43af-9a76-de35ed7f0ac5","savedPayload":{"position":{"x":42235.89365486513,"y":32158.53534195695},"targetPosition":{"x":42039.25698112365,"y":32142.062832837528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"be7e47ef-a530-4dc1-bf59-b731f1e49fa1"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b239efdc-cca9-47f6-9231-9e87299b116c","savedPayload":{"position":{"x":42192.722422836385,"y":32239.699510239672},"targetPosition":{"x":42039.25698112365,"y":32142.062832837528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"0333bb7c-5101-441b-be9a-d9ff1a84f116"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"8c974523-4b55-4883-9715-640697e7e5a3","savedPayload":{"position":{"x":42125.97486786791,"y":32300.20164771813},"targetPosition":{"x":42039.25698112365,"y":32142.062832837528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"913f8079-b038-444a-ad43-465fa0443c04"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"33bc8a2c-a8d7-4d25-a6c7-d486ca6b42f6","savedPayload":{"position":{"x":42029.20575830629,"y":32336.838102886028},"targetPosition":{"x":42039.25698112365,"y":32142.062832837528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"bba7e1ab-5bca-44c0-a8aa-cd9570b338f3"}}}],"id":"e89f7ba2-5050-4c7c-a977-e4ecfccb8403","savedPayload":{"position":{"x":42039.25698112365,"y":32142.062832837528},"targetPosition":{"x":41830.71082702903,"y":31903.891703428424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"7fd4cbd0-294f-48ae-bf52-f5665e936a9b","savedPayload":{"position":{"x":10870.022049072719,"y":25321.01272272893},"targetPosition":{"x":11341.312519143767,"y":25882.782861934433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"00803af5-9fca-4e1e-87ad-f55efdff6c42","savedPayload":{"position":{"x":10876.747245887655,"y":24889.284033399847},"targetPosition":{"x":11090.953447771199,"y":25193.645730567016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"179259cb-5e61-4aa5-bd1b-50a21e134119","savedPayload":{"position":{"x":10865.34065339563,"y":24517.063214906615},"targetPosition":{"x":11059.651449845802,"y":24828.68424137285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"c53d8a77-b1d4-446c-9bef-8458b832c5e5"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"b01451d4-bcb0-403b-8816-fe88056a3d74","savedPayload":{"position":{"x":10970.125036629259,"y":24472.494616152246},"targetPosition":{"x":11059.651449845802,"y":24828.68424137285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"0f1e10be-0da8-4d10-93d7-35e407579cb0"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"5f956a08-9895-4c0a-b348-ff072a84aec6","savedPayload":{"position":{"x":11085.017891294745,"y":24462.78652556598},"targetPosition":{"x":11059.651449845802,"y":24828.68424137285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"a85fc58e-5b58-449b-b733-c3a623e1d5d4"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"6e4afee6-596c-4480-9394-ae9c33deddcb","savedPayload":{"position":{"x":11198.21397220918,"y":24489.518267176878},"targetPosition":{"x":11059.651449845802,"y":24828.68424137285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"302de277-a428-4cc0-8757-b2ef7de6040b"}}}],"id":"e2f24147-d2a0-4db1-8199-688c5cffb0bb","savedPayload":{"position":{"x":11059.651449845802,"y":24828.68424137285},"targetPosition":{"x":11090.953447771199,"y":25193.645730567016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1770,"y":80},"width":150,"height":330,"radius":0}}},"id":"141d7c9d-910d-440d-b43c-976508b9a3ea","savedPayload":{"position":{"x":11090.824286548219,"y":25193.635252161446},"targetPosition":{"x":11341.312519143767,"y":25882.782861934433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cd52a242-02ce-446a-b9f9-ef6db4764ed6","savedPayload":{"position":{"x":10609.511704951896,"y":24985.40353338581},"targetPosition":{"x":11343.062891749762,"y":24985.40702724926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":3865,"y":-155},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"WHB Trade # 7","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-08-09T05:16:53.516Z\",\n \"toDate\": \"2019-08-17T05:39:32.846Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"b42a7d5a-f66b-43da-890f-c443d88e8c16","savedPayload":{"position":{"x":11270.100833931569,"y":26840.447115157225},"targetPosition":{"x":11520.659432515526,"y":26151.404641166373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 9860.609885026974,\n \"maxValue\": 11915.887125886582,\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"b170600b-2145-4a40-ab1e-85db578d836b","savedPayload":{"position":{"x":11049.32099576181,"y":26713.083522178677},"targetPosition":{"x":11520.659432515526,"y":26151.404641166373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"0d9bae14-a86a-42f0-bfc9-94dc9cf7afbc","savedPayload":{"position":{"x":10885.56704864052,"y":26517.955949197338},"targetPosition":{"x":11520.659432515526,"y":26151.404641166373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"2e3af8ee-3e27-455d-b1f3-a3da2206673a","savedPayload":{"position":{"x":42529.99766294078,"y":31413.291209283663},"targetPosition":{"x":42593.16943282048,"y":31833.626595204958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"431ea989-085b-40ae-aa2a-d371d7cb68c6"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"df5d9fb5-845a-49a9-952a-f2edeffc5e0d","savedPayload":{"position":{"x":42615.19889912282,"y":31424.839701476467},"targetPosition":{"x":42593.16943282048,"y":31833.626595204958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"ddd34b26-4fa8-4d7c-b76d-f671c92a6181"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8051b74a-385a-462c-aa06-57bfba597e86","savedPayload":{"position":{"x":42693.184612291916,"y":31453.028933066424},"targetPosition":{"x":42593.16943282048,"y":31833.626595204958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"683e24f7-010a-412e-ba21-f280e63a0f1d"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"70275c0a-9f69-45ab-b66e-08b8a7a2227d","savedPayload":{"position":{"x":42763.023164460225,"y":31494.890057162844},"targetPosition":{"x":42593.16943282048,"y":31833.626595204958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"210b7e14-a6f0-4c56-b5e4-108f57ebb4c6"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"27878169-1b35-495d-92ae-235e0b7eec9b","savedPayload":{"position":{"x":42823.207269819985,"y":31548.61829180858},"targetPosition":{"x":42593.16943282048,"y":31833.626595204958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"303572ad-cc90-46c9-8620-8454d557897b"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"dd10d6b1-e439-44e4-93f1-c6dff37d2e69","savedPayload":{"position":{"x":42872.16546318636,"y":31612.279582376763},"targetPosition":{"x":42593.16943282048,"y":31833.626595204958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"10142313-9ac8-4f4c-8105-88aec7bb7ce9"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"dc1c887d-7a05-452c-89e0-c866b321d6da","savedPayload":{"position":{"x":42908.46499728962,"y":31683.71624339137},"targetPosition":{"x":42593.16943282048,"y":31833.626595204958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"afbf02cf-97a6-4dc0-a3d5-95f29ba7781f"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8e3dd494-9a66-4a86-a9fd-f130c4f8a934","savedPayload":{"position":{"x":42930.98899976543,"y":31760.527148224508},"targetPosition":{"x":42593.16943282048,"y":31833.626595204958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"80ed873e-8017-45ec-b211-fc4604f5aaf6"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3c7aa781-0360-4924-b06c-e2ce1996417c","savedPayload":{"position":{"x":42938.95913931689,"y":31840.12506409497},"targetPosition":{"x":42593.16943282048,"y":31833.626595204958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"6635502b-5366-430e-8dc1-4edaa21c2a7f"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6163d70f-53b4-4105-a847-2f08ebdd8154","savedPayload":{"position":{"x":42932.13107985093,"y":31919.792576925985},"targetPosition":{"x":42593.16943282048,"y":31833.626595204958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"3ebce074-9080-426a-baf9-61c1a04fc05b"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"c46add5b-38df-4f76-b7f7-ba67744519d0","savedPayload":{"position":{"x":42910.83359085689,"y":31996.854240155226},"targetPosition":{"x":42593.16943282048,"y":31833.626595204958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"c424ba00-bbe0-4ae9-830a-3d2aa6fcaf4d"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"b9c3465d-011c-4902-ba19-d969a121f196","savedPayload":{"position":{"x":42875.7589672573,"y":32068.69862928704},"targetPosition":{"x":42593.16943282048,"y":31833.626595204958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"3d048c1f-d45a-442a-9d44-362ad7770bb6"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"1bb520c8-676a-44dd-ba6c-1dbda4c63a26","savedPayload":{"position":{"x":42828.10721400139,"y":32132.901101631174},"targetPosition":{"x":42593.16943282048,"y":31833.626595204958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c92d9454-d5fb-4954-a188-367dcd697af6"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"ea24d8de-5f8e-4d7c-92c0-0e58b6cf6d6e","savedPayload":{"position":{"x":42769.48942384897,"y":32187.28799305885},"targetPosition":{"x":42593.16943282048,"y":31833.626595204958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"4810638a-c137-4df6-8016-c8a2540dc9e7"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"e8bc16cf-54f0-4e2b-9a88-96b549a56fae","savedPayload":{"position":{"x":42701.94988784438,"y":32230.16935185564},"targetPosition":{"x":42593.16943282048,"y":31833.626595204958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"9c1f6b84-409e-4257-92ea-a9481d3509cd"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"ed3506d0-19c2-4d3d-a203-41f2911962c6","savedPayload":{"position":{"x":42604.37087527448,"y":32262.535652641895},"targetPosition":{"x":42593.16943282048,"y":31833.626595204958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"dcd46168-1662-42c5-be91-f489d9a55833"}}}],"id":"233c5546-8bdd-4552-9841-34560f6fb928","savedPayload":{"position":{"x":42593.16943282048,"y":31833.626595204958},"targetPosition":{"x":42077.66567538637,"y":31885.81149207514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"5f5d6cec-7bf0-4ae3-b76c-21d36853cd34","savedPayload":{"position":{"x":10798.448720001486,"y":26278.59656770199},"targetPosition":{"x":11520.659432515526,"y":26151.404641166373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 75835.44757102142,\n \"maxValue\": 84739.4688347964,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"b0058f57-5d38-4a1a-8f4d-169e5cf5a1a1","savedPayload":{"position":{"x":42406.93021333901,"y":31983.396476989277},"targetPosition":{"x":42081.7945509419,"y":32009.024752495017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"fe1ae9be-a6c7-448e-9d11-40996e8bcef4","savedPayload":{"position":{"x":42614.27377747313,"y":32201.836222135444},"targetPosition":{"x":42402.66488200328,"y":32163.574783858276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"cc76acbb-9fd2-43f0-95de-dc78e1aaa2b5"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"084634e4-14ca-4400-9fe0-a750131e646d","savedPayload":{"position":{"x":42565.7410499444,"y":32303.598580157763},"targetPosition":{"x":42402.66488200328,"y":32163.574783858276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"4d1d09cb-185a-48da-866f-af198091c52c","savedPayload":{"position":{"x":42402.66488200328,"y":32163.574783858276},"targetPosition":{"x":42081.7945509419,"y":32009.024752495017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"48691346-e96d-4bd4-b1fc-d1e2b502eaee","savedPayload":{"position":{"x":10798.457157483374,"y":26024.132300748315},"targetPosition":{"x":11520.659432515526,"y":26151.404641166373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 30.49724972497247,\n \"maxValue\": 34.49724972497247,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"b7c87241-8d19-41d5-bccb-b37121f29ccc","savedPayload":{"position":{"x":42362.596518640006,"y":32088.61792556784},"targetPosition":{"x":42061.82225749225,"y":32069.2072644466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"22518aec-e525-42f5-a476-604f94efc5db","savedPayload":{"position":{"x":42530.57459317652,"y":32314.50620073184},"targetPosition":{"x":42326.370511939174,"y":32245.617386222722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"302bfaf2-6466-4aa0-9924-33999366b774"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"372bdb4f-7416-4ddf-8131-efa32219e50b","savedPayload":{"position":{"x":42468.44919822814,"y":32407.73449698683},"targetPosition":{"x":42326.370511939174,"y":32245.617386222722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"f6868e09-2559-4fac-9631-54cf1a867c8a"}}}],"id":"67ed8e12-784a-4def-a31a-bfcfd402e1f6","savedPayload":{"position":{"x":42326.370511939174,"y":32245.617386222722},"targetPosition":{"x":42061.82225749225,"y":32069.2072644466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"a2a45fb9-d2ab-464a-8817-43146e9aa511","savedPayload":{"position":{"x":10885.593016169252,"y":25784.770630191128},"targetPosition":{"x":11520.659432515526,"y":26151.404641166373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 30.49724972497247,\n \"maxValue\": 34.49724972497247,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"098924d3-8a31-4c56-b07a-632e0889752e","savedPayload":{"position":{"x":42291.96795867103,"y":32268.218978262164},"targetPosition":{"x":42010.057740400785,"y":32172.513482660364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"72854f3e-73e6-4f14-83fe-41d1ea4cda5b","savedPayload":{"position":{"x":42415.24056823689,"y":32427.15712118889},"targetPosition":{"x":42218.60389449541,"y":32410.684612069468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"be7e47ef-a530-4dc1-bf59-b731f1e49fa1"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6ad6409b-8a5b-496f-af21-318fb81737f3","savedPayload":{"position":{"x":42372.069336208144,"y":32508.321289471613},"targetPosition":{"x":42218.60389449541,"y":32410.684612069468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"0333bb7c-5101-441b-be9a-d9ff1a84f116"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"bcd0a4ad-d7d5-42d5-a588-e852e00909b2","savedPayload":{"position":{"x":42305.32178123967,"y":32568.82342695007},"targetPosition":{"x":42218.60389449541,"y":32410.684612069468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"913f8079-b038-444a-ad43-465fa0443c04"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"81b2bbd5-8289-4942-b66d-68bb797a81de","savedPayload":{"position":{"x":42208.55267167805,"y":32605.459882117968},"targetPosition":{"x":42218.60389449541,"y":32410.684612069468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"bba7e1ab-5bca-44c0-a8aa-cd9570b338f3"}}}],"id":"3fccbd30-37a8-4354-8676-c6e2ccba024b","savedPayload":{"position":{"x":42218.60389449541,"y":32410.684612069468},"targetPosition":{"x":42010.057740400785,"y":32172.513482660364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"9b1accb8-338e-4cf0-a091-9a2e7a6af213","savedPayload":{"position":{"x":11049.368962444478,"y":25589.63450196087},"targetPosition":{"x":11520.659432515526,"y":26151.404641166373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"7ac9fb85-5cb5-4cae-aabc-58d62f16795b","savedPayload":{"position":{"x":11056.094159259414,"y":25157.905812631787},"targetPosition":{"x":11270.300361142958,"y":25462.267509798956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"fe899d0f-4369-4f08-9523-42ef5ad155d3","savedPayload":{"position":{"x":11044.687566767388,"y":24785.684994138555},"targetPosition":{"x":11238.99836321756,"y":25097.30602060479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"c53d8a77-b1d4-446c-9bef-8458b832c5e5"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"9204b6a0-973b-4b6b-acfc-b1b36359f0c9","savedPayload":{"position":{"x":11149.471950001018,"y":24741.116395384186},"targetPosition":{"x":11238.99836321756,"y":25097.30602060479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"0f1e10be-0da8-4d10-93d7-35e407579cb0"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"09a8e3ba-e339-436f-af37-aad2c898bae7","savedPayload":{"position":{"x":11264.364804666504,"y":24731.408304797922},"targetPosition":{"x":11238.99836321756,"y":25097.30602060479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"a85fc58e-5b58-449b-b733-c3a623e1d5d4"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"88e3f451-420e-466d-bce5-adb7779857c7","savedPayload":{"position":{"x":11377.560885580939,"y":24758.14004640882},"targetPosition":{"x":11238.99836321756,"y":25097.30602060479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"302de277-a428-4cc0-8757-b2ef7de6040b"}}}],"id":"142681d0-01bc-4bb6-bb9d-71680c8c369f","savedPayload":{"position":{"x":11238.99836321756,"y":25097.30602060479},"targetPosition":{"x":11270.300361142958,"y":25462.267509798956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1770,"y":80},"width":150,"height":330,"radius":0}}},"id":"3b46509a-155a-4a50-8316-6e062067a5d8","savedPayload":{"position":{"x":11270.171199919978,"y":25462.257031393387},"targetPosition":{"x":11520.659432515526,"y":26151.404641166373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"55cddd8c-4865-4b50-b685-479968c5f8db","savedPayload":{"position":{"x":10707.795433903904,"y":24618.68289438679},"targetPosition":{"x":11343.062891749762,"y":24985.40702724926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":4215,"y":-155},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"WHB Trade # 8","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-09-06T13:08:49.877Z\",\n \"toDate\": \"2019-09-30T11:35:00.954Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"805fb81f-ec15-47dc-8c2c-ad866d8244ac","savedPayload":{"position":{"x":11530.963012151524,"y":27146.389682366458},"targetPosition":{"x":11781.52161073548,"y":26457.347208375606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 7720.152067063603,\n \"maxValue\": 11271.671139269009,\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"6f59dc06-72d4-4c6d-9516-ca6f5b0817e9","savedPayload":{"position":{"x":11310.183173981764,"y":27019.02608938791},"targetPosition":{"x":11781.52161073548,"y":26457.347208375606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"b9cd1efc-605d-4e8e-85aa-89f9b13e9d26","savedPayload":{"position":{"x":11146.429226860475,"y":26823.89851640657},"targetPosition":{"x":11781.52161073548,"y":26457.347208375606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"71b0b5cb-106f-41ae-b53a-e9660a986971","savedPayload":{"position":{"x":42790.85984116074,"y":31719.233776492896},"targetPosition":{"x":42854.03161104044,"y":32139.56916241419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"431ea989-085b-40ae-aa2a-d371d7cb68c6"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"3978b0df-cec1-4f64-89bc-743543589dca","savedPayload":{"position":{"x":42876.061077342776,"y":31730.7822686857},"targetPosition":{"x":42854.03161104044,"y":32139.56916241419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"ddd34b26-4fa8-4d7c-b76d-f671c92a6181"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"34f3c13c-16ff-4fcf-a076-99b69ec97d8e","savedPayload":{"position":{"x":42954.04679051187,"y":31758.971500275657},"targetPosition":{"x":42854.03161104044,"y":32139.56916241419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"683e24f7-010a-412e-ba21-f280e63a0f1d"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"bccdc13b-a125-4ae8-9ab0-df735dfcde5f","savedPayload":{"position":{"x":43023.88534268018,"y":31800.832624372077},"targetPosition":{"x":42854.03161104044,"y":32139.56916241419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"210b7e14-a6f0-4c56-b5e4-108f57ebb4c6"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5147f164-f3aa-418e-b067-b5cfe65d8128","savedPayload":{"position":{"x":43084.06944803994,"y":31854.560859017813},"targetPosition":{"x":42854.03161104044,"y":32139.56916241419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"303572ad-cc90-46c9-8620-8454d557897b"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2684f6ca-0426-4bd4-a131-a67e078313b4","savedPayload":{"position":{"x":43133.02764140631,"y":31918.222149585996},"targetPosition":{"x":42854.03161104044,"y":32139.56916241419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"10142313-9ac8-4f4c-8105-88aec7bb7ce9"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4e93a4f1-79c7-4f11-bccd-71745f89dd51","savedPayload":{"position":{"x":43169.32717550958,"y":31989.658810600602},"targetPosition":{"x":42854.03161104044,"y":32139.56916241419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"afbf02cf-97a6-4dc0-a3d5-95f29ba7781f"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d232f19c-af9b-4e61-942c-81f40b67d50b","savedPayload":{"position":{"x":43191.85117798539,"y":32066.46971543374},"targetPosition":{"x":42854.03161104044,"y":32139.56916241419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"80ed873e-8017-45ec-b211-fc4604f5aaf6"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c580235d-8869-4dfd-b1b5-766ffac9f178","savedPayload":{"position":{"x":43199.821317536844,"y":32146.067631304202},"targetPosition":{"x":42854.03161104044,"y":32139.56916241419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"6635502b-5366-430e-8dc1-4edaa21c2a7f"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6684f71a-f788-41e1-8c2d-057c20f7512d","savedPayload":{"position":{"x":43192.993258070885,"y":32225.73514413522},"targetPosition":{"x":42854.03161104044,"y":32139.56916241419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"3ebce074-9080-426a-baf9-61c1a04fc05b"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"a7b65528-19a9-4272-915e-5bf8714c1110","savedPayload":{"position":{"x":43171.69576907685,"y":32302.79680736446},"targetPosition":{"x":42854.03161104044,"y":32139.56916241419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"c424ba00-bbe0-4ae9-830a-3d2aa6fcaf4d"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"44366e8c-5b17-41c9-819b-7727ec64c145","savedPayload":{"position":{"x":43136.62114547726,"y":32374.64119649627},"targetPosition":{"x":42854.03161104044,"y":32139.56916241419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"3d048c1f-d45a-442a-9d44-362ad7770bb6"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"4cca0acf-adf0-4e8d-a4fb-75a0a165b818","savedPayload":{"position":{"x":43088.96939222135,"y":32438.843668840407},"targetPosition":{"x":42854.03161104044,"y":32139.56916241419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c92d9454-d5fb-4954-a188-367dcd697af6"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"12f5aff4-908c-4653-a3c0-e4c9f6b0cedd","savedPayload":{"position":{"x":43030.35160206893,"y":32493.230560268083},"targetPosition":{"x":42854.03161104044,"y":32139.56916241419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"4810638a-c137-4df6-8016-c8a2540dc9e7"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"1e7db11a-99c8-4bfc-af59-d3a67b0c4f79","savedPayload":{"position":{"x":42962.81206606433,"y":32536.11191906487},"targetPosition":{"x":42854.03161104044,"y":32139.56916241419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"9c1f6b84-409e-4257-92ea-a9481d3509cd"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"0fb9bb3b-4494-4b42-b56e-f573cdc5334d","savedPayload":{"position":{"x":42865.233053494434,"y":32568.478219851128},"targetPosition":{"x":42854.03161104044,"y":32139.56916241419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"dcd46168-1662-42c5-be91-f489d9a55833"}}}],"id":"f3af18cf-2e05-44d6-b397-511224ea20eb","savedPayload":{"position":{"x":42854.03161104044,"y":32139.56916241419},"targetPosition":{"x":42338.52785360633,"y":32191.754059284372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"822d3491-7c8a-4070-995d-4bfecb5b0688","savedPayload":{"position":{"x":11059.310898221442,"y":26584.53913491122},"targetPosition":{"x":11781.52161073548,"y":26457.347208375606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 74192.540823965,\n \"maxValue\": 83096.56208773998,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"2b19e799-46bb-490d-96d5-fd621d981908","savedPayload":{"position":{"x":42667.79239155896,"y":32289.33904419851},"targetPosition":{"x":42342.656729161856,"y":32314.96731970425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3cc81331-ccac-4bb9-8d45-42192a643ba0","savedPayload":{"position":{"x":42875.135955693084,"y":32507.778789344677},"targetPosition":{"x":42663.527060223234,"y":32469.51735106751},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"cc76acbb-9fd2-43f0-95de-dc78e1aaa2b5"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"62c9f317-67a3-40a0-975f-5741800ff014","savedPayload":{"position":{"x":42826.60322816436,"y":32609.541147366996},"targetPosition":{"x":42663.527060223234,"y":32469.51735106751},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"82148580-80cf-4a58-892f-bdaa3045f8f4","savedPayload":{"position":{"x":42663.527060223234,"y":32469.51735106751},"targetPosition":{"x":42342.656729161856,"y":32314.96731970425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"b58b38ec-3f93-4546-ae03-9703a1b598ae","savedPayload":{"position":{"x":11059.319335703329,"y":26330.074867957548},"targetPosition":{"x":11781.52161073548,"y":26457.347208375606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 29.75919814203639,\n \"maxValue\": 33.75919814203639,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"bc4416d4-3f06-4af6-8f62-e43e8cbc5116","savedPayload":{"position":{"x":42623.45869685996,"y":32394.560492777073},"targetPosition":{"x":42322.6844357122,"y":32375.14983165583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7a733452-b0a7-40c9-b125-232063be8278","savedPayload":{"position":{"x":42791.436771396475,"y":32620.448767941074},"targetPosition":{"x":42587.23269015913,"y":32551.559953431955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"302bfaf2-6466-4aa0-9924-33999366b774"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"740a587a-2c3b-4929-926b-fc9328e74e18","savedPayload":{"position":{"x":42729.311376448095,"y":32713.677064196065},"targetPosition":{"x":42587.23269015913,"y":32551.559953431955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"f6868e09-2559-4fac-9631-54cf1a867c8a"}}}],"id":"9a279e63-1952-40a5-a821-87e37c5adfb5","savedPayload":{"position":{"x":42587.23269015913,"y":32551.559953431955},"targetPosition":{"x":42322.6844357122,"y":32375.14983165583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"076d51b1-bb12-400d-a7c8-1d6fb246ee2c","savedPayload":{"position":{"x":11146.455194389207,"y":26090.71319740036},"targetPosition":{"x":11781.52161073548,"y":26457.347208375606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 29.75919814203639,\n \"maxValue\": 33.75919814203639,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"c4a87f46-2b52-4006-8374-0e6a5e50761b","savedPayload":{"position":{"x":42552.83013689099,"y":32574.161545471397},"targetPosition":{"x":42270.91991862074,"y":32478.456049869597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"efcd6198-1543-4759-8ec2-399f8d4bf7c1","savedPayload":{"position":{"x":42676.10274645685,"y":32733.099688398124},"targetPosition":{"x":42479.46607271537,"y":32716.6271792787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"be7e47ef-a530-4dc1-bf59-b731f1e49fa1"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"49d7cb0f-004a-4c1b-a5db-debd4ede1e57","savedPayload":{"position":{"x":42632.9315144281,"y":32814.263856680845},"targetPosition":{"x":42479.46607271537,"y":32716.6271792787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"0333bb7c-5101-441b-be9a-d9ff1a84f116"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"e265187d-cb1b-41de-bf7e-8cf3c20ad1c7","savedPayload":{"position":{"x":42566.183959459624,"y":32874.7659941593},"targetPosition":{"x":42479.46607271537,"y":32716.6271792787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"913f8079-b038-444a-ad43-465fa0443c04"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"e6d31fda-a0ed-4326-8fef-28ad3bd3715b","savedPayload":{"position":{"x":42469.41484989801,"y":32911.4024493272},"targetPosition":{"x":42479.46607271537,"y":32716.6271792787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"bba7e1ab-5bca-44c0-a8aa-cd9570b338f3"}}}],"id":"838f89da-8a06-4955-9408-18ffce705feb","savedPayload":{"position":{"x":42479.46607271537,"y":32716.6271792787},"targetPosition":{"x":42270.91991862074,"y":32478.456049869597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"23e9cb2a-1f22-4cd7-bc1e-e738dc04fc45","savedPayload":{"position":{"x":11310.231140664433,"y":25895.577069170104},"targetPosition":{"x":11781.52161073548,"y":26457.347208375606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"42fa724c-6a47-4f21-b4c9-ad0a2b82aecc","savedPayload":{"position":{"x":11316.956337479369,"y":25463.84837984102},"targetPosition":{"x":11531.162539362913,"y":25768.21007700819},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"da2768e3-4c52-4d18-97f5-31d2d63fd7de","savedPayload":{"position":{"x":11305.549744987344,"y":25091.62756134779},"targetPosition":{"x":11499.860541437516,"y":25403.24858781402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"c53d8a77-b1d4-446c-9bef-8458b832c5e5"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"73d11300-ea38-41a0-a608-060b5eb9adb5","savedPayload":{"position":{"x":11410.334128220973,"y":25047.05896259342},"targetPosition":{"x":11499.860541437516,"y":25403.24858781402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"0f1e10be-0da8-4d10-93d7-35e407579cb0"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"9676161d-dbdb-4cdd-a6ac-e24207f5ff7c","savedPayload":{"position":{"x":11525.22698288646,"y":25037.350872007155},"targetPosition":{"x":11499.860541437516,"y":25403.24858781402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"a85fc58e-5b58-449b-b733-c3a623e1d5d4"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"e4f9e69c-3646-4d25-af77-8717ad9ab66c","savedPayload":{"position":{"x":11638.423063800894,"y":25064.08261361805},"targetPosition":{"x":11499.860541437516,"y":25403.24858781402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"302de277-a428-4cc0-8757-b2ef7de6040b"}}}],"id":"b92dd34e-a93d-4eb6-a7e9-82da887e0bc2","savedPayload":{"position":{"x":11499.860541437516,"y":25403.24858781402},"targetPosition":{"x":11531.162539362913,"y":25768.21007700819},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"b7414a73-bfa6-47cf-a00a-5aeaf610be28","savedPayload":{"position":{"x":11531.033378139933,"y":25768.19959860262},"targetPosition":{"x":11781.52161073548,"y":26457.347208375606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"02aeaf0c-7fd2-441a-bb6e-f16d25e2d561","savedPayload":{"position":{"x":10976.3106832169,"y":24350.16106821107},"targetPosition":{"x":11343.062891749762,"y":24985.40702724926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":4565,"y":-155},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"WHB Trade # 9","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-11-09T21:08:50.834Z\",\n \"toDate\": \"2019-11-28T06:18:52.622Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"8a429473-e3d7-447f-8e48-783b960fd6d1","savedPayload":{"position":{"x":11629.130583225704,"y":27407.408206318847},"targetPosition":{"x":11879.689181809661,"y":26718.365732327995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 5983.680206799375,\n \"maxValue\": 9535.19927900478,\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"227d2451-2772-442a-9ada-b4b829784a3d","savedPayload":{"position":{"x":11408.350745055945,"y":27280.0446133403},"targetPosition":{"x":11879.689181809661,"y":26718.365732327995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"0e6f8b28-cb80-47f1-ba2e-69b2bbd8410f","savedPayload":{"position":{"x":11244.596797934655,"y":27084.91704035896},"targetPosition":{"x":11879.689181809661,"y":26718.365732327995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"07dcf3c4-3be1-466a-901d-cf707d9e3aac","savedPayload":{"position":{"x":42889.02741223492,"y":31980.252300445285},"targetPosition":{"x":42952.19918211462,"y":32400.58768636658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"431ea989-085b-40ae-aa2a-d371d7cb68c6"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"d85a3b7a-25bf-4910-a98f-6d38f887ed2b","savedPayload":{"position":{"x":42974.22864841696,"y":31991.80079263809},"targetPosition":{"x":42952.19918211462,"y":32400.58768636658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"ddd34b26-4fa8-4d7c-b76d-f671c92a6181"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"98d9e2bc-c427-4f32-83bf-5169a7dfebed","savedPayload":{"position":{"x":43052.214361586055,"y":32019.990024228046},"targetPosition":{"x":42952.19918211462,"y":32400.58768636658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"683e24f7-010a-412e-ba21-f280e63a0f1d"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c2658e2e-69ab-435a-b25a-03e0afe1feb0","savedPayload":{"position":{"x":43122.05291375436,"y":32061.851148324466},"targetPosition":{"x":42952.19918211462,"y":32400.58768636658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"210b7e14-a6f0-4c56-b5e4-108f57ebb4c6"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"bc89c88c-e650-43dd-8259-1a446a881652","savedPayload":{"position":{"x":43182.23701911412,"y":32115.5793829702},"targetPosition":{"x":42952.19918211462,"y":32400.58768636658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"303572ad-cc90-46c9-8620-8454d557897b"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2768e244-11b5-4632-803c-a1e5102e06d4","savedPayload":{"position":{"x":43231.195212480496,"y":32179.240673538385},"targetPosition":{"x":42952.19918211462,"y":32400.58768636658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"10142313-9ac8-4f4c-8105-88aec7bb7ce9"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"27b9b31c-1025-4b29-9d76-c5782edece6c","savedPayload":{"position":{"x":43267.49474658376,"y":32250.67733455299},"targetPosition":{"x":42952.19918211462,"y":32400.58768636658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"afbf02cf-97a6-4dc0-a3d5-95f29ba7781f"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f5e60174-4bf4-4f14-b5d6-5a5a2a790a1b","savedPayload":{"position":{"x":43290.01874905957,"y":32327.48823938613},"targetPosition":{"x":42952.19918211462,"y":32400.58768636658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"80ed873e-8017-45ec-b211-fc4604f5aaf6"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9d38671e-6b57-4755-84d1-242cf040c0bc","savedPayload":{"position":{"x":43297.98888861103,"y":32407.08615525659},"targetPosition":{"x":42952.19918211462,"y":32400.58768636658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"6635502b-5366-430e-8dc1-4edaa21c2a7f"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"1783ebc4-02ba-456e-9822-f3ce49a81ac9","savedPayload":{"position":{"x":43291.16082914507,"y":32486.753668087607},"targetPosition":{"x":42952.19918211462,"y":32400.58768636658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"3ebce074-9080-426a-baf9-61c1a04fc05b"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"b0ca8c0d-e781-4b44-bdf3-af88bf836382","savedPayload":{"position":{"x":43269.86334015103,"y":32563.815331316848},"targetPosition":{"x":42952.19918211462,"y":32400.58768636658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"c424ba00-bbe0-4ae9-830a-3d2aa6fcaf4d"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"a7c4e2b4-bf2c-40a6-8456-33d12e1d5403","savedPayload":{"position":{"x":43234.78871655144,"y":32635.65972044866},"targetPosition":{"x":42952.19918211462,"y":32400.58768636658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"3d048c1f-d45a-442a-9d44-362ad7770bb6"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"78fd1ec3-3b87-4b48-a383-f31007e60f0e","savedPayload":{"position":{"x":43187.13696329553,"y":32699.862192792796},"targetPosition":{"x":42952.19918211462,"y":32400.58768636658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c92d9454-d5fb-4954-a188-367dcd697af6"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"949965e1-5a9d-4cb8-b481-bbe7764c0a7d","savedPayload":{"position":{"x":43128.51917314311,"y":32754.24908422047},"targetPosition":{"x":42952.19918211462,"y":32400.58768636658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"4810638a-c137-4df6-8016-c8a2540dc9e7"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"55e22f3a-271d-46a2-91f1-94b2c6e300d3","savedPayload":{"position":{"x":43060.97963713852,"y":32797.13044301726},"targetPosition":{"x":42952.19918211462,"y":32400.58768636658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"9c1f6b84-409e-4257-92ea-a9481d3509cd"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"faf88377-ddf0-4699-b138-03783fcb476a","savedPayload":{"position":{"x":42963.40062456862,"y":32829.49674380352},"targetPosition":{"x":42952.19918211462,"y":32400.58768636658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"dcd46168-1662-42c5-be91-f489d9a55833"}}}],"id":"2262f166-6b25-46b4-9814-baffc20fe631","savedPayload":{"position":{"x":42952.19918211462,"y":32400.58768636658},"targetPosition":{"x":42436.69542468051,"y":32452.77258323676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"8edeb70b-63c4-4e7f-9e14-6a473802514a","savedPayload":{"position":{"x":11157.478469295622,"y":26845.55765886361},"targetPosition":{"x":11879.689181809661,"y":26718.365732327995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 72312.36765037113,\n \"maxValue\": 81216.38891414611,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"56827497-209e-4f9c-bc0c-c84c4fd931e8","savedPayload":{"position":{"x":42765.95996263315,"y":32550.3575681509},"targetPosition":{"x":42440.82430023604,"y":32575.98584365664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d287f373-4519-4caf-b080-918b1d2e1840","savedPayload":{"position":{"x":42973.30352676727,"y":32768.797313297066},"targetPosition":{"x":42761.69463129742,"y":32730.535875019898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"cc76acbb-9fd2-43f0-95de-dc78e1aaa2b5"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"d92d865d-1158-4a51-bbb7-0e76d3bcfb31","savedPayload":{"position":{"x":42924.77079923854,"y":32870.55967131938},"targetPosition":{"x":42761.69463129742,"y":32730.535875019898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"619c5cb3-1f4d-46db-be55-af5513a25480","savedPayload":{"position":{"x":42761.69463129742,"y":32730.535875019898},"targetPosition":{"x":42440.82430023604,"y":32575.98584365664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"57134893-5d42-47c4-a33e-b626daee3d31","savedPayload":{"position":{"x":11157.486906777509,"y":26591.093391909937},"targetPosition":{"x":11879.689181809661,"y":26718.365732327995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 28.914558122478873,\n \"maxValue\": 32.91455812247887,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"a398389e-cfd6-464e-ae05-aaf19d8cee9a","savedPayload":{"position":{"x":42721.626267934145,"y":32655.57901672946},"targetPosition":{"x":42420.85200678639,"y":32636.16835560822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ba164ed9-fd73-4cac-b34c-6adf31a6e4c9","savedPayload":{"position":{"x":42889.60434247066,"y":32881.46729189347},"targetPosition":{"x":42685.40026123331,"y":32812.57847738435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"302bfaf2-6466-4aa0-9924-33999366b774"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e6830035-9dd4-4c7e-b971-1ac218d2ce22","savedPayload":{"position":{"x":42827.47894752228,"y":32974.695588148454},"targetPosition":{"x":42685.40026123331,"y":32812.57847738435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"f6868e09-2559-4fac-9631-54cf1a867c8a"}}}],"id":"07b26510-17ec-4a75-9f58-4b12435dce8f","savedPayload":{"position":{"x":42685.40026123331,"y":32812.57847738435},"targetPosition":{"x":42420.85200678639,"y":32636.16835560822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"562868e3-1c8b-42ae-9daa-41c11847c0a8","savedPayload":{"position":{"x":11244.622765463388,"y":26351.73172135275},"targetPosition":{"x":11879.689181809661,"y":26718.365732327995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 28.914558122478873,\n \"maxValue\": 32.91455812247887,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"b913fd8d-1b3c-4253-a112-fa09c0040e79","savedPayload":{"position":{"x":42650.99770796517,"y":32835.18006942379},"targetPosition":{"x":42369.087489694924,"y":32739.474573821986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"18b734d8-9a69-4453-aa2a-0df37ee0517b","savedPayload":{"position":{"x":42774.27031753103,"y":32994.11821235051},"targetPosition":{"x":42577.63364378955,"y":32977.64570323109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"be7e47ef-a530-4dc1-bf59-b731f1e49fa1"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"040ca19e-2172-43a4-9460-1e61b8433fa5","savedPayload":{"position":{"x":42731.09908550228,"y":33075.28238063323},"targetPosition":{"x":42577.63364378955,"y":32977.64570323109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"0333bb7c-5101-441b-be9a-d9ff1a84f116"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"f9deb48c-4a21-4e77-8668-e50d14cb2561","savedPayload":{"position":{"x":42664.35153053381,"y":33135.784518111686},"targetPosition":{"x":42577.63364378955,"y":32977.64570323109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"913f8079-b038-444a-ad43-465fa0443c04"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"836c53e8-cdba-47fa-8a88-25c2a1f23639","savedPayload":{"position":{"x":42567.58242097219,"y":33172.420973279586},"targetPosition":{"x":42577.63364378955,"y":32977.64570323109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"bba7e1ab-5bca-44c0-a8aa-cd9570b338f3"}}}],"id":"814a1ba2-d80a-4a39-b641-5a6f389b3ce8","savedPayload":{"position":{"x":42577.63364378955,"y":32977.64570323109},"targetPosition":{"x":42369.087489694924,"y":32739.474573821986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"a005d251-3ea7-4024-a5c6-2044cd4fc51b","savedPayload":{"position":{"x":11408.398711738613,"y":26156.595593122493},"targetPosition":{"x":11879.689181809661,"y":26718.365732327995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"bea12df8-31b9-4455-9e84-85a5cba981e9","savedPayload":{"position":{"x":11415.123908553549,"y":25724.86690379341},"targetPosition":{"x":11629.330110437093,"y":26029.228600960578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"fc8b39a8-0890-4946-ac98-ba9ccdb1205b","savedPayload":{"position":{"x":11403.717316061524,"y":25352.646085300177},"targetPosition":{"x":11598.028112511696,"y":25664.26711176641},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"c53d8a77-b1d4-446c-9bef-8458b832c5e5"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"6a161094-b86c-441a-bad2-4e28cbe91ddb","savedPayload":{"position":{"x":11508.501699295153,"y":25308.077486545808},"targetPosition":{"x":11598.028112511696,"y":25664.26711176641},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"0f1e10be-0da8-4d10-93d7-35e407579cb0"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"1e739a78-3147-40b3-b5c8-02999c56b0da","savedPayload":{"position":{"x":11623.39455396064,"y":25298.369395959544},"targetPosition":{"x":11598.028112511696,"y":25664.26711176641},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"a85fc58e-5b58-449b-b733-c3a623e1d5d4"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"e2ea6353-9f39-41de-9cd5-f79b25694088","savedPayload":{"position":{"x":11736.590634875074,"y":25325.10113757044},"targetPosition":{"x":11598.028112511696,"y":25664.26711176641},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"302de277-a428-4cc0-8757-b2ef7de6040b"}}}],"id":"27d917fc-f2c3-4770-816b-bb0c456c2c5e","savedPayload":{"position":{"x":11598.028112511696,"y":25664.26711176641},"targetPosition":{"x":11629.330110437093,"y":26029.228600960578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1770,"y":80},"width":150,"height":330,"radius":0}}},"id":"c62b2d86-4d42-4ea7-8286-542093df4c50","savedPayload":{"position":{"x":11629.200949214113,"y":26029.21812255501},"targetPosition":{"x":11879.689181809661,"y":26718.365732327995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"59d377e6-717b-418a-8573-75684df8ee0e","savedPayload":{"position":{"x":11343.057713338505,"y":24251.875393001086},"targetPosition":{"x":11343.062891749762,"y":24985.40702724926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":4915,"y":-155},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"WHB Trade # 10","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-01-18T19:42:53.927Z\",\n \"toDate\": \"2020-01-30T14:03:43.072Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"98a6f8c8-092d-442c-bc8c-a10fbb675dfb","savedPayload":{"position":{"x":11738.70827859202,"y":27626.07566372738},"targetPosition":{"x":11989.266877175976,"y":26937.03318973653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 7106.159183677988,\n \"maxValue\": 9379.131389889448,\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"575b5329-5331-4b84-9197-eb2d8887fd01","savedPayload":{"position":{"x":11517.92844042226,"y":27498.712070748832},"targetPosition":{"x":11989.266877175976,"y":26937.03318973653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"1859a9dd-9674-4864-9ae9-25de0a46d1fb","savedPayload":{"position":{"x":11354.17449330097,"y":27303.584497767493},"targetPosition":{"x":11989.266877175976,"y":26937.03318973653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"6f6b77a1-4b88-4859-a964-cd732f62526a","savedPayload":{"position":{"x":42998.60510760124,"y":32198.91975785382},"targetPosition":{"x":43061.77687748094,"y":32619.255143775114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"431ea989-085b-40ae-aa2a-d371d7cb68c6"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"745e9941-3b1d-45fe-a988-632ea177da22","savedPayload":{"position":{"x":43083.806343783275,"y":32210.468250046622},"targetPosition":{"x":43061.77687748094,"y":32619.255143775114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"ddd34b26-4fa8-4d7c-b76d-f671c92a6181"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"391cc8d4-d64c-4a5f-91f0-3290e5326884","savedPayload":{"position":{"x":43161.79205695237,"y":32238.65748163658},"targetPosition":{"x":43061.77687748094,"y":32619.255143775114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"683e24f7-010a-412e-ba21-f280e63a0f1d"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5dab827a-b68e-4341-b20a-ce05fa7b1007","savedPayload":{"position":{"x":43231.63060912068,"y":32280.518605733},"targetPosition":{"x":43061.77687748094,"y":32619.255143775114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"210b7e14-a6f0-4c56-b5e4-108f57ebb4c6"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"68e86dc8-9863-4d4a-abe8-3bd536f0025b","savedPayload":{"position":{"x":43291.81471448044,"y":32334.246840378735},"targetPosition":{"x":43061.77687748094,"y":32619.255143775114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"303572ad-cc90-46c9-8620-8454d557897b"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"56b2bb77-3288-4977-9b9d-eab529fb23ff","savedPayload":{"position":{"x":43340.77290784681,"y":32397.90813094692},"targetPosition":{"x":43061.77687748094,"y":32619.255143775114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"10142313-9ac8-4f4c-8105-88aec7bb7ce9"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b2bebecd-ca6d-4892-ba4a-13c313ae05c6","savedPayload":{"position":{"x":43377.07244195008,"y":32469.344791961525},"targetPosition":{"x":43061.77687748094,"y":32619.255143775114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"afbf02cf-97a6-4dc0-a3d5-95f29ba7781f"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"dd48e944-364b-46af-bbe4-3845dd69d8fe","savedPayload":{"position":{"x":43399.596444425886,"y":32546.155696794664},"targetPosition":{"x":43061.77687748094,"y":32619.255143775114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"80ed873e-8017-45ec-b211-fc4604f5aaf6"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c0a25e05-9d34-4ea7-b891-d35e5192076d","savedPayload":{"position":{"x":43407.56658397734,"y":32625.753612665125},"targetPosition":{"x":43061.77687748094,"y":32619.255143775114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"6635502b-5366-430e-8dc1-4edaa21c2a7f"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0897f11f-5f48-44e9-8295-8a2e08d86e8d","savedPayload":{"position":{"x":43400.738524511384,"y":32705.42112549614},"targetPosition":{"x":43061.77687748094,"y":32619.255143775114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"3ebce074-9080-426a-baf9-61c1a04fc05b"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"5371e758-103d-442f-9dea-3628ae9a21bf","savedPayload":{"position":{"x":43379.441035517346,"y":32782.48278872538},"targetPosition":{"x":43061.77687748094,"y":32619.255143775114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"c424ba00-bbe0-4ae9-830a-3d2aa6fcaf4d"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"07df72e6-d52c-433a-a80a-0b5714c75a64","savedPayload":{"position":{"x":43344.366411917756,"y":32854.327177857194},"targetPosition":{"x":43061.77687748094,"y":32619.255143775114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"3d048c1f-d45a-442a-9d44-362ad7770bb6"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"9b25541d-ee6e-427c-895e-58bdcd2cda65","savedPayload":{"position":{"x":43296.71465866185,"y":32918.52965020133},"targetPosition":{"x":43061.77687748094,"y":32619.255143775114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c92d9454-d5fb-4954-a188-367dcd697af6"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"8f00f381-3ddc-4ee6-b06c-471da7d86acf","savedPayload":{"position":{"x":43238.09686850943,"y":32972.916541629005},"targetPosition":{"x":43061.77687748094,"y":32619.255143775114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"4810638a-c137-4df6-8016-c8a2540dc9e7"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"00ca2842-8540-45d4-bbeb-c4922bf788e5","savedPayload":{"position":{"x":43170.55733250483,"y":33015.797900425794},"targetPosition":{"x":43061.77687748094,"y":32619.255143775114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"9c1f6b84-409e-4257-92ea-a9481d3509cd"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"6dc21603-6d82-48b7-b71d-06a15b3e7bcf","savedPayload":{"position":{"x":43072.97831993493,"y":33048.16420121205},"targetPosition":{"x":43061.77687748094,"y":32619.255143775114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"dcd46168-1662-42c5-be91-f489d9a55833"}}}],"id":"b72e9357-aafa-45f4-a929-7bb0e6c0d925","savedPayload":{"position":{"x":43061.77687748094,"y":32619.255143775114},"targetPosition":{"x":42546.273120046826,"y":32671.440040645295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"25645ea6-200e-4ab5-8c4e-54ee1ae91b4b","savedPayload":{"position":{"x":11267.056164661937,"y":27064.225116272144},"targetPosition":{"x":11989.266877175976,"y":26937.03318973653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 76032.44400773366,\n \"maxValue\": 84936.46527150864,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"48fce367-35e2-4175-affc-5864e62f5d5e","savedPayload":{"position":{"x":42875.53765799946,"y":32769.02502555943},"targetPosition":{"x":42550.401995602355,"y":32794.65330106518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"cf491202-2614-4d8c-9d17-644ca7fcf220","savedPayload":{"position":{"x":43082.88122213358,"y":32987.4647707056},"targetPosition":{"x":42871.27232666373,"y":32949.20333242843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"cc76acbb-9fd2-43f0-95de-dc78e1aaa2b5"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"58fa9a6d-7b2e-43ab-8396-e85600681c87","savedPayload":{"position":{"x":43034.348494604856,"y":33089.227128727915},"targetPosition":{"x":42871.27232666373,"y":32949.20333242843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"cfd2809f-9528-4d5c-83cc-912b0c4dd3b6","savedPayload":{"position":{"x":42871.27232666373,"y":32949.20333242843},"targetPosition":{"x":42550.401995602355,"y":32794.65330106518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"7c1ae7ad-da91-4822-a9a4-8d6956c2277a","savedPayload":{"position":{"x":11267.064602143824,"y":26809.76084931847},"targetPosition":{"x":11989.266877175976,"y":26937.03318973653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 30.585747463635208,\n \"maxValue\": 34.58574746363521,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"4764ede7-f519-4e52-a09b-3a4210c37f3a","savedPayload":{"position":{"x":42831.20396330046,"y":32874.246474137995},"targetPosition":{"x":42530.4297021527,"y":32854.835813016754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f3141c64-4340-4ed5-8d45-7179db29ed91","savedPayload":{"position":{"x":42999.182037836974,"y":33100.134749302},"targetPosition":{"x":42794.97795659963,"y":33031.24593479288},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"302bfaf2-6466-4aa0-9924-33999366b774"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"77140395-d758-4ff0-b451-2227ef8a2c65","savedPayload":{"position":{"x":42937.056642888594,"y":33193.36304555699},"targetPosition":{"x":42794.97795659963,"y":33031.24593479288},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"f6868e09-2559-4fac-9631-54cf1a867c8a"}}}],"id":"0a0cecb2-a9cf-40c7-865a-359d79af91ba","savedPayload":{"position":{"x":42794.97795659963,"y":33031.24593479288},"targetPosition":{"x":42530.4297021527,"y":32854.835813016754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"bdddb90a-9c8a-4a9a-b53f-782eaccfd600","savedPayload":{"position":{"x":11354.200460829703,"y":26570.399178761283},"targetPosition":{"x":11989.266877175976,"y":26937.03318973653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 30.585747463635208,\n \"maxValue\": 34.58574746363521,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"5f13d8d4-680e-4e3e-8ee5-9a568f09d1e8","savedPayload":{"position":{"x":42760.57540333149,"y":33053.84752683232},"targetPosition":{"x":42478.66518506124,"y":32958.14203123052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e956847b-5bdf-40a1-b709-f7a305405781","savedPayload":{"position":{"x":42883.848012897346,"y":33212.78566975905},"targetPosition":{"x":42687.21133915587,"y":33196.31316063962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"be7e47ef-a530-4dc1-bf59-b731f1e49fa1"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a4980108-3c0d-45fb-aa84-a50aeea707f1","savedPayload":{"position":{"x":42840.6767808686,"y":33293.949838041764},"targetPosition":{"x":42687.21133915587,"y":33196.31316063962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"0333bb7c-5101-441b-be9a-d9ff1a84f116"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"22d74fe7-172e-45b8-b26d-5343c5c9bde5","savedPayload":{"position":{"x":42773.92922590012,"y":33354.45197552022},"targetPosition":{"x":42687.21133915587,"y":33196.31316063962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"913f8079-b038-444a-ad43-465fa0443c04"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"25d5b1e9-1e9d-44f6-bb35-2f1f9839a3e6","savedPayload":{"position":{"x":42677.160116338506,"y":33391.08843068812},"targetPosition":{"x":42687.21133915587,"y":33196.31316063962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"bba7e1ab-5bca-44c0-a8aa-cd9570b338f3"}}}],"id":"7a54e7c2-7189-4f18-b62e-f6463b1f6c0e","savedPayload":{"position":{"x":42687.21133915587,"y":33196.31316063962},"targetPosition":{"x":42478.66518506124,"y":32958.14203123052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"f24234bf-a0bb-4ea4-ba30-c17c410f56cf","savedPayload":{"position":{"x":11517.976407104929,"y":26375.263050531026},"targetPosition":{"x":11989.266877175976,"y":26937.03318973653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"4c1de588-e7b4-405d-9903-08a61fa184c3","savedPayload":{"position":{"x":11524.701603919864,"y":25943.534361201942},"targetPosition":{"x":11738.907805803408,"y":26247.89605836911},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"26582e8d-8e8e-4277-a9c8-bf6f5c4bce6e","savedPayload":{"position":{"x":11513.29501142784,"y":25571.31354270871},"targetPosition":{"x":11707.605807878012,"y":25882.934569174944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"c53d8a77-b1d4-446c-9bef-8458b832c5e5"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"d4c8bd3f-5aac-450d-ab46-995966eba13e","savedPayload":{"position":{"x":11618.079394661469,"y":25526.74494395434},"targetPosition":{"x":11707.605807878012,"y":25882.934569174944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"0f1e10be-0da8-4d10-93d7-35e407579cb0"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"1de58ab7-2cc5-46cd-9392-2c96e298fe56","savedPayload":{"position":{"x":11732.972249326955,"y":25517.036853368078},"targetPosition":{"x":11707.605807878012,"y":25882.934569174944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"a85fc58e-5b58-449b-b733-c3a623e1d5d4"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"b7d9dbf7-7577-42c2-8a5f-60faa8487f65","savedPayload":{"position":{"x":11846.16833024139,"y":25543.768594978974},"targetPosition":{"x":11707.605807878012,"y":25882.934569174944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"302de277-a428-4cc0-8757-b2ef7de6040b"}}}],"id":"efb5079f-c3e9-42dd-b6ff-5831e92ac089","savedPayload":{"position":{"x":11707.605807878012,"y":25882.934569174944},"targetPosition":{"x":11738.907805803408,"y":26247.89605836911},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"35a4f6af-aa18-44e7-b1fd-ce61b27c9f4c","savedPayload":{"position":{"x":11738.778644580429,"y":26247.885579963542},"targetPosition":{"x":11989.266877175976,"y":26937.03318973653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ced23c1d-e508-43c9-a953-f6252a28cbfe","savedPayload":{"position":{"x":11709.722789191848,"y":24350.167578743563},"targetPosition":{"x":11343.062891749762,"y":24985.40702724926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":5265,"y":-155},"width":240,"height":113.625,"radius":0}}},{"type":"Time Machine","name":"WHB Trade # 11","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-03-05T09:20:18.418Z\",\n \"toDate\": \"2020-03-17T03:41:07.563Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"47125248-3963-4f0f-8209-9108d87d04da","savedPayload":{"position":{"x":11899.616003917567,"y":27812.19867481452},"targetPosition":{"x":12150.174602501524,"y":27123.15620082367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 4062.9504478174003,\n \"maxValue\": 9718.8326479775,\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"c93cf7d4-5f6c-4ec0-a56e-bbc4ca09cd2f","savedPayload":{"position":{"x":11678.836165747807,"y":27684.835081835972},"targetPosition":{"x":12150.174602501524,"y":27123.15620082367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"44537787-7af6-4bb9-8264-f1a5adcd3619","savedPayload":{"position":{"x":11515.082218626518,"y":27489.707508854633},"targetPosition":{"x":12150.174602501524,"y":27123.15620082367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"c1e22b52-fe76-4cd6-8fe8-c9254cc4f981","savedPayload":{"position":{"x":43159.51283292678,"y":32385.04276894096},"targetPosition":{"x":43222.68460280648,"y":32805.37815486225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"431ea989-085b-40ae-aa2a-d371d7cb68c6"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"ff2b5b7c-c2f8-4227-a0a2-4a0c45ae40ce","savedPayload":{"position":{"x":43244.71406910882,"y":32396.591261133763},"targetPosition":{"x":43222.68460280648,"y":32805.37815486225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"ddd34b26-4fa8-4d7c-b76d-f671c92a6181"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"76f979fe-d00d-407e-9db9-1d9780be9c42","savedPayload":{"position":{"x":43322.699782277916,"y":32424.78049272372},"targetPosition":{"x":43222.68460280648,"y":32805.37815486225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"683e24f7-010a-412e-ba21-f280e63a0f1d"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"59e12e38-c23e-40a4-8248-0c0ce1d2b1c1","savedPayload":{"position":{"x":43392.538334446224,"y":32466.64161682014},"targetPosition":{"x":43222.68460280648,"y":32805.37815486225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"210b7e14-a6f0-4c56-b5e4-108f57ebb4c6"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c54d28a3-6600-476d-bf82-56b318df7dbf","savedPayload":{"position":{"x":43452.722439805984,"y":32520.369851465875},"targetPosition":{"x":43222.68460280648,"y":32805.37815486225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"303572ad-cc90-46c9-8620-8454d557897b"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"1f98d80f-b1a9-45d0-8ad6-0ae82c8e0dfc","savedPayload":{"position":{"x":43501.68063317236,"y":32584.03114203406},"targetPosition":{"x":43222.68460280648,"y":32805.37815486225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"10142313-9ac8-4f4c-8105-88aec7bb7ce9"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"04e51237-a6d6-44f4-838c-48e9537dae12","savedPayload":{"position":{"x":43537.98016727562,"y":32655.467803048665},"targetPosition":{"x":43222.68460280648,"y":32805.37815486225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"afbf02cf-97a6-4dc0-a3d5-95f29ba7781f"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e33eed45-0fd3-4d26-866d-cce07b26c713","savedPayload":{"position":{"x":43560.50416975143,"y":32732.278707881804},"targetPosition":{"x":43222.68460280648,"y":32805.37815486225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"80ed873e-8017-45ec-b211-fc4604f5aaf6"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0b6c5795-3e37-4947-b93d-77b6a2cfeaf0","savedPayload":{"position":{"x":43568.47430930289,"y":32811.876623752265},"targetPosition":{"x":43222.68460280648,"y":32805.37815486225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"6635502b-5366-430e-8dc1-4edaa21c2a7f"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a78aeeef-9dcc-4399-9eb9-946aac2a9145","savedPayload":{"position":{"x":43561.64624983693,"y":32891.54413658328},"targetPosition":{"x":43222.68460280648,"y":32805.37815486225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"3ebce074-9080-426a-baf9-61c1a04fc05b"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"ca109357-bfff-43c2-98f2-5cf89f43a7b1","savedPayload":{"position":{"x":43540.34876084289,"y":32968.60579981252},"targetPosition":{"x":43222.68460280648,"y":32805.37815486225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"c424ba00-bbe0-4ae9-830a-3d2aa6fcaf4d"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"a8933829-4b1f-4797-92c2-87aac439d582","savedPayload":{"position":{"x":43505.2741372433,"y":33040.450188944335},"targetPosition":{"x":43222.68460280648,"y":32805.37815486225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"3d048c1f-d45a-442a-9d44-362ad7770bb6"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"793fe9de-437e-41fb-94d0-153a31ca7f6c","savedPayload":{"position":{"x":43457.62238398739,"y":33104.65266128847},"targetPosition":{"x":43222.68460280648,"y":32805.37815486225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c92d9454-d5fb-4954-a188-367dcd697af6"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"fa4988dd-e78d-4865-a934-9fa7edeb5553","savedPayload":{"position":{"x":43399.00459383497,"y":33159.039552716145},"targetPosition":{"x":43222.68460280648,"y":32805.37815486225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"4810638a-c137-4df6-8016-c8a2540dc9e7"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"37c30830-ce1d-4285-aceb-6bf77f2eb86f","savedPayload":{"position":{"x":43331.46505783038,"y":33201.920911512934},"targetPosition":{"x":43222.68460280648,"y":32805.37815486225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"9c1f6b84-409e-4257-92ea-a9481d3509cd"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"8155a7ef-07f6-4713-b702-4d3e5f79d7e6","savedPayload":{"position":{"x":43233.88604526048,"y":33234.28721229919},"targetPosition":{"x":43222.68460280648,"y":32805.37815486225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"dcd46168-1662-42c5-be91-f489d9a55833"}}}],"id":"58427736-dd2c-4e79-8afc-b27d69390e49","savedPayload":{"position":{"x":43222.68460280648,"y":32805.37815486225},"targetPosition":{"x":42707.18084537237,"y":32857.56305173243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"1362bf92-f1c3-4bf6-880e-7ba9c233485d","savedPayload":{"position":{"x":11427.963889987484,"y":27250.348127359284},"targetPosition":{"x":12150.174602501524,"y":27123.15620082367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 80325.55143652721,\n \"maxValue\": 89229.57270030219,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"5c62f816-9dea-4a9f-97a6-a6bfd57a0056","savedPayload":{"position":{"x":43036.44538332501,"y":32955.14803664657},"targetPosition":{"x":42711.3097209279,"y":32980.77631215232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7e61aa38-9dc5-412e-aa24-8e34a9bbe77f","savedPayload":{"position":{"x":43243.78894745913,"y":33173.58778179274},"targetPosition":{"x":43032.18005198928,"y":33135.32634351557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"cc76acbb-9fd2-43f0-95de-dc78e1aaa2b5"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"dda2e094-1c7b-4dd2-8fcc-8e4e6be22831","savedPayload":{"position":{"x":43195.2562199304,"y":33275.350139815055},"targetPosition":{"x":43032.18005198928,"y":33135.32634351557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"1a954b5c-1054-4d19-8534-f2c192aa1673","savedPayload":{"position":{"x":43032.18005198928,"y":33135.32634351557},"targetPosition":{"x":42711.3097209279,"y":32980.77631215232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"e7edf2bb-eeda-4e7b-9c54-2e3f6845ae19","savedPayload":{"position":{"x":11427.972327469372,"y":26995.88386040561},"targetPosition":{"x":12150.174602501524,"y":27123.15620082367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 32.514362547365785,\n \"maxValue\": 36.514362547365785,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"154f3b50-8bc0-4c1f-a4a6-8ce6fe5ccd78","savedPayload":{"position":{"x":42992.111688626006,"y":33060.369485225136},"targetPosition":{"x":42691.33742747825,"y":33040.958824103895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"795caa8b-5c99-402a-8e4d-123b2aded5c9","savedPayload":{"position":{"x":43160.08976316252,"y":33286.25776038914},"targetPosition":{"x":42955.885681925174,"y":33217.36894588002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"302bfaf2-6466-4aa0-9924-33999366b774"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8ffc3c20-2906-4f2e-bae8-5f49caa2add2","savedPayload":{"position":{"x":43097.96436821414,"y":33379.48605664413},"targetPosition":{"x":42955.885681925174,"y":33217.36894588002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"f6868e09-2559-4fac-9631-54cf1a867c8a"}}}],"id":"9515dcad-f9a5-4586-8bad-c1193430ea46","savedPayload":{"position":{"x":42955.885681925174,"y":33217.36894588002},"targetPosition":{"x":42691.33742747825,"y":33040.958824103895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"cbd30e61-af44-4269-a3a7-37b2c4db75b6","savedPayload":{"position":{"x":11515.10818615525,"y":26756.522189848423},"targetPosition":{"x":12150.174602501524,"y":27123.15620082367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": 32.514362547365785,\n \"maxValue\": 36.514362547365785,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"5cebf736-2d10-4360-aafd-307733ead85f","savedPayload":{"position":{"x":42921.48312865703,"y":33239.970537919464},"targetPosition":{"x":42639.572910386785,"y":33144.26504231766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"MACD 122609","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"122a0a76-abf2-4527-ae0c-f7b920ba5c7a","savedPayload":{"position":{"x":43044.75573822289,"y":33398.90868084619},"targetPosition":{"x":42848.11906448141,"y":33382.43617172676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 122609","id":"be7e47ef-a530-4dc1-bf59-b731f1e49fa1"}}},{"type":"Layer","name":"MACD 031016","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c4607111-6458-4d21-b886-e5dadb5a0fa4","savedPayload":{"position":{"x":43001.58450619414,"y":33480.072849128905},"targetPosition":{"x":42848.11906448141,"y":33382.43617172676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 031016","id":"0333bb7c-5101-441b-be9a-d9ff1a84f116"}}},{"type":"Layer","name":"MACD 081709","code":"{ \n\"status\": \"off\"\n}","id":"45264514-69ad-4453-9257-73ef6ea659b0","savedPayload":{"position":{"x":42934.83695122567,"y":33540.57498660736},"targetPosition":{"x":42848.11906448141,"y":33382.43617172676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 081709","id":"913f8079-b038-444a-ad43-465fa0443c04"}}},{"type":"Layer","name":"MACD 245209","code":"{ \n\"status\": \"off\"\n}","id":"0258c5ab-a4a8-4e56-9795-624d45ce4c9b","savedPayload":{"position":{"x":42838.06784166405,"y":33577.21144177526},"targetPosition":{"x":42848.11906448141,"y":33382.43617172676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"MACD 245209","id":"bba7e1ab-5bca-44c0-a8aa-cd9570b338f3"}}}],"id":"b6d0e089-22b1-42d3-aad1-fd2a6de66f08","savedPayload":{"position":{"x":42848.11906448141,"y":33382.43617172676},"targetPosition":{"x":42639.572910386785,"y":33144.26504231766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"1aef5241-cf7a-48d6-ab75-02851a10a3ae","savedPayload":{"position":{"x":11678.884132430476,"y":26561.386061618166},"targetPosition":{"x":12150.174602501524,"y":27123.15620082367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"7e2524b6-6239-4ce3-ab5c-e0299b715292","savedPayload":{"position":{"x":11685.609329245412,"y":26129.657372289083},"targetPosition":{"x":11899.815531128956,"y":26434.01906945625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"9bc1f57a-9343-4916-9d0d-a782b0c98110","savedPayload":{"position":{"x":11674.202736753386,"y":25757.43655379585},"targetPosition":{"x":11868.513533203559,"y":26069.057580262084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"c53d8a77-b1d4-446c-9bef-8458b832c5e5"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"a7797830-829f-417c-8960-90b8c276b39b","savedPayload":{"position":{"x":11778.987119987016,"y":25712.86795504148},"targetPosition":{"x":11868.513533203559,"y":26069.057580262084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"0f1e10be-0da8-4d10-93d7-35e407579cb0"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"8e4d0dba-7c6d-43a2-a9b6-4538233276fc","savedPayload":{"position":{"x":11893.879974652502,"y":25703.159864455218},"targetPosition":{"x":11868.513533203559,"y":26069.057580262084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"a85fc58e-5b58-449b-b733-c3a623e1d5d4"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"f6d69dd3-2ea6-4b0c-8126-529cad1b2f78","savedPayload":{"position":{"x":12007.076055566937,"y":25729.891606066114},"targetPosition":{"x":11868.513533203559,"y":26069.057580262084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"302de277-a428-4cc0-8757-b2ef7de6040b"}}}],"id":"9d9e0447-6aa0-4697-a4a0-2ac3fe3d0ae3","savedPayload":{"position":{"x":11868.513533203559,"y":26069.057580262084},"targetPosition":{"x":11899.815531128956,"y":26434.01906945625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1770,"y":80},"width":150,"height":330,"radius":0}}},"id":"cb32315d-5eaf-4764-b0dd-c62e4d0e2b8a","savedPayload":{"position":{"x":11899.686369905976,"y":26434.008591050682},"targetPosition":{"x":12150.174602501524,"y":27123.15620082367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"989eea5e-2566-4b6c-b13a-049f0d46c22f","savedPayload":{"position":{"x":11978.225325363901,"y":24618.7842348034},"targetPosition":{"x":11343.062891749762,"y":24985.40702724926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":5615,"y":-155},"width":240,"height":113.625,"radius":0}}}],"id":"0a338aca-e2d3-4a35-917e-e6be81cb97bf","savedPayload":{"position":{"x":11343.062891749762,"y":24985.40702724926},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":0,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Dashboard","name":"Demos","timeMachines":[{"type":"Time Machine","name":"Demo #1","code":"{\n\"description\" : \"Demo: 2 Markets on the Same Exchange\"\n}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-03-10T03:34:38.443Z\",\n \"toDate\": \"2020-04-24T23:59:59.999Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"18bee96e-8b86-49fa-84c9-d201a0126e77","savedPayload":{"position":{"x":11777.35148253669,"y":23792.28526471598},"targetPosition":{"x":12293.614545373859,"y":23494.538560770354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": -26.682390087028836,\n \"maxValue\": 84.31424446,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"9e66ba13-b857-45df-9361-edf5ab1fcd09","savedPayload":{"position":{"x":11697.27648014792,"y":23494.342360822593},"targetPosition":{"x":12293.614545373859,"y":23494.538560770354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"710ed26e-c736-417c-aed2-5ae1c1844249","savedPayload":{"position":{"x":11777.161818114279,"y":23196.187607195276},"targetPosition":{"x":12293.614545373859,"y":23494.538560770354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"ETH/USDT Indicators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 108.44553006909274,\n \"maxValue\": 275.86609962805636\n}","id":"43428f32-a014-48c3-843c-0dd530c1233b","savedPayload":{"position":{"x":11419.65100233152,"y":22823.20685746771},"targetPosition":{"x":11995.64757908922,"y":22977.806493548902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"26563f48-c18a-47a8-b5f2-414ddd91cd6d","savedPayload":{"position":{"x":11697.570587227552,"y":22461.20655158563},"targetPosition":{"x":11995.64757908922,"y":22977.806493548902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"09ca9287-ad98-44bc-afeb-556ccf6a0afd","savedPayload":{"position":{"x":43405.917133235744,"y":26523.010209201704},"targetPosition":{"x":43469.08890311545,"y":26943.345595123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"e24f042c-71b5-4647-ac90-c0068c30e202"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e38d7631-ede3-4a36-bdb7-96e795da0b1a","savedPayload":{"position":{"x":43491.11836941779,"y":26534.558701394508},"targetPosition":{"x":43469.08890311545,"y":26943.345595123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"ae616763-d384-41cc-a61a-e8a2ae01752b"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"48086e4d-01a0-4942-92f3-2fcad07e75e5","savedPayload":{"position":{"x":43569.104082586884,"y":26562.747932984465},"targetPosition":{"x":43469.08890311545,"y":26943.345595123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"8cb63f19-fd93-4aee-b69f-b89b15e908b2"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d7eca427-59c0-4e2c-b145-6a94e253cbf7","savedPayload":{"position":{"x":43638.942634755185,"y":26604.609057080885},"targetPosition":{"x":43469.08890311545,"y":26943.345595123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"9b2f804e-ff08-4f83-8608-ec6548cb8859"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"38c2198b-f312-480c-af47-6ab3a579b9c8","savedPayload":{"position":{"x":43699.126740114945,"y":26658.33729172662},"targetPosition":{"x":43469.08890311545,"y":26943.345595123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"843b0322-9811-4417-bc50-065fbe04b5d3"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2c3aa776-cd23-43b1-afbf-068d81729d1c","savedPayload":{"position":{"x":43748.084933481325,"y":26721.998582294804},"targetPosition":{"x":43469.08890311545,"y":26943.345595123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"0d1b6fe2-e5f4-4724-89fa-f5443084ccd0"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5234ecf3-bdd2-43fc-83af-30fba99220ee","savedPayload":{"position":{"x":43784.38446758459,"y":26793.43524330941},"targetPosition":{"x":43469.08890311545,"y":26943.345595123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"fd558fef-2d8b-4744-aecf-754744b3cb90"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"058c42bc-37b7-4d9d-918f-94fef44f1ed5","savedPayload":{"position":{"x":43806.90847006039,"y":26870.24614814255},"targetPosition":{"x":43469.08890311545,"y":26943.345595123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"22799460-416a-4ea4-9e19-bea31f5ae5b4"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f616bbd6-bed9-4340-921b-32372d9d5f96","savedPayload":{"position":{"x":43814.87860961185,"y":26949.84406401301},"targetPosition":{"x":43469.08890311545,"y":26943.345595123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"c8cab685-fea6-4224-afee-ffa7c45e3069"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"17a75d8e-c57e-42c7-bbe8-c1807442a235","savedPayload":{"position":{"x":43808.0505501459,"y":27029.511576844026},"targetPosition":{"x":43469.08890311545,"y":26943.345595123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"3d0fbf6d-c623-4b21-8381-8641952cf6f1"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"adcab299-30e9-472c-ae62-4d7773afabce","savedPayload":{"position":{"x":43786.75306115185,"y":27106.573240073267},"targetPosition":{"x":43469.08890311545,"y":26943.345595123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"dd2a07fe-1572-471b-9f9b-48a7e0392555"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"19e0e0ea-ea7b-4384-91be-a4074ee99ce4","savedPayload":{"position":{"x":43751.67843755227,"y":27178.41762920508},"targetPosition":{"x":43469.08890311545,"y":26943.345595123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"876b4c27-42db-430c-99eb-208d0562cc86"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"1f35fe86-e6be-458e-8baf-55447546c87c","savedPayload":{"position":{"x":43704.026684296354,"y":27242.620101549215},"targetPosition":{"x":43469.08890311545,"y":26943.345595123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"f556f3d0-1c6e-4ee0-8128-280892ab378a"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"c4e2490b-7802-45e9-a2e2-fd62ac01122f","savedPayload":{"position":{"x":43645.40889414393,"y":27297.00699297689},"targetPosition":{"x":43469.08890311545,"y":26943.345595123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"be67744f-7ee5-490e-ad75-b0ed1563df09"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"77250dcb-0b45-4ef0-83e9-b29439985229","savedPayload":{"position":{"x":43577.869358139345,"y":27339.88835177368},"targetPosition":{"x":43469.08890311545,"y":26943.345595123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"60f28f50-15fd-4e1b-88eb-c2e1b24610fa"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"a8f6aedf-d603-4033-9a5e-c8f4112dda9d","savedPayload":{"position":{"x":43480.29034556945,"y":27372.254652559935},"targetPosition":{"x":43469.08890311545,"y":26943.345595123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"fca7ffa6-b650-46f3-8b0a-768fdfd54332"}}}],"id":"8e6d98cb-e35a-43c6-b9ea-4bca42d2ff1e","savedPayload":{"position":{"x":12149.70176778367,"y":22401.94951686559},"targetPosition":{"x":11995.64757908922,"y":22977.806493548902},"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":40,"radius":0}}},"id":"d4986e9e-e76b-4d60-b174-ea6a8c7c3c42","savedPayload":{"position":{"x":11995.495843103387,"y":22977.88178210855},"targetPosition":{"x":12293.614545373859,"y":23494.538560770354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Dash/USDT Indicators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 33.26114918033296,\n \"maxValue\": 88.16529372420807\n}","id":"8254aa03-018e-4bef-820d-516e9c792991","savedPayload":{"position":{"x":11872.010926133184,"y":22476.129453469377},"targetPosition":{"x":12293.64489259461,"y":22898.04809716531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"f5baa8f9-d9a6-4b2c-b820-f749e3d8a7ed","savedPayload":{"position":{"x":12293.646797380565,"y":22301.57858582746},"targetPosition":{"x":12293.64489259461,"y":22898.04809716531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"b6dbe1ee-d1ff-444f-b8df-88910829e655","savedPayload":{"position":{"x":44970.78429628922,"y":26968.5215427686},"targetPosition":{"x":45033.95606616892,"y":27388.856928689896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"a7b8e4ed-e341-478f-ade9-608a15ca978a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"1778fb92-fd0f-4f21-a1c2-47b80c29f8d9","savedPayload":{"position":{"x":45055.985532471255,"y":26980.070034961405},"targetPosition":{"x":45033.95606616892,"y":27388.856928689896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"47ed9747-aa4b-444d-a1ae-ee5bcd22b41b"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"75da3250-8e77-4696-8fd2-d1a35fb8dd4d","savedPayload":{"position":{"x":45133.97124564035,"y":27008.259266551362},"targetPosition":{"x":45033.95606616892,"y":27388.856928689896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"cf406371-01ec-4213-aadf-a73ca6dd7c2a"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2d30a02f-07cb-4ea6-8c9c-1aac6c4527bc","savedPayload":{"position":{"x":45203.80979780866,"y":27050.120390647782},"targetPosition":{"x":45033.95606616892,"y":27388.856928689896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"60c11137-e5e8-4b1e-8440-0fe54d8eaad1"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5d34bd19-b943-4d19-9cf3-f0b68eb523db","savedPayload":{"position":{"x":45263.99390316842,"y":27103.848625293518},"targetPosition":{"x":45033.95606616892,"y":27388.856928689896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"65e1feda-46c5-474f-980a-bbc152c36176"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c5b814d1-b132-4dd6-bb4d-df5329934d95","savedPayload":{"position":{"x":45312.95209653479,"y":27167.5099158617},"targetPosition":{"x":45033.95606616892,"y":27388.856928689896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"2a0b2849-8f3c-42ed-bf53-4b5b3a95152a"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"1b933777-1bc0-4762-9de0-53b8c4ce5e6a","savedPayload":{"position":{"x":45349.25163063806,"y":27238.946576876308},"targetPosition":{"x":45033.95606616892,"y":27388.856928689896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"2a89e458-4e2f-4272-89e5-acf366a7579b"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"841d5060-dcb8-48cd-a1a6-f79c7a2423b7","savedPayload":{"position":{"x":45371.775633113866,"y":27315.757481709446},"targetPosition":{"x":45033.95606616892,"y":27388.856928689896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"c62b975f-ec36-4c4e-bf9c-ad88c6f6b145"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8b8300a6-0ada-4827-a375-bde9ba13415f","savedPayload":{"position":{"x":45379.74577266532,"y":27395.355397579908},"targetPosition":{"x":45033.95606616892,"y":27388.856928689896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"530cf439-80c9-42e8-8d68-b22d36a3f7d5"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ab7cee8f-923a-48af-a47c-48768f2926a8","savedPayload":{"position":{"x":45372.917713199364,"y":27475.022910410924},"targetPosition":{"x":45033.95606616892,"y":27388.856928689896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"bb037972-8e14-4029-9f39-3a53274ef2fb"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"dcb8c7fd-e08a-4972-bae6-7d6020884420","savedPayload":{"position":{"x":45351.620224205326,"y":27552.084573640164},"targetPosition":{"x":45033.95606616892,"y":27388.856928689896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"fc7ec38a-c62f-4c0d-9883-1d7a000fc2ae"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"a2d90f43-9e21-40a8-af90-5890171987a2","savedPayload":{"position":{"x":45316.545600605736,"y":27623.928962771977},"targetPosition":{"x":45033.95606616892,"y":27388.856928689896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"540e982f-042a-41b8-b13b-48dad95ae02d"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"c8598d27-fb82-4b7b-b2a5-0d2389e41b17","savedPayload":{"position":{"x":45268.89384734983,"y":27688.131435116113},"targetPosition":{"x":45033.95606616892,"y":27388.856928689896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"56fdc71f-06a1-4d8f-b68a-eadf7d51d504"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"05863fd0-1983-4157-931e-eaf19af9de65","savedPayload":{"position":{"x":45210.27605719741,"y":27742.518326543788},"targetPosition":{"x":45033.95606616892,"y":27388.856928689896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"a4bb4d63-e1f8-4de8-84b4-00cb8c33d0d3"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"080055bf-3054-4059-9eeb-c5e0e7ed9c29","savedPayload":{"position":{"x":45142.73652119281,"y":27785.399685340577},"targetPosition":{"x":45033.95606616892,"y":27388.856928689896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"a2a18651-52ab-446e-b332-737416c50833"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"3af07b31-26d8-45db-90e8-83fb4db580a4","savedPayload":{"position":{"x":45045.15750862291,"y":27817.765986126833},"targetPosition":{"x":45033.95606616892,"y":27388.856928689896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"fc8ea3a8-8dbe-4c4d-a5ec-bbbeec11bca4"}}}],"id":"3ca90550-f8ad-47db-b8fb-471814537cd9","savedPayload":{"position":{"x":12714.907734192295,"y":22476.37192406087},"targetPosition":{"x":12293.64489259461,"y":22898.04809716531},"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":40,"radius":0}}},"id":"d937b35b-e386-46f0-a3aa-fcc251653cbc","savedPayload":{"position":{"x":12293.62056186902,"y":22898.019800763654},"targetPosition":{"x":12293.614545373859,"y":23494.538560770354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7123783a-80a6-4cf1-a5a1-7ca874a903cc","savedPayload":{"position":{"x":12293.614545373859,"y":23494.538560770354},"targetPosition":{"x":12809.811040897648,"y":23792.671721009017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":-995,"y":-165},"width":480,"height":240,"radius":0}}},{"type":"Time Machine","name":"Demo #2","code":"{\n\"description\" : \"Demo: Same Market from 3 Different Exchanges\"\n}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-03-06T21:14:25.698Z\",\n \"toDate\": \"2020-04-22T05:01:36.187Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"1a38a992-bf45-4835-ac2b-c5775ed5a517","savedPayload":{"position":{"x":13281.60564229058,"y":22899.811498107596},"targetPosition":{"x":13326.1575007898,"y":23494.577908289582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 5531.5753125,\n \"maxValue\": 12249.4453125,\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"56681b58-f77e-4414-a9cb-b2ecc56bda44","savedPayload":{"position":{"x":13544.031230408418,"y":22939.33923544073},"targetPosition":{"x":13326.1575007898,"y":23494.577908289582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"12-hs\"}","id":"0312b4ac-0ccf-4a09-8472-4bf8ecff1b5c","savedPayload":{"position":{"x":13763.39431840861,"y":23088.89336399311},"targetPosition":{"x":13326.1575007898,"y":23494.577908289582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Binance","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"5003d2a1-8444-436d-a082-132399c84092","savedPayload":{"position":{"x":44503.57618711697,"y":29732.15831681643},"targetPosition":{"x":44566.74795699668,"y":30152.493702737724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"431ea989-085b-40ae-aa2a-d371d7cb68c6"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"cf692cca-5b71-4611-ab50-12f0e0ced552","savedPayload":{"position":{"x":44588.77742329902,"y":29743.706809009233},"targetPosition":{"x":44566.74795699668,"y":30152.493702737724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"ddd34b26-4fa8-4d7c-b76d-f671c92a6181"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ec7e158a-87f8-42f5-a4ec-e7c6d1e64190","savedPayload":{"position":{"x":44666.763136468115,"y":29771.89604059919},"targetPosition":{"x":44566.74795699668,"y":30152.493702737724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"683e24f7-010a-412e-ba21-f280e63a0f1d"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2fdf5d90-1981-417a-ba3d-614e671fe420","savedPayload":{"position":{"x":44736.60168863641,"y":29813.75716469561},"targetPosition":{"x":44566.74795699668,"y":30152.493702737724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"210b7e14-a6f0-4c56-b5e4-108f57ebb4c6"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"73a9df91-61fd-4cd3-a108-78d17d77d7ba","savedPayload":{"position":{"x":44796.78579399617,"y":29867.485399341345},"targetPosition":{"x":44566.74795699668,"y":30152.493702737724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"303572ad-cc90-46c9-8620-8454d557897b"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"52b8669c-ce25-4902-a7f3-3da3f1b73685","savedPayload":{"position":{"x":44845.743987362555,"y":29931.14668990953},"targetPosition":{"x":44566.74795699668,"y":30152.493702737724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"10142313-9ac8-4f4c-8105-88aec7bb7ce9"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7c67cd77-0565-4152-b137-0c0f61b76172","savedPayload":{"position":{"x":44882.04352146582,"y":30002.583350924135},"targetPosition":{"x":44566.74795699668,"y":30152.493702737724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"afbf02cf-97a6-4dc0-a3d5-95f29ba7781f"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"30d975d4-7eda-4091-b896-a4d2dd61758b","savedPayload":{"position":{"x":44904.567523941616,"y":30079.394255757274},"targetPosition":{"x":44566.74795699668,"y":30152.493702737724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"80ed873e-8017-45ec-b211-fc4604f5aaf6"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"52dfa483-189c-4433-8339-56fcd9d86892","savedPayload":{"position":{"x":44912.53766349307,"y":30158.992171627735},"targetPosition":{"x":44566.74795699668,"y":30152.493702737724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"6635502b-5366-430e-8dc1-4edaa21c2a7f"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b6e83e23-a3ff-434c-b5d2-35ecc8844cca","savedPayload":{"position":{"x":44905.70960402713,"y":30238.65968445875},"targetPosition":{"x":44566.74795699668,"y":30152.493702737724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"3ebce074-9080-426a-baf9-61c1a04fc05b"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"4e135029-34cc-4ae8-ba40-6be9d38d2250","savedPayload":{"position":{"x":44884.412115033076,"y":30315.72134768799},"targetPosition":{"x":44566.74795699668,"y":30152.493702737724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"c424ba00-bbe0-4ae9-830a-3d2aa6fcaf4d"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"fbfbe0fa-aa94-4053-8699-0b07eb620795","savedPayload":{"position":{"x":44849.3374914335,"y":30387.565736819804},"targetPosition":{"x":44566.74795699668,"y":30152.493702737724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"3d048c1f-d45a-442a-9d44-362ad7770bb6"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"058970f4-7350-4ffd-ac68-335c829702ae","savedPayload":{"position":{"x":44801.68573817758,"y":30451.76820916394},"targetPosition":{"x":44566.74795699668,"y":30152.493702737724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c92d9454-d5fb-4954-a188-367dcd697af6"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"0e451175-0846-43e2-8675-2596e63ce749","savedPayload":{"position":{"x":44743.06794802516,"y":30506.155100591615},"targetPosition":{"x":44566.74795699668,"y":30152.493702737724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"4810638a-c137-4df6-8016-c8a2540dc9e7"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"a96e72bd-80ed-4c25-8eec-3206b2471275","savedPayload":{"position":{"x":44675.528412020576,"y":30549.036459388404},"targetPosition":{"x":44566.74795699668,"y":30152.493702737724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"9c1f6b84-409e-4257-92ea-a9481d3509cd"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"a141ca05-f37c-4d68-aef6-ad5629a5182a","savedPayload":{"position":{"x":44577.94939945068,"y":30581.40276017466},"targetPosition":{"x":44566.74795699668,"y":30152.493702737724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"dcd46168-1662-42c5-be91-f489d9a55833"}}}],"id":"04b63423-507f-4921-b9b1-259fbdc7dac1","savedPayload":{"position":{"x":14512.673822047245,"y":23619.25677757951},"targetPosition":{"x":13919.432726413495,"y":23556.922098190207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"d8759758-fdde-45b9-90ef-9f89ee0030a7","savedPayload":{"position":{"x":13896.137588957044,"y":23318.810690180144},"targetPosition":{"x":13326.1575007898,"y":23494.577908289582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Bitfinex","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 5170.75798611111,\n \"maxValue\": 8969.85798611111\n}","id":"4ddb5ea0-fc04-45d6-9a11-88bc75e50854","savedPayload":{"position":{"x":13751.522050943498,"y":23782.482334428667},"targetPosition":{"x":13851.522050943498,"y":23793.482334428667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"2b846f26-d467-4bd9-b7be-8bef01b65ef9","savedPayload":{"position":{"x":43336.79121779195,"y":28730.636571315797},"targetPosition":{"x":43399.96298767166,"y":29150.971957237092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"8ca5590a-f8fd-4451-beb4-6f129503917f"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2ce3e063-a7b0-4fef-b98f-e3ada6c8d71e","savedPayload":{"position":{"x":43421.992453973995,"y":28742.1850635086},"targetPosition":{"x":43399.96298767166,"y":29150.971957237092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"51e94a87-e6cf-4245-a74b-96c3032abb05"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9c9ea5be-9946-4ff7-89c1-a524c82a4d5a","savedPayload":{"position":{"x":43499.97816714309,"y":28770.374295098558},"targetPosition":{"x":43399.96298767166,"y":29150.971957237092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"a5534859-2c15-4848-8083-a1eb33485e21"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e95d3ce6-ced1-42d7-920d-09cd4233fb91","savedPayload":{"position":{"x":43569.81671931139,"y":28812.235419194978},"targetPosition":{"x":43399.96298767166,"y":29150.971957237092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"8969e130-aa60-47c1-a301-99f1908db6df"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4e86a27e-5ef8-492e-a43e-f1a6a91cb5fe","savedPayload":{"position":{"x":43630.00082467115,"y":28865.963653840714},"targetPosition":{"x":43399.96298767166,"y":29150.971957237092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"56d92d99-a094-4b18-9e22-37eba7b7dfdb"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b8f24df8-510f-479d-960a-4060c6db57a8","savedPayload":{"position":{"x":43678.95901803753,"y":28929.624944408897},"targetPosition":{"x":43399.96298767166,"y":29150.971957237092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"eb35295a-b358-4688-8482-74307091466e"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"754ab98e-5554-49fd-bba0-ca09e6a3a3f9","savedPayload":{"position":{"x":43715.2585521408,"y":29001.061605423503},"targetPosition":{"x":43399.96298767166,"y":29150.971957237092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"158d1589-7e86-4a42-819b-f3992495d35c"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6b60999d-d019-433d-9b22-660e05ead7d1","savedPayload":{"position":{"x":43737.7825546166,"y":29077.872510256642},"targetPosition":{"x":43399.96298767166,"y":29150.971957237092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"d525e21f-ea75-4844-8e09-87f5f478045e"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"bc912cd5-d9c8-48e9-88b7-03b5bbea15aa","savedPayload":{"position":{"x":43745.752694168055,"y":29157.470426127104},"targetPosition":{"x":43399.96298767166,"y":29150.971957237092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"d4905d55-abce-4fa9-95a2-1875c16fb4b7"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9df1028a-db8b-44e5-bdc4-8290ed425ec3","savedPayload":{"position":{"x":43738.9246347021,"y":29237.13793895812},"targetPosition":{"x":43399.96298767166,"y":29150.971957237092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"9e1a2843-59a0-485e-8ce0-e8c98e5a2001"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"0505592d-d0f9-4809-921b-8345e00ef0c3","savedPayload":{"position":{"x":43717.62714570806,"y":29314.19960218736},"targetPosition":{"x":43399.96298767166,"y":29150.971957237092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"850a58e9-2da0-43dc-b5be-739bd478309e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"84134ba5-6697-4ac0-b080-b043564dafe2","savedPayload":{"position":{"x":43682.552522108475,"y":29386.043991319173},"targetPosition":{"x":43399.96298767166,"y":29150.971957237092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"891c972c-e624-42af-ab10-056b6d6f194b"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"06538b09-c89c-41fa-aed9-a4a80205aece","savedPayload":{"position":{"x":43634.90076885256,"y":29450.24646366331},"targetPosition":{"x":43399.96298767166,"y":29150.971957237092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"dbfb5bbc-ebb7-41da-8a45-eaf75d943736"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"e5789044-8dd9-4e84-ac38-3af62f025255","savedPayload":{"position":{"x":43576.28297870014,"y":29504.633355090984},"targetPosition":{"x":43399.96298767166,"y":29150.971957237092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"5bcf67c8-5a50-477f-9dce-c23993104cea"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"84e1cf35-78ee-4f72-8f39-dd4437d50050","savedPayload":{"position":{"x":43508.74344269555,"y":29547.514713887773},"targetPosition":{"x":43399.96298767166,"y":29150.971957237092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"83243cbe-ccb6-4aef-94a2-5fa4870c674b"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"65bfd136-9689-4b8b-bf32-f953e0f36719","savedPayload":{"position":{"x":43411.16443012565,"y":29579.88101467403},"targetPosition":{"x":43399.96298767166,"y":29150.971957237092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"62ae801f-e2e0-4611-9cc0-a3dc66a76da1"}}}],"id":"8a12736c-b79d-4f4a-83a7-0bfb690a07cb","savedPayload":{"position":{"x":43399.96298767166,"y":29150.971957237092},"targetPosition":{"x":42884.45923023754,"y":29203.156854107274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"80a55bff-caae-4d94-ac9d-639d71c63e05","savedPayload":{"position":{"x":13915.972520030327,"y":23583.360390653525},"targetPosition":{"x":13326.1575007898,"y":23494.577908289582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"BitTrex","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 4474.307517343147,\n \"maxValue\": 7757.873387123147\n}","id":"2e70f680-2698-4d3b-99dd-4da330d3468a","savedPayload":{"position":{"x":13781.77374482421,"y":23953.123361795962},"targetPosition":{"x":13744.77374482421,"y":23927.123361795962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"e52b0e7e-93dd-46d7-86fe-1ef6ee62360b","savedPayload":{"position":{"x":43732.72197212456,"y":27423.42328219695},"targetPosition":{"x":43795.893742004264,"y":27843.758668118244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"18386b37-31c2-4e85-8e17-e46e036de5b9"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"dbca4302-60ea-477b-90f1-e7aeb58c6ab8","savedPayload":{"position":{"x":43817.9232083066,"y":27434.971774389753},"targetPosition":{"x":43795.893742004264,"y":27843.758668118244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"c944bfd2-3366-4ef8-8d86-17fb07b8236b"}}},{"type":"Layer","name":"Candles Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9b20fd32-de5f-4a51-a80f-bfc73fddd82a","savedPayload":{"position":{"x":43895.9089214757,"y":27463.16100597971},"targetPosition":{"x":43795.893742004264,"y":27843.758668118244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels","id":"f058cb8d-ac26-49b2-a71e-03b6da20cf2c"}}},{"type":"Layer","name":"Candles Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"600ff4e6-59a8-424f-b2c3-c77b732c7aa4","savedPayload":{"position":{"x":43965.747473644,"y":27505.02213007613},"targetPosition":{"x":43795.893742004264,"y":27843.758668118244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles Channels Objects","id":"712a8c20-3a29-4c01-8292-9f7dd49626d1"}}},{"type":"Layer","name":"Bollinger Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9598ead1-a1d5-4047-80f6-c0b42557a023","savedPayload":{"position":{"x":44025.93157900376,"y":27558.750364721865},"targetPosition":{"x":43795.893742004264,"y":27843.758668118244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"c93aa11a-f985-47bd-b455-7e29e74ae110"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2ac1af85-4a7c-468b-9ac4-983db1fa037e","savedPayload":{"position":{"x":44074.88977237014,"y":27622.41165529005},"targetPosition":{"x":43795.893742004264,"y":27843.758668118244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"a1bdc52f-a93c-468a-9a57-3730eaf653b0"}}},{"type":"Layer","name":"Bollinger Sub-Channels","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7d1355ac-64b7-4ea1-a439-3ebac6c04875","savedPayload":{"position":{"x":44111.1893064734,"y":27693.848316304655},"targetPosition":{"x":43795.893742004264,"y":27843.758668118244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"ad145a69-4b17-4d3e-ac0d-8457100b79db"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e1a72466-88d4-47f6-9f2f-484ff6409b29","savedPayload":{"position":{"x":44133.713308949205,"y":27770.659221137794},"targetPosition":{"x":43795.893742004264,"y":27843.758668118244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"8cb86b9c-bd1c-40f2-932d-39c3463c281b"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2f0d1c34-8051-4b23-842f-692018dda16a","savedPayload":{"position":{"x":44141.68344850066,"y":27850.257137008255},"targetPosition":{"x":43795.893742004264,"y":27843.758668118244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"ae18cd86-b31a-4205-84ee-1ae5fa13a80e"}}},{"type":"Layer","name":"Base5 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0f23d2d5-69f0-4a2d-9c26-ce39c52bf543","savedPayload":{"position":{"x":44134.85538903471,"y":27929.92464983927},"targetPosition":{"x":43795.893742004264,"y":27843.758668118244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"3249ddb7-692a-4c09-a4c3-77b96b0a64c7"}}},{"type":"Layer","name":"Base6 SMAs","code":"{\n \"status\": \"off\"\n}","id":"2644c38d-d283-4dfb-bf41-4f9ea5fd7d90","savedPayload":{"position":{"x":44113.557900040665,"y":28006.98631306851},"targetPosition":{"x":43795.893742004264,"y":27843.758668118244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"cae7b3ba-fe2c-47de-8df9-d06e4c8f461d"}}},{"type":"Layer","name":"Base7 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"26aa44cd-eada-4c45-8d74-de01c3ce7840","savedPayload":{"position":{"x":44078.48327644108,"y":28078.830702200325},"targetPosition":{"x":43795.893742004264,"y":27843.758668118244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"4d76dcf6-8f1e-46c9-a635-36f5c2afa299"}}},{"type":"Layer","name":"Base11 SMAs","code":"{ \n\"status\": \"off\"\n}","id":"050d80ce-2d46-4d5c-8624-3945f4c6f3d6","savedPayload":{"position":{"x":44030.83152318517,"y":28143.03317454446},"targetPosition":{"x":43795.893742004264,"y":27843.758668118244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"f06e0f2d-3494-488a-9d61-fe8ceaa22294"}}},{"type":"Layer","name":"Popular EMAs","code":"{ \n\"status\": \"off\"\n}","id":"0967a67d-a16e-4d9b-a8d9-333acb2bc7aa","savedPayload":{"position":{"x":43972.213733032746,"y":28197.420065972135},"targetPosition":{"x":43795.893742004264,"y":27843.758668118244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"a660ba6d-92e9-46d4-9a44-a3f753acc5c2"}}},{"type":"Layer","name":"Base7 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"21c38742-0a80-416d-87d1-8d011c83d206","savedPayload":{"position":{"x":43904.67419702816,"y":28240.301424768924},"targetPosition":{"x":43795.893742004264,"y":27843.758668118244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"ec9da642-733f-4906-9030-bec8f124af77"}}},{"type":"Layer","name":"Base11 EMAs","code":"{ \n\"status\": \"off\"\n}","id":"b80f4c1c-28bb-4543-9633-3ca251db9b4a","savedPayload":{"position":{"x":43807.09518445826,"y":28272.66772555518},"targetPosition":{"x":43795.893742004264,"y":27843.758668118244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"b7652a67-6fd3-458b-b1e1-c44781a2a277"}}}],"id":"5b0dad4d-f438-4417-85f7-38f540ce95d4","savedPayload":{"position":{"x":43795.893742004264,"y":27843.758668118244},"targetPosition":{"x":43280.389984570145,"y":27895.943564988425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"7ec609f9-e409-4e4f-9181-e4d7a7d3af81","savedPayload":{"position":{"x":13818.885857190635,"y":23830.560557751527},"targetPosition":{"x":13326.1575007898,"y":23494.577908289582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d60f0950-f117-4a0f-a31a-0c01612e07f8","savedPayload":{"position":{"x":13326.1575007898,"y":23494.577908289582},"targetPosition":{"x":12809.811040897648,"y":23792.671721009017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":-995,"y":185},"width":480,"height":240,"radius":0}}}],"id":"848305c2-f1ca-4b6a-aeba-368ea4d885ee","savedPayload":{"position":{"x":12809.811040897648,"y":23792.671721009017},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":0,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c53a4385-3fb3-49d5-b506-99bcaef2c141","savedPayload":{"position":{"x":12809.806237131383,"y":24985.35640053908},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":0,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"c"}}}]} \ No newline at end of file diff --git a/run.js b/run.js index 5888aadb0..4aaa74f4a 100644 --- a/run.js +++ b/run.js @@ -1,5 +1,14 @@ +let options = { + execArgv: ['--max-old-space-size=8192'], + stdio: 'inherit' +} + +if (process.argv.includes("minMemo")) { + options = { + stdio: 'inherit' + } + console.log('Running with Minimun Memory Required.') +} + const { fork } = require('child_process') - -fork('./BackendServers/server.js', undefined, { stdio: 'inherit' }) - - +fork('./BackendServers/server.js', process.argv, options) |